目前使用gatawayworker搭建了一个名为proxy_server的服务,主要就是数据转发而已,没有涉及什么数据库等东西。目前并没有找到什么规律,有时候从进程里看到php的cpu占用非常高,每个php进程都到了80-95的占用。重新启动 gatawayworker服务可以恢复正常状态。现在看日志也不知道是哪里的原因,只看到日志里有以下记录:
2016-11-14 21:43:16 WORKER EXIT UNEXPECTED
2016-11-14 21:43:17 worker exit with status 64000
,现在很怕不知不觉什么时候服务就又资源吃紧挂掉了。这个服务已经上线半年了。最近开始出现cpu资源异常,找不到原因。
64000 是因为业务异常进程退出了。
最近才出现问题可以想下最近业务代码或者业务上有没有什么调整,比如更改了业务代码、配置,在线用户数激增等等。
出现问题时可以运行 php start.php status 贴下运行状态。
通过命令 strace -p 进程id 可以跟踪系统调用,也能大致看出来是因为哪些调用导致cpu偏高。
cpu偏高一般是由于业务代码没考虑到性能问题导致的,比如死循环、大数组循环等等
如果只是 proxy 根本不需要 GatewayWorker 啊