php服务器cpu飙升,php进程cpu占用高 怎么排查
几个PHP-CGI进程导致服务器CPU占用率过高,求教如何解决。
1、你的现象一般有两种可能,一是PHP脚本问题,例如你在PHP脚本后面写一个按回车结束,然后从标准输入读数据,可能会造成阻塞,使得进程无法结束。进行测试的方法的是写一个最简单的PHP脚本(例如只有phpinfo();一行),然后不断用浏览器打开这个页面,如果CGI进程也在增加,那么说明是下面一种情况。
2、作为开发调试应用,没有必要开这么多过程,那么我们可以通过修正配置文件的方法来对其进行把持,具体方法如下: 修正配置文件C:\Program Files\Zend\Core\etc\fastcgi.conf 将 StartProcesses=8 改为 StartProcesses=2 即可。
3、现象一般有两种可能,一是PHP脚本问题,例如在PHP脚本后面写一个按回车结束,然后从标准输入读数据,可能会造成阻塞,使得进程无法结束。进行测试的方法的是写一个最简单的PHP脚本(例如只有phpinfo();一行),然后不断用浏览器打开这个页面,如果CGI进程也在增加,那么说明是下面一种情况。
4、如果你的服务器性能足够好,且宽带资源足够充足,PHP脚本没有循环或BUG的话你可以直接将”request_terminate_timeout”设置成0s。0s的含义是让PHP-CGI一直执行下去而没有时间限制。
5、查看日志文件基本上就可以解决问题了,网站被入侵上传了一个php ddos文件,当然如果不是此问题可以如下查看是不是程序问题有时使用file_get_contents函数也可能导致cpu 100%。
nginx+php发现cpu使用率过高
1、程序本身有问题。nginx+php发现cpu使用率过高,是由于程序本身存在问题,如程序无限循环逻辑。用top命令,根据CPU使用率排序,找出消耗cpu最高的进程关掉即可。CPU指中央处理器。CentralProcessingUnit,简称CPU,是计算机系统的运算和控制核心。
2、使用perf top查看CPU使用量最高的函数,如内核模块中的native_write_msr,占CPU时钟量84%。可使用perf record与perf report定时采集性能数据,开启-g参数收集调用关系,便于分析性能问题。以Nginx PHP为例,通过ab命令测试性能,结果Nginx每秒平均请求数为814。
3、通过宝塔面板安装的建站环境是LNMP,使用的Nginx 1MySQL 6PHP-0。优化PHP0设置。先进入到PHP0管理页面。首先先安装一个opcache缓冲器,用于加速PHP脚本,其他的就都按默认的来吧,毕竟安装的扩展太多容易影响性能。修改max_execution_time时间为性能调整。
4、各个地方打个日志,判断下是哪个地方慢了,然后才能进行优化。
5、实战部分,perf top显示内核模块native_write_msr消耗大量CPU,占84%。结合perf record和report的定时采集,加上-g参数,可以追踪调用链,便于深入分析。例如,我们用Nginx和PHP测试,发现814的请求量下,php-fpm进程的CPU使用率异常,尤其sqrt和add_function函数可能是问题所在。
6、以Nginx和PHP测试为例,如果发现phpfpm进程的CPU使用率异常,可以使用perf top定位到具体的函数,如sqrt和add_function。通过分析源码或测试代码,找出导致性能下降的原因,并进行优化。总结与验证:在定位并优化性能瓶颈后,重新运行测试,使用perf top等工具验证优化效果。
php项目服务器cpu100%如何解决
1、perf record功能对于离线分析至关重要,它能保存性能数据,配合perf report进行详细报告。通过一个案例,我们展示了如何运用这些工具:安装必要的工具,监控Web服务器性能,利用top、pidstat和perf top找出php-fpm进程中的高CPU使用函数,最后进行优化并测试。
2、如果你的服务器性能足够好,且宽带资源足够充足,PHP脚本没有循环或BUG的话你可以直接将”request_terminate_timeout”设置成0s。0s的含义是让PHP-CGI一直执行下去而没有时间限制。
3、你的现象一般有两种可能,一是PHP脚本问题,例如你在PHP脚本后面写一个按回车结束,然后从标准输入读数据,可能会造成阻塞,使得进程无法结束。进行测试的方法的是写一个最简单的PHP脚本(例如只有phpinfo();一行),然后不断用浏览器打开这个页面,如果CGI进程也在增加,那么说明是下面一种情况。
4、CPU处于100%的功率工作,会对硬件造成损坏,工作量越大,对寿命有一定的损害。这种损害就像一台超载汽车一样,行驶的时间越长,磨损也就越大。解决方法:打开360安全卫士,点击电脑救援。在搜索框内输入“CPU使用率100%”,点击查找方案。点击第二个方案立即修复。等待片刻OK。
php-fpm导致CPU占用率100%?
1、请求执行时间过长会导致“504 Gateway Time-out”错误,而“max_children”设置过小,比如5-10个,php-cgi会“很累”,处理速度慢,占用的CPU也很高,可能引发“502 Bad gateway”错误。
2、各个地方打个日志,判断下是哪个地方慢了,然后才能进行优化。
3、解决方法有如下三种:可以用杀毒软件彻底清理系统内存和本地硬盘,并且打开系统设置软件,察看有无异常启动的程序。经常性更新升级杀毒软件和防火墙,加强防毒意识,掌握正确的防杀毒知识。出现该问题可能是由于大量的蠕虫病毒在系统内部迅速复制,造成CPU占用资源率据高不下。
4、php-fpm.log slow.log 查看日志文件基本上就可以解决问题了,网站被入侵上传了一个php ddos文件,当然如果不是此问题可以如下查看是不是程序问题有时使用file_get_contents函数也可能导致cpu 100%。
