什么是造成不寻常的高负荷平均?

我注意到在上周二晚上,平均负荷急剧上升,由于交通量很小,似乎不正常。 通常情况下,数字通常在.40或更低,我的服务器的东西(MySQL,PHP和Apache)进行了优化。 我注意到即使进程几乎不使用任何CPU,IOWait仍然非常高。

 顶部 -  01:44:39最多1天,21:13,1个用户,平均负载:1.41,1.09,0.86
任务:总共60个,1个跑步,59个睡眠,0个停止,0个僵尸
 Cpu0:0.0%us,0.0%sy,0.0%ni,100.0%id,0.0%wa,0.0%hi,0.0%si,0.0%st
 Cpu1:0.0%us,0.0%sy,0.0%ni,100.0%id,0.0%wa,0.0%hi,0.0%si,0.0%st
 Cpu2:0.0%us,0.3%sy,0.0%ni,99.7%id,0.0%wa,0.0%hi,0.0%si,0.0%st
 Cpu3:0.0%us,0.0%sy,0.0%ni,100.0%id,0.0%wa,0.0%hi,0.0%si,0.0%st
 Cpu4:0.0%us,0.0%sy,0.0%ni,100.0%id,0.0%wa,0.0%hi,0.0%si,0.0%st
 Cpu5:0.0%us,0.0%sy,0.0%ni,100.0%id,0.0%wa,0.0%hi,0.0%si,0.0%st
 Cpu6:0.0%us,0.0%sy,0.0%ni,100.0%id,0.0%wa,0.0%hi,0.0%si,0.0%st
 Cpu7:0.0%us,0.0%sy,0.0%ni,91.5%id,8.5%wa,0.0%hi,0.0%si,0.0%st
 Mem:总计1048576k,使用331944k,使用716632k,0k缓冲区
交换:总共0k,使用0k,0k自由,0kcaching

   PID用户PR NI VIRT RES SHR S%CPU%MEM时间+命令           
     1 root 15 0 2468 1376 1140 S 0 0.1 0:00.92 init               
  1656根15 0 13652 5212 664 S 0 0.5 0:00.00 apache2            
  9323根18 0 13652 5212 664 S 0 0.5 0:00.00 apache2            
 10079根18 0 3972 1248 972 S 0 0.1 0:00.00 su                 
 10080根15 0 4612 1956 1448 S 0 0.2 0:00.01 bash               
 11298根15 0 13652 5212 664 S 0 0.5 0:00.00 apache2            
 11778 chikorit 15 0 2344 1092 884 S 0 0.1 0:00.05 top                
 15384根18 0 17544 13m 1568 S 0 1.3 0:02.28 miniserv.pl        
 15585根15 0 8280 2736 2168 S 0 0.3 0:00.02 sshd               
 15608 chikorit 15 0 8280 1436 860 S 0 0.1 0:00.02 sshd 

这是VMStat

  procs -----------内存---------- --- swap-- ----- io -----system-- ---- cpu-- - 
  rb swpd免费的buffcachingsi所以在我们sy sy洼
  1 0 0 768644 0 0 0 0 14 23 0 10 1 0 99 0 

IOStat – 没有什么不寻常的

 总磁盘阅读:67.13 K / s | 总的磁盘写入:0.00 B / s
   TID PRIO用户磁盘读取磁盘写入SWAPIN IO> COMMAND          
 19496 be / 4 chikorit 11.85 K / s 0.00 B / s 0.00%0.00%apache2 -k start
 19501是/ 4 mysql 3.95 K / s 0.00 B / s 0.00%0.00%mysqld
 19568 be / 4 chikorit 11.85 K / s 0.00 B / s 0.00%0.00%apache2 -k start
 19569 be / 4 chikorit 11.85 K / s 0.00 B / s 0.00%0.00%apache2 -k start
 19570 be / 4 chikorit 11.85 K / s 0.00 B / s 0.00%0.00%apache2 -k start
 19571 be / 4 chikorit 7.90 K / s 0.00 B / s 0.00%0.00%apache2 -k start
 19573 be / 4 chikorit 7.90 K / s 0.00 B / s 0.00%0.00%apache2 -k start
     1根/ 4根0.00 B / s 0.00 B / s 0.00%0.00%初始
 11778 be / 4 chikorit 0.00 B / s 0.00 B / s 0.00%0.00%top
 19470 be / 4 mysql 0.00 B / s 0.00 B / s 0.00%0.00%mysqld

载入平均图表 – http://i.stack.imgur.com/kYsD0.png

在确定之前,我想确定这不是MySQL问题。 另外,这是OpenVZ上的Ubuntu 10.04 LTS服务器。

编辑:这可能会给IO等待一个很好的图片

 顶部 -  22:12:22上午17:41,1个用户,平均负载:1.10,1.09,0.93
任务:总共33次,跑步1次,睡眠32次,停止0次,僵尸0次
 Cpu:0.6%us,0.2%sy,0.0%ni,89.0%id,10.1%wa,0.0%hi,0.0%si,0.0%st
 Mem:总计1048576k,使用260708k,使用787868k,缓冲区0k
