当前位置:首页 > 运维 > 正文内容

php Swoole 在supervisor或systemd下高并发频发redis mysql连接失败

MuWinds2年前 (2023-07-13)运维224

*前提:在你操作之前请先按照Swoole官方操作文档对内核修改完成后再看本文:

文档地址:https://wiki.swoole.com/#/other/sysctl

汇率的API写好了,Swoole内网测试并发总会发生诸如redis went away的问题而导致502,当redis在同步模式下运行的时候无此问题,仅在Swoole一键协程化的时候出现:

image.png

如果按照官方文档的步骤做了,确认redis等没有挂掉,请在screen下直接运行,而非在supervisor或者systemd下作为服务运行

你会惊奇的发现:screen下运行没有这个问题了(除非你服务确实挂了)

在百度和谷歌搜了很久,基本没有对这个问题的解答,这个问题解决了几天才发现这么一篇:

https://medium.com/@white1033/%E8%A7%A3%E9%96%8Bcentos-%E5%88%A9%E7%94%A8systemd-%E8%B5%B7service-%E7%9A%84-ulimit-%E8%B3%87%E6%BA%90%E9%99%90%E5%88%B6-4b8dece0d61d

以systemd为例,supervisor的原因也是一样的,都是deamon自身限制文件句柄导致的。

vi /etc/systemd/system/yourself_service.service

将[Service]配置项下加一行,最终修改结果如下:

[Service]
LimitNOFILE=100400

最后使用

systemctl deamon-reload

重启deamon,最后重启服务,查看效果:

image.png

7k并发测试后无任何报错

“php Swoole 在supervisor或systemd下高并发频发redis mysql连接失败” 的相关文章

在 CentOS 7 上搭建属于自己的邮件系统

跟朋友整了一堆活,总得要留下邮箱收集民意~由于项目的敏感性,我们需要一个属于自己的email服务器,于是便开始搭建了。所需工具:域名,可以PTR的公网IP机器,二级域名证书原理:先安装环境:yum -y install epel-release yum up...

完美永久破解最新Sublime Text 4 Build 4107 (Windows版)

1、下载并安装Sublime Text 4 Build 4107;官方下载地址:Windows 64位: https://download.sublimetext.com/sublime_text_build_4107_x64_setup.exe 2、 使用浏览器打开网站:https://hexed...

Zerotier配合Nginx实现内网穿透

之前博客网站一直用的家里机器配合香港Azure做frp内网穿透,用CF CDN进行数据分发,不提frp的虚拟局域网模式在跨国数据传输时面临的数据审查和路由方向会给速度及稳定性造成非常大的影响,其可能有的内存溢出和服务重启时的持续掉线问题也是很抓狂的,在这里,使用zerotier为两机打洞连接p2p,...

CentOS Python后台运行

nohup python /data/python/server.py > python.log3 2>&1 &说明:1、1是标准输出(STDOUT)的文件描述符,2是标准错误(STDERR)的文件描述符 &nb...

yarn构建提示Error: error:0308010C:digital envelope routines::unsupported的解决方法

这个是SSL套件的问题,输入下面的指令切换一下就好了:$env:NODE_OPTIONS = "--openssl-legacy-provider"...

记录一个远古垃圾系统的维护

这次接手的是tp框架的远古收款系统,开局几个ajax认不上我已经习以为常了,反手把php版本改成7.0就恢复正常(7.0算是个兼容版本 5.x的和7.x都兼容一点 各位穷途末路了可以试试)然后呢,其他的确认过没啥毛病了,打算测试一下接口的时候,意外就来了,弹404。我知道tp框架弹404一定是代码的...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。