本文共 861 字,大约阅读时间需要 2 分钟。
当Nginx和PHP-CGI服务器的负载突然升高,导致大量php-cgi进程的CPU使用率接近100%时,可以尝试以下步骤来解决问题:
strace -p命令跟踪一个CPU使用率接近100%的php-cgi进程,检查其正在执行的操作。如果发现该进程在等待file_get_contents()函数的I/O操作,说明问题可能与该函数有关。php-fpm.conf中设置request_terminate_timeout参数,例如设置为30秒,确保PHP脚本在一定时间后终止,避免长时间占用资源。file_get_contents()中设置超时,例如: $ctx = stream_context_create(array( 'http' => array( 'timeout' => 1 )));file_get_contents("http://example.com/", 0, $ctx); 这样可以在超时后终止请求,减少对php-cgi进程的占用。
通过以上步骤,可以有效减少由于file_get_contents()导致的php-cgi进程高CPU使用率问题,从而降低服务器负载,确保网站的稳定运行。
转载地址:http://fktfk.baihongyu.com/