我注意到上周二晚上,平均负载急剧上升,由于流量很小,这似乎很不正常。通常,这些数字通常平均在 .40 或更低,我的服务器内容(mysql、php 和 apache)已优化。我注意到 IOWait 异常高,尽管进程几乎没有使用任何 CPU。
顶部 - 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 内存:总计 1048576k,已用 331944k,可用 716632k,缓冲区 0k 交换:总计 0k,已使用 0k,可用 0k,缓存 0k PID 用户 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 chikorit 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
进程 -----------内存---------- ---交换-- -----io---- -系统-- ----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 用户磁盘读取磁盘写入 SWAPIN 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/秒 0.00 B/秒 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 chikorit 0.00 B/s 0.00 B/s 0.00 % 0.00 % 顶部 19470 be/4 mysql 0.00 B/秒 0.00 B/秒 0.00 % 0.00 % mysqld
平均负载图表 -https://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 内存:总计 1048576k,已用 260708k,可用 787868k,缓冲区 0k 交换:总计 0k,已使用 0k,可用 0k,缓存 0k PID 用户 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 chikorit 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 chikorit 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 根 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 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 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
这是截至今天的可用内存。
已使用的、可用的、缓存的共享缓冲区总数 内存:1024 302 721 0 0 0 -/+ 缓冲区/缓存:302721 交换:0 0 0
更新:查看日志,特别是导致 CPU 峰值的 PHP5-FPM。我发现它由于某些明显的原因而出现段错误。
[2012-06-03 06:11:20] 通知:[pool www] 子进程 14132 已启动 [2012 年 6 月 3 日 06:11:25] 警告:[pool www] 子进程 13664 在启动后 53.686322 秒因信号 11 (SIGSEGV) 而退出 [2012-06-03 06:11:25] 通知:[pool www] 子进程 14328 已启动 [2012 年 6 月 3 日 06:11:25] 警告:[pool www] 子进程 14132 在启动后 4.708681 秒因信号 11 (SIGSEGV) 而退出 [2012-06-03 06:11:25] 通知:[pool www] 子进程 14329 已启动 [2012 年 6 月 3 日 06:11:58] 警告:[pool www] 子进程 14328 在启动后 32.981228 秒因信号 11 (SIGSEGV) 而退出 [2012-06-03 06:11:58] 通知:[pool www] 子进程 15745 已启动 [2012 年 6 月 3 日 06:12:25] 警告:[pool www] 子进程 15745 在启动后 27.442864 秒因信号 11 (SIGSEGV) 而退出 [2012-06-03 06:12:25] 通知:[pool www] 子进程 17446 已启动 [2012 年 6 月 3 日 06:12:25] 警告:[pool www] 子进程 14329 在启动后 60.411278 秒因信号 11 (SIGSEGV) 而退出 [2012-06-03 06:12:25] 通知:[pool www] 子进程 17447 已启动 [2012 年 6 月 3 日 06:13:02] 警告:[pool www] 子进程 17446 在启动后 36.746793 秒因信号 11 (SIGSEGV) 而退出 [2012-06-03 06:13:02] 通知:[pool www] 子进程 18133 已启动 [2012 年 6 月 3 日 06:13:48] 警告:[pool www] 子进程 17447 在启动后 82.710107 秒因信号 11 (SIGSEGV) 而退出
我认为这可能是导致问题的原因。如果这是原因,那么将其关闭并切换到 fastcgi/fcgid 可能会解决问题...但我仍然想看看是否还有其他原因导致这种情况。
答案1
我估计服务器有内存问题。这将导致容器必须等待数据来自磁盘而不是缓冲区。如果您有权访问服务器,请尝试vmstat
在其上运行,而不是在容器中运行。虚拟服务器的内存管理依赖于主机服务器。我注意到的第一件事是数据中没有缓冲区、缓存或交换。这些对性能都很重要。
答案2
要查看哪个进程导致高 I/O,您可以使用dstat
或iotop
。
要查看 php 崩溃的原因,请确保在启动 apache 时运行ulimit -c unlimited
。下次 php 崩溃时,您将看到核心转储。使用bt
命令内部gdb
获取崩溃的堆栈跟踪。例如
gdb /usr/bin/httpd core
(gdb) bt
答案3
从表面上看,高 CPU 使用率可能是由 Wordpress 插件 Google XML Sitemap 生成器引起的。禁用该插件后,CPU 平均值大多下降。不过,还是要审核插件,删除可能占用过多 CPU 的插件。
答案4
还请检查/已检查物理磁盘子系统没有实际问题 - 重建 raid、BBU 故障、单个磁盘故障……也可能导致类似症状