壓力測試問題

請問大大

我在GCP上開了6個vm

1台是GatewayWorkerman Server (8核+30G RAM) 另外5台則是發送連線及請求用的vm

GatewayWorkerman Server內核調優及event拓展的安裝都依照官方文件設定無誤

並使用依照walkor大提供的壓測程式進行壓測( http://wenda.workerman.net/?/question/1453 )

遇到了幾個問題如下


# 問題1 : 5台vm發送的連線 每台最高只能到1020

不知為何每台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

# 問題2 : CPU使用率浮動過大

五台機器共5100個connection

每秒ping一次GatewayWorkerman Server( 等同於每秒5100 QPS )

並且GatewayWorkerman Server接到ping後會以pong回應

在五台機器同時建立連線時, CPU使用率會飆高至20%左右

然後CPU使用率就會開始緩緩往下掉

最高使用率會一直掉到10%左右後就會開始在6%~10%之間浮動(過程大概要3~5分鐘)

如圖
螢幕快照_2018-02-02_下午6.23_.21_.png



想請問的是...

是什麼樣的原因會造成使用率"慢慢"降低?

再者..5100 QPS的CPU使用率我到底要以哪個數據當作依據?

是一開始的20%? 還是趨近於穩定的6% or 10%呢??

不知道有大大可以幫小弟解惑嗎?

感激不盡!!!
已邀请:

walkor

赞同来自:

6台服务器除了都要优化linux内核,还都需要安装event扩展。没有event扩展最多只能发起1000左右连接。

刚开始20%是因为压力机同时快速发起连接导致,等所有连接建立后只剩下维持心跳的开销,所以会有所降低。

长连接应用一般连接都是慢慢累积起来的,所以按照一般的业务逻辑,应该计算连接完毕后的资源占用作为数据参考。

rurikaxx - 安安你好幾歲住哪?

赞同来自:

6台服務器皆有安裝event拓展 也有設定內核優化
但發出的請求還是無法拉高

要回复问题请先登录注册