Linux下php-cgi占内存100%电脑变的很卡的解决方法

   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百分百的解决方法就介绍到这里了,还有一种可能是中毒导致的,这就需要杀毒处理了。

时间: 2024-09-04 15:01:29

Linux下php-cgi占内存100%电脑变的很卡的解决方法的相关文章

win7系统电脑玩大型网游时很卡的解决方法

  win7系统电脑玩大型网游时很卡的解决方法.对于网游玩家来讲,都希望能够有一个流程的网速,这样玩网游的心情也有有所提高,但是一些win7 64位旗舰版用户玩大型网游时很卡,让人感到很烦恼,每次玩网游总是一卡一卡的,影响游戏心情.有什么方法能够提高电脑玩网游的速度呢?方法当然是有的,我们可以利用"360安全卫士"来提高网速,下面大家一起来看看设置方法吧. 具体方法如下: 1.关闭其它电脑程序,给游戏提供更多的内存空间; 2.待"360安全卫士"运行后,右击任务栏&

win8更新后电脑变得很卡怎么办

  win8更新后电脑变得很卡怎么办 1.建议用户卸载或更换当前英文输入法; 2.临时卸载KB3033889补丁; 3.使用微软提供的热修复程序

win8.1更新之后电脑变得很卡怎么办

  win8.1更新之后电脑变得很卡怎么办 1.建议用户卸载或更换当前英文输入法; 2.临时卸载KB3033889补丁; 3.使用微软提供的热修复程序

linux下mysql提示"mysql deamon failed to start"错误的解决方法_Mysql

有台linux服务器,系统为centos系统. 网站突然连接不上数据库,于是朋友直接重启了一下服务器.进到cli模式下,执行 service myqsld start 发现还是提示"mysql deamon failed to start"错误信息. # /etc/init.d/mysqld start MySQL Daemon failed to start. Starting mysqld: [FAILED] 查看mysqld的log文件 #less /var/log/mysqld

电脑玩游戏很卡如何解决

  1.如果系统盘的可用空间太少就会影响系统的性能从而影响游戏的运行,我们可以点击开始--所有程序--附件--系统工具,打开磁盘碎片整理程序; 2.打开磁盘碎片整理程序后,就可以进行对系统盘的碎片整理; 3.也可以使用电脑管家,点击工具箱里的系统盘瘦身; 4.扫描系统盘后清理系统盘垃圾,等待整理完成后即可.

linux下c语言大内存分配

问题描述 linux下c语言大内存分配 远程登录工作站(64G)c语言分配12G内存失败 代码如下 #include<stdio.h> #include<string.h> #include<malloc.h> int main() { char *x=NULL; x=(char *)calloc(3001*3001*1200,sizeof(char)); if(x==NULL) printf("failed"); else printf("

Linux下查看CPU型号,内存大小,硬盘空间的命令(详解)_Linux

1 查看CPU 1.1 查看CPU个数 # cat /proc/cpuinfo | grep "physical id" | uniq | wc -l 2 **uniq命令:删除重复行;wc –l命令:统计行数** 1.2 查看CPU核数 # cat /proc/cpuinfo | grep "cpu cores" | uniq cpu cores : 4 1.3 查看CPU型号 # cat /proc/cpuinfo | grep 'model name' |un

Win8系统无法关闭后台程序导致电脑卡的解决方法

  Win8系统无法关闭后台程序导致电脑卡的解决方法.在雨林木风win8系统中运行的应用程序,往往无法关闭,因为没有关闭的选项,这些应用程序一直在后台运行,导致电脑变卡,严重影响操作.那么Win8系统无法关闭后台程序怎么办呢?大家不要着急,针对此问题,小编研究整理出win8系统关闭后台程序的方法,大家不妨一起来学习下. 解决方法一: 1.在Win8中使用过应用程序后,返回传统桌面,把鼠标移动到屏幕的最左上角,此时会出现在后台运行的应用程序; 2.点击鼠标右键,选择"关闭"即可. 解决方

电脑蓝屏的原因及解决方法

几乎所有使用电脑的朋友都遇到过电脑蓝屏的现象,电脑蓝屏是一个非常普遍的现象,即使是比尔.盖茨在介绍Windows 98 功能的发布会这么重要的场合仍未能避免蓝屏现象,之所以电脑蓝屏现象很常见,是因为电脑蓝屏的发生有着多种原因,硬件出现问题,硬件之间不兼容,软件之间 不兼容都可能造成蓝屏的问题!今天就为大家介绍下电脑蓝屏的原因及解决方法,希望对大家解决电脑蓝屏现象有所帮助! 电脑蓝屏原因 1.软件兼容性问题引起电脑蓝屏 刚安装的系统,若驱动与硬件不兼容可能会导致蓝屏现象,建议安装硬件赠送光盘中的驱