我注意到上周周二晚上,平均负载急剧上升,似乎不正常,因为流量很小。通常,这些数字通常平均在 0.40 左右或更低,并且我的服务器内容(mysql、php 和 apache)都经过了优化。我注意到 IOWait 异常高,即使进程几乎没有使用任何 CPU。
顶部 - 01:44:39 up 1 day, 21:13, 1 user, load average: 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 内存:总计 1048576k,已使用 331944k,空闲 716632k,缓冲区 0k Swap: 0k total, 0k used, 0k free, 0k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ 命令 1 根 15 0 2468 1376 1140 S 0 0.1 0:00.92 初始化 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 苏 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 菊苣 15 0 2344 1092 884 S 0 0.1 0:00.05 顶部 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 菊苣 15 0 8280 1436 860 S 0 0.1 0:00.02 sshd
这是 VMStat
procs ----------memory------------ ---swap-- -----io---- -system-- ----cpu-- -- rb swpd 免费 buff 缓存 si so bi bo in cs us sy id wa 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 用户磁盘读取磁盘写入交换 IO> 命令 19496 be/4 chikorit 11.85 K/s 0.00 B/s 0.00 % 0.00 % apache2 -k 启动 19501 be/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 启动 19569 be/4 chikorit 11.85 K/s 0.00 B/s 0.00 % 0.00 % apache2 -k 启动 19570 be/4 chikorit 11.85 K/s 0.00 B/s 0.00 % 0.00 % apache2 -k 启动 19571 be/4 chikorit 7.90 K/s 0.00 B/s 0.00 % 0.00 % apache2 -k 启动 19573 be/4 chikorit 7.90 K/s 0.00 B/s 0.00 % 0.00 % apache2 -k 启动 1 be/4 根 0.00 B/s 0.00 B/s 0.00 % 0.00 % 初始化 11778 be/4 菊苣 0.00 B/s 0.00 B/s 0.00 % 0.00 % 顶部 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 Wait 一个很好的画面
顶部 - 22:12:22 到 17:41,1 个用户,平均负载:1.10、1.09、0.93 任务:共33个,1个跑,32个睡,0个停止,0个丧尸 中央处理器:0.6%us、0.2%sy、0.0%ni、89.0%id、10.1%wa、0.0%hi、0.0%si、0.0%st 内存:总计 1048576k,已使用 260708k,空闲 787868k,缓冲区 0k Swap: 0k total, 0k used, 0k free, 0k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ 命令 1 根 15 0 2468 1376 1140 S 0 0.1 0:00.88 初始化 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 菊苣 18 0 8412 1444 864 S 0 0.1 0:01.10 sshd 9747 菊苣 18 0 4576 1960 1488 S 0 0.2 0:00.24 bash 13706 菊苣 15 0 2344 1088 884 R 0 0.1 0:00.03 顶部 15745 菊苣 15 0 12968 5108 1280 S 0 0.5 0:00.00 apache2 15751 菊苣 15 0 72184 25m 18m S 0 2.5 0:00.37 php5-fpm 15790 菊苣 18 0 12472 4640 1192 S 0 0.4 0:00.00 apache2 15797 菊苣 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 系统日志 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 root 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 蟒蛇 17752 teamspea 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 菊苣 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
这是今天的免费内存。
缓存的已用空闲共享缓冲区总数 内存:1024 302 721 0 0 0 -/+ 缓冲区/缓存:302 721 交换:0 0 0
更新:查看日志,尤其是导致 CPU 峰值的 PHP5-FPM。我发现它的段由于某些明显的原因而出错。
[03-Jun-2012 06:11:20] 注意:[pool www] child 14132 started [03-Jun-2012 06:11:25] 警告:[pool www] child 13664 在开始 53.686322 秒后退出信号 11 (SIGSEGV) [03-Jun-2012 06:11:25] 注意:[pool www] child 14328 已启动 [03-Jun-2012 06:11:25] 警告:[pool www] child 14132 在开始 4.708681 秒后退出信号 11 (SIGSEGV) [03-Jun-2012 06:11:25] 注意:[pool www] child 14329 started [03-Jun-2012 06:11:58] 警告:[pool www] child 14328 在开始 32.981228 秒后退出信号 11 (SIGSEGV) [03-Jun-2012 06:11:58] 注意:[pool www] child 15745 started [03-Jun-2012 06:12:25] 警告:[pool www] child 15745 在开始 27.442864 秒后退出信号 11 (SIGSEGV) [03-Jun-2012 06:12:25] 注意:[pool www] child 17446 started [03-Jun-2012 06:12:25] 警告:[pool www] child 14329 在开始 60.411278 秒后退出信号 11 (SIGSEGV) [03-Jun-2012 06:12:25] 注意:[pool www] child 17447 已启动 [03-Jun-2012 06:13:02] 警告:[pool www] child 17446 在开始 36.746793 秒后退出信号 11 (SIGSEGV) [03-Jun-2012 06:13:02] 注意:[pool www] child 18133 started [03-Jun-2012 06:13:48] 警告:[pool www] child 17447 在开始 82.710107 秒后退出信号 11 (SIGSEGV)
我认为这可能是导致问题的原因。如果这是原因,可能将其关闭到 fastcgi/fcgid 可能会解决它......但是,我仍然想看看是否有其他原因可能导致它这样做。
我希望服务器有内存问题。这将导致容器不得不等待数据来自磁盘而不是缓冲区。如果您有权访问服务器,请尝试
vmstat
在其上运行而不是在容器中运行。虚拟服务器的内存管理取决于主机服务器。我注意到的第一件事是您的数据中没有缓冲区、缓存或交换。这些对性能都很重要。要查看哪个进程导致高 I/O,您可以使用
dstat
oriotop
。要查看 php 崩溃的原因,请在启动 apache 时确保运行
ulimit -c unlimited
. 下次当 php 崩溃时,您将得到一个核心转储。在里面使用bt
命令gdb
来获得崩溃的堆栈跟踪。例如请参阅: http: //www.network-theory.co.uk/articles/gccdebug.html
从表面上看,高 CPU 使用率可能是由 Wordpress 插件、Google XML Sitemap 生成器引起的。禁用后,CPU 平均值大部分下降。尽管如此,审核插件以删除任何可能使用过多 CPU 的插件。
还要检查/已经检查物理磁盘子系统没有实际问题——重建 raid、失败的 BBU、出现故障的单个磁盘……也会导致类似的症状