workerman配置过程遇到的问题
扩展不必说了,自己装去,如果连sapi都搞不定,那只能说你并不适合使用workerman。
Notice : Soft open files now is 1024, We recommend greater than 10000
解决办法:增大文件 soft open file数量
解决过程
尝试1
sudo sysctl -w fs.file-max=10000
貌似不行。。。。错误依旧,那么就来试试其他的
那么我们就切换到root账户,看看ulimit -n 10240
ulimt -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) 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,问题消失。但是这个方法仅仅是治标,不治本。
然后让我们启动workerman自带的压力测试工具测试workerman的性能。
./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