workerman配置過程遇到的問題

擴展沒必要說了,本身裝去,若是連sapi都搞不定,那隻能說你並不適合使用workerman。api

Notice : Soft open files now is 1024,  We recommend greater than 10000服務器

解決辦法:增大文件 soft open file數量tcp

解決過程工具

嘗試1性能

sudo sysctl -w fs.file-max=10000

貌似不行。。。。錯誤依舊,那麼就來試試其餘的測試

那麼咱們就切換到root帳戶,看看ulimit -n 10240spa

ulimt -a

看到下面的輸出code

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 62799
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 10240
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) 62799
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

再次運行workerman,問題消失。可是這個方法僅僅是治標,不治本。blog

而後讓咱們啓動workerman自帶的壓力測試工具測試workerman的性能。ip

./benchmark -n 10000 -h1 -c400 -p56789 127.0.0.1

報出以下錯誤

client: connect: Cannot assign requested address

哦~原來樓主才重裝了系統,以前的配置丟了。好吧這裏就介紹下爲何會出現這個問題。

1.客戶端短期內發起了不少請求,而且每次請求服務時間都很短,這樣根據3次握手和4次握手的原理大量的連接都處在time wait的狀態

2.time wait是必然出現的階段,可是若是太多以致於沒有端口能夠供服務器分配就會報如上的錯誤

解決辦法:

sysctl -w net.ipv4.tcp_timestamps=1
sysctl -w net.ipv4.tcp_tw_recycle=1
相關文章
相關標籤/搜索