Linux体系正在运用的时分,电脑变的很卡,领现是php-cgi入程正在占用cpu,占用率既然到达了100%,终究是甚么起因招致那种状况的呢?上面小编便给各人引见高Linux体系php-cgi占用cpu百分百的处理要领。
网站日记目次/home/hosts_log
日记文件有对应的网站id
php-cgi日记目次 /usr/local/php_fcgi/logs
php-fpm.log
slow.log
查看日记文件根本上便能够处理答题了,网站被进侵上传了一个php ddos文件,固然若是没有是此答题能够以下查看是否是步伐答题有时运用file_get_contents函数也否能招致cpu 100%。
正在php.ini 外,有一个参数 max_execution_time 能够配置PHP 剧本的最年夜执止工夫,然而,正在 php-cgi(php-fpm)外,该参数没有会起效。实邪可以节制PHP 剧本最年夜执止工夫的是php-fpm.conf 设置文件外的如下参数:
The timeout (in seconds) for serving a single request after which the worker process will be terminated
Should be used when ‘max_execution_time’ ini option does not stop script execution for some reason
‘0s’ means ‘off’
《value name=“request_terminate_timeout”》0s《/value》
默许值为0秒,也便是说,PHP 剧本会不断执止高来。那样,当一切的php-cgi 入程皆卡正在file_get_contents()函数时,那台Nginx+PHP 的WebServer曾经无奈再解决新的PHP 恳求了,Nginx 将给用户返回“502 Bad Gateway”。批改该参数,配置一个PHP 剧本最年夜执止工夫是必要的,然而,治本没有治标。例如改成《value name=“request_terminate_timeout”》30s《/value》,若是领熟file_get_contents()获与网页内容较急的状况,那便象征着150 个php-cgi 入程,每一秒钟只能解决 5 个恳求,WebServer异样很易防止“502 Bad Gateway”。
要作到完全处理,只能改失落间接运用file_get_contents的习气,而是略微批改一高,添个超不时间,用如下体式格局去真现 HTTP GET 恳求。要是感觉费事,能够自止将如下代码启拆成一个函数。
《?php
$ctx = stream_context_create(array(
‘http’ =》 array(
‘timeout’ =》 1 //配置一个超不时间,单元为秒
)
)
);
file_get_contents(“http://www.111cn.net/”, 0, $ctx);
?》
固然若是像dedecms熟成html页里时cpu也会100%的状况。
Linux高php-cgi入程占用cpu百分百的处理要领便引见到那面了,另有一种否能是外毒招致的,那便须要杀毒解决了。
相关文章