阿里云服务器cpu过高

dou号

大神,我用过的是gateway worker,现在发现服务器cpu很高,于是用top指令查看了一下,如左图所示,上面几个进程都占了很多cpu,然后用cd /proc/PIDID查看了一下对应的pid,发现如图右所示,cwd指向的都是gatewayworker文件夹,请问大神这该如何处理

2809 2 0
2个回答

walkor

cpu高有可能是进程忙于处理业务。
 
也可能业务代码有bug比如无限添加定时器(php start.php status能看到定时器数量),业务代码死循环,业务代码执行了大的循环等等。
 
通过strace -ttp pid 追踪系统调用也能大概看出来进程在干什么。
 

  • dou号 2019-03-03

    大神,我用php start.php status查看的时候,有一个php警告:module 'event' already loaded in unknown on line 0,请问这是什么原因

  • walkor 2019-03-03

    event扩展重复加载了,不影响

dou号

@walkor 因为CPU过高,所以昨天重启了一下,然后今天的cpu和tcp都变的很奇怪,cpu一直在振动,tcp也不太稳定,不知道是什么原因,如图所示

  • walkor 2019-03-03

    从统计里看不出原因的。
    按照手册超过1000连接要安装event扩展,并且严格按照workerman手册优化linux内核。
    这些都做好了就从业务代码上找原因。

  • dou号 2019-03-04

    @1:在重启系统之前,我有在rc.local文件中加入‘/usr/bin/env php /磁盘/路径/start.php start -d’语句,参考自http://doc.workerman.net/faq/start-with-system.html,重启之后cpu就变成上面那张图了,然后就把这段程序给去掉了,并又重启了一下系统,观察下来发现cpu又变得稳定了,请问这个语句会影响系统吗?我添加这段语句是直接打开文件然后写入语句,并不是通过linux指令添加这段程序的,这会有区别吗?

  • walkor 2019-03-05

    cpu高的时候用strace -ttp pid 来定位

年代过于久远,无法发表回答
🔝