交换:总共0k,使用0k,0k自由,0kcaching

 PID用户PR NI VIRT RES SHR S%CPU%MEM时间+命令 
 1 root 15 0 2468 1376 1140 S 0 0.1 0:00.88 init 
 5849根15 0 12336 4028 668 S 0 0.4 0:00.00 apache2 
 8063根15 0 12336 4028 668 S 0 0.4 0:00.00 apache2 
 9732根16 0 8280 2728 2168 S 0 0.3 0:00.02 sshd 
 9746 chikorit 18 0 8412 1444 864 S 0 0.1 0:01.10 sshd 
 9747 chikorit 18 0 4576 1960 1488 S 0 0.2 0:00.24 bash 
 13706 chikorit 15 0 2344 1088 884 R 0 0.1 0:00.03 top 
 15745 chikorit 15 0 12968 5108 1280 S 0 0.5 0:00.00 apache2 
 15751 chikorit 15 0 72184 25m 18m S 0 2.5 0:00.37 php5-fpm 
 15790 chikorit 18 0 12472 4640 1192 S 0 0.4 0:00.00 apache2 
 15797 chikorit 15 0 72888 23m 16m S 0 2.3 0:00.06 php5-fpm 
 16038根15 0 67772 2848 592 D 0 0.3 0:00.00 php5-fpm 
 16309 syslog 18 0 24084 1316 992 S 0 0.1 0:00.07 rsyslogd 
 16316根15 0 5472 908 500 S 0 0.1 0:00.00 sshd 
 16326根15 0 2304 908 712 S 0 0.1 0:00.02 cron 
 17464根15 0 10252 7560 856 D 0 0.7 0:01.88 psad 
 17466根18 0 1684 276 208 S 0 0.0 0:00.31 psadwatchd 
 17559根18 0 11444 2020 732 S 0 0.2 0:00.47 sendmail-mta 
 17688根15 0 10252 5388 1136 S 0 0.5 0:03.81 python 
 17752 teampea 19 0 44648 7308 4676 S 0 0.7 1:09.70 ts3server_linux 
 18098根15 0 12336 6380 3032 S 0 0.6 0:00.47 apache2 
 18099 chikorit 18 0 10368 2536 464 S 0 0.2 0:00.00 apache2 
 18120 ntp 15 0 4336 1316 984 S 0 0.1 0:00.87 ntpd 
 18379根15 0 12336 4028 668 S 0 0.4 0:00.00 apache2 
 18387 mysql 15 0 62796 36m 5864 S 0 3.6 1:43.26 mysqld 
 19584根15 0 12336 4028 668 S 0 0.4 0:00.02 apache2 
 22498根16 0 12336 4028 668 S 0 0.4 0:00.00 apache2 
 24260根15 0 67772 3612 1356 S 0 0.3 0:00.22 php5-fpm 
 27712根15 0 12336 4028 668 S 0 0.4 0:00.00 apache2 
 27730根15 0 12336 4028 668 S 0 0.4 0:00.00 apache2 
 30343根15 0 12336 4028 668 S 0 0.4 0:00.00 apache2 
 30366根15 0 12336 4028 668 S 0 0.4 0:00.00 apache2 

这是今天的免费公羊。

             caching总共使用的空闲共享缓冲区
 Mem:1024 302 721 0 0 0
 -  / + buffers / cache:302 721
交换:0 0 0

更新:查看日志,特别是引起CPU峰值的PHP5-FPM。 我发现它的段错误有一些明显的原因。

 [03-Jun-2012 06:11:20]通知:[池www]子14132开始
 [03-Jun-2012 06:11:25]警告:在启动53.686322秒后[pool www]子13664在信号11(SIGSEGV)上退出
 [03-Jun-2012 06:11:25]通知:[池www]子14328开始
 [03-Jun-2012 06:11:25]警告:从开始4.708681秒后,信号11(SIGSEGV)上的[pool www]子14132退出
 [03-Jun-2012 06:11:25]通知:[池www]子14329开始
 [03-Jun-2012 06:11:58]警告:在启动32.981228秒后[pool www]子14328在信号11(SIGSEGV)上退出
 [03-Jun-2012 06:11:58]通知:[池www]子15745开始
 [03-Jun-2012 06:12:25]警告:在启动27.442864秒后,信号11(SIGSEGV)上的[pool www]子15745退出
 [03-Jun-2012 06:12:25]通知:[池www]孩子17446开始
 [03-Jun-2012 06:12:25]警告:在启动60.411278秒后,信号11(SIGSEGV)上的[pool www]子14329退出
 [03-Jun-2012 06:12:25]通知:[池www]子17447开始
 [03-Jun-2012 06:13:02]警告:在启动36.746793秒后,信号11(SIGSEGV)上的[pool www]子17446退出
 [03-Jun-2012 06:13:02]通知:[池www]孩子18133开始
 [03-Jun-2012 06:13:48]警告:在启动82.710107秒后[pool www]子17447在信号11(SIGSEGV)上退出 

我在想这可能会导致这个问题。 如果这是原因,可能将其切换到fastcgi / fcgid可能会解决它…但仍然,我想看看是否有其他事情可能导致它做到这一点。

我希望服务器有内存问题。 这将导致容器不得不等待数据来自磁盘而不是缓冲区。 如果您有权访问服务器,请尝试在其上运行vmstat ,而不是在容器中运行它。 虚拟服务器的内存pipe理取决于主机服务器。 我注意到的第一件事情是数据中没有缓冲区,caching或交换。 这些对性能都很重要。

要查看哪个进程导致高I / O,可以使用dstatiotop

为了看看为什么php崩溃,当启动apache时,确保你运行ulimit -c unlimited 。 下次当php会崩溃,你将有一个核心转储。 在gdb使用bt命令来获得崩溃的堆栈跟踪。 例如

 gdb /usr/bin/httpd core (gdb) bt 

请参阅: http : //www.network-theory.co.uk/articles/gccdebug.html

从外观上看,高CPU占用率可能是由Wordpress插件Google XML Sitemap生成器引起的。 禁用之后,CPU平均值大部分下降。 不过,审计插件来删除任何可能使用太多的CPU。

还检查/检查了物理磁盘子系统没有实际问题 – 重buildRAID,BBU出现故障,单个磁盘出现故障……也可能导致类似症状