荣新IT培训中心
全国咨询热线:400-1335-066
您现在的位置:首页>技术文章 > 正文

linux下如何解决电脑卡

时间:2018-03-02 15:44:08 来源:荣新IT教育培训 作者:荣新科技
我们都遇到过电脑变卡的情况,windows大家都清楚,可是很多人不知道linux变卡如何解决,今天来给大家分享下,一起来看看吧。
linux下如何解决电脑卡
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百分百的解决方法就介绍到这里了,还有一种可能是中毒导致的,这就需求杀毒处理了。

文章源自荣新教育官网:www.vfast.com.cn欢迎访问,转载需注明出处