*前提:在你操作之前请先按照Swoole官方操作文档对内核修改完成后再看本文:
文档地址:https://wiki.swoole.com/#/other/sysctl
汇率的API写好了,Swoole内网测试并发总会发生诸如redis went away的问题而导致502,当redis在同步模式下运行的时候无此问题,仅在Swoole一键协程化的时候出现:

如果按照官方文档的步骤做了,确认redis等没有挂掉,请在screen下直接运行,而非在supervisor或者systemd下作为服务运行
你会惊奇的发现:screen下运行没有这个问题了(除非你服务确实挂了)
在百度和谷歌搜了很久,基本没有对这个问题的解答,这个问题解决了几天才发现这么一篇:
以systemd为例,supervisor的原因也是一样的,都是deamon自身限制文件句柄导致的。
vi /etc/systemd/system/yourself_service.service
将[Service]配置项下加一行,最终修改结果如下:
[Service]
LimitNOFILE=100400
最后使用
systemctl deamon-reload
重启deamon,最后重启服务,查看效果:

7k并发测试后无任何报错
文章评论