請問大大
我在GCP上開了6個vm
1台是GatewayWorkerman Server (8核+30G RAM) 另外5台則是發送連線及請求用的vm
GatewayWorkerman Server內核調優及event拓展的安裝都依照官方文件設定無誤
並使用依照walkor大提供的壓測程式進行壓測( http://wenda.workerman.net/?/question/1453 )
遇到了幾個問題如下
不知為何每台instance最多只能對GatewayWorkerman Server建立1020個connection
(所以五台總共5100個connection)
我一直無法把單台機器對GatewayWorkerman Serve的connection數拉高
網上查了一下 能設的都設了也都重啟了 但最大connection數還是1020
不知道有沒有人有遇過一樣的問題?
所有機器的ulimit的設定如下( umlimit -a )
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 119935
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024000
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 119935
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
所有機器的sysctl.conf的設定如下( /etc/sysctl.conf -p )
net.ipv4.tcp_max_tw_buckets = 20000
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 262144
net.core.netdev_max_backlog = 30000
net.ipv4.tcp_tw_recycle = 0
fs.file-max = 6815744
net.netfilter.nf_conntrack_max = 2621440
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_tw_reuse=1
五台機器共5100個connection
每秒ping一次GatewayWorkerman Server( 等同於每秒5100 QPS )
並且GatewayWorkerman Server接到ping後會以pong回應
在五台機器同時建立連線時, CPU使用率會飆高至20%左右
然後CPU使用率就會開始緩緩往下掉
最高使用率會一直掉到10%左右後就會開始在6%~10%之間浮動(過程大概要3~5分鐘)
如圖
想請問的是...
是什麼樣的原因會造成使用率"慢慢"降低?
再者..5100 QPS的CPU使用率我到底要以哪個數據當作依據?
是一開始的20%? 還是趨近於穩定的6% or 10%呢??
不知道有大大可以幫小弟解惑嗎?
感激不盡!!!
6台服务器除了都要优化linux内核,还都需要安装event扩展。没有event扩展最多只能发起1000左右连接。
刚开始20%是因为压力机同时快速发起连接导致,等所有连接建立后只剩下维持心跳的开销,所以会有所降低。
长连接应用一般连接都是慢慢累积起来的,所以按照一般的业务逻辑,应该计算连接完毕后的资源占用作为数据参考。
6台服務器皆有安裝event拓展 也有設定內核優化
但發出的請求還是無法拉高