我们在 Amazon(ec2)上有几台类型为 c1.xlarge 且配备 16 个 CPU 的机器,运行着 Amazon AMI。
机器的详细信息:
7 GB 内存
20 个 EC2 计算单元(8 个虚拟核心,每个核心有 2.5 个 EC2 计算单元)
1690 GB 实例存储
64 位平台
I/O 性能:高
API 名称:c1.xlarge
自从几周前我们运行了最后一次 yum 升级以来,其中一台机器的平均负载很高。我们还没有更新其他机器,它们看起来一切正常。
奇怪的是,top 命令没有显示任何有关 负载原因的提示。CPU 为4.8%us
, 1.1%sy
, 0.0%ni
,94.1%id
, 0.0%wa
, 0.0%hi
, (见下文)。内存大约有 1.5GB 可用。0.0%si
0.0%st
知道可能是什么吗?或者我们还能在哪里检查?非常感谢您的帮助。
#
# top
#
top - 07:57:42 up 4:18, 1 user, load average: 1.36, 1.45, 1.47
Tasks: 131 total, 1 running, 130 sleeping, 0 stopped, 0 zombie
Cpu(s): 4.8%us, 1.1%sy, 0.0%ni, 94.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 7120092k total, 5644920k used, 1475172k free, 532888k buffers
Swap: 0k total, 0k used, 0k free, 3463936k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1557 mysql 20 0 1829m 374m 6448 S 14.3 5.4 11:15.09 mysqld
6655 apache 20 0 416m 49m 3744 S 9.3 0.7 0:04.85 httpd
27683 apache 20 0 421m 54m 3708 S 9.0 0.8 0:00.99 httpd
6682 apache 20 0 424m 57m 3788 S 8.3 0.8 0:03.81 httpd
16816 apache 20 0 419m 51m 3760 S 4.3 0.7 0:04.09 httpd
22182 apache 20 0 417m 50m 3756 S 1.7 0.7 0:06.34 httpd
219 root 20 0 0 0 0 S 0.3 0.0 0:00.34 kworker/7:1
699 root 20 0 0 0 0 S 0.3 0.0 0:00.40 kworker/3:1
1 root 20 0 19376 1508 1212 S 0.0 0.0 0:00.29 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 根 20 0 0 0 0 S 0.0 0.0 0:00.71 ksoftirqd/0
在适当的机器上运行“iostat”命令:
avg-cpu: %user %nice %system %iowait %steal %idle
8.97 0.03 4.46 0.19 0.14 86.23
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
xvdap1 1.60 0.69 55.38 587620 47254184
xvdfp2 2.64 1.10 61.04 934786 52091056
xvdfp4 0.86 0.19 41.72 163866 35601920
xvdfp1 4.37 36.59 73.89 31220810 63051504
xvdfp3 8.03 7.08 94.63 6045402 80749184
有问题的机器上的“iostat”命令:
avg-cpu: %user %nice %system %iowait %steal %idle
9.29 0.04 5.55 0.26 0.11 84.74
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
xvdap1 2.13 3.34 68.85 246244 5077888
xvdfp1 7.60 74.31 104.88 5480362 7734840
xvdfp3 13.22 73.67 125.00 5433386 9218600
xvdfp4 1.11 0.76 65.08 55762 4799248
xvdfp2 4.16 3.31 99.17 243818 7313264
有人知道我需要做什么吗?
谢谢
答案1
有了 8 个虚拟核心,平均负载 1.4 并不算高,也没什么好担心的(在平均负载达到 8 之前,您都是安全的)。但仅根据顶部输出,根本没有足够的信息来进一步帮助您。而且考虑到机器只运行了 4 个小时 - MySQL 可能仍在准备所有缓存。
可能是它的 I/O,而亚马逊没有提供正确的信息以便iowait
进行准确绘图(对于 VPS 来说相当典型)。
- 运行
iostat
并发布结果。 Munin
机器运行几天后,开始绘制图表并报告一些统计数据。
答案2
高平均负载可能是由 I/O 问题引起的。
尝试运行 iostat -x 10 10
并观察等待和%工具随着时间的推移。
await – 每个 IO 请求完成所需的平均时间。这包括请求在队列中等待的时间以及设备处理请求所需的时间
%util:这个数字表示设备处理请求所花费的时间百分比。