首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
swoole server响应很慢,负载很高,一个发现是启动了大量进程
求助各位,今天早上遇到了一个比较严重的问题,还望不吝赐教。 10:01我们收到nginx 502告警,并且很多用户投诉无法访问,我们发现swoole机器负载很高,为了快速解决问题,重启了swoole便恢复了,以至于现场没有保留,而且没有复现,但担心后续再次爆发,希望能发现并且解决该问题。 通过监控,我们对swoole机器有几个发现: 1. 请求数在出问题前相比过往没有明显变化,出问题后大量用户刷新导致请求暴增。 2. cpu从9:59(我们业务每天10点开始是高峰期) 开始上升,10:01左右到100%,过往此时cpu峰值在60%左右。 3. 10:01 cpu load 1min是过往峰值7倍左右,达到45,过往峰值在7左右。 4. 10:01机器总进程数、运行中的进程数都飙升,增幅分别在350和160左右,理论上swoole进程数不会变化才对,过往这个时间段机器进程数也没有波动,重启swooler server就恢复可以初步判断因php或swoole引起。 4. 内存这个时间段少了200MB,过往这个时间段内存没有变化。 5. 我们两台swoole_server互为主备出现了同样的问题。 [attach]64[/attach] [attach]65[/attach] [attach]61[/attach] [attach]62[/attach] [attach]63[/attach] 几点信息供参考: 1. swoole为多进程模式,128个worker,daemonize为true,版本:swoole1.8.7,php7.0.8。 2. 使用swoole的swoole_server监听tcp端口,没有用过swoole_process、swoole::addProcess、swoole::task,不会刻意去fork进程。 3. 架构为 nginx接入 -> php-fpm -> swoole_server。 4. 该swoole server在线上运行30天左右,服务一直比较稳定,内存无明显变化,cpu使用随业务请求量正常波动。
发布于8年前 · 35 次浏览 · 来自
提问
似
似是故人来
求助各位,今天早上遇到了一个比较严重的问题,还望不吝赐教。 10:01我们收到nginx 502告警,并且很多用户投诉无法访问,我们发现swoole机器负载很高,为了快速解决问题,重启了swoole便恢复了,以至于现场没有保留,而且没有复现,但担心后续再次爆发,希望能发现并且解决该问题。 通过监控,我们对swoole机器有几个发现: 1. 请求数在出问题前相比过往没有明显变化,出问题后大量用户刷新导致请求暴增。 2. cpu从9:59(我们业务每天10点开始是高峰期) 开始上升,10:01左右到100%,过往此时cpu峰值在60%左右。 3. 10:01 cpu load 1min是过往峰值7倍左右,达到45,过往峰值在7左右。 4. 10:01机器总进程数、运行中的进程数都飙升,增幅分别在350和160左右,理论上swoole进程数不会变化才对,过往这个时间段机器进程数也没有波动,重启swooler server就恢复可以初步判断因php或swoole引起。 4. 内存这个时间段少了200MB,过往这个时间段内存没有变化。 5. 我们两台swoole_server互为主备出现了同样的问题。 [attach]64[/attach] [attach]65[/attach] [attach]61[/attach] [attach]62[/attach] [attach]63[/attach] 几点信息供参考: 1. swoole为多进程模式,128个worker,daemonize为true,版本:swoole1.8.7,php7.0.8。 2. 使用swoole的swoole_server监听tcp端口,没有用过swoole_process、swoole::addProcess、swoole::task,不会刻意去fork进程。 3. 架构为 nginx接入 -> php-fpm -> swoole_server。 4. 该swoole server在线上运行30天左右,服务一直比较稳定,内存无明显变化,cpu使用随业务请求量正常波动。
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2018-02-18
节
节奏果然癫狂.
你只贴出了表现,但是没有跟踪,无法定位问题,请在重现后保留现场进行跟踪。 1. 进程增多,从300多增加到500,首先请使用`ps aux`列出所有进程,看看是哪些进程增多了 2. 使用`top`工具跟踪什么进程在占用CPU,是swoole的master进程还是worker进程还是manager进程或其他,分别占用了多少CPU,定位到是哪些进程出了问题。另外,top工具还有可以看到是`sys`内核态CPU、`usr`用户态CPU、`si`软中断哪些占用高。 3. 使用`strace`工具跟踪问题进程的系
赞
0
回复
2018-02-18
C
CrazyJason
有没有第三方调用? 再看一下,当时的php的error log,有没有fatal log之类的,导致worker频繁的退出又被拉起
赞
0
回复
2018-02-19
风
风逝
一般看swoole日志,上面rango 的方法很详细了,不过一般生产环境可能没有给你排查问题的时间,而且应该有负载均衡,建议留一台排查问题,其他可以重启恢复服务
赞
0
回复