![数据库服务器的负载达到很高的值,但是似乎没有任何东西使用 CPU,可能是什么原因?](https://linux22.com/image/616324/%E6%95%B0%E6%8D%AE%E5%BA%93%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E8%B4%9F%E8%BD%BD%E8%BE%BE%E5%88%B0%E5%BE%88%E9%AB%98%E7%9A%84%E5%80%BC%EF%BC%8C%E4%BD%86%E6%98%AF%E4%BC%BC%E4%B9%8E%E6%B2%A1%E6%9C%89%E4%BB%BB%E4%BD%95%E4%B8%9C%E8%A5%BF%E4%BD%BF%E7%94%A8%20CPU%EF%BC%8C%E5%8F%AF%E8%83%BD%E6%98%AF%E4%BB%80%E4%B9%88%E5%8E%9F%E5%9B%A0%EF%BC%9F.png)
top - 16:33:08 up 155 days, 6:05, 5 users, load average: 27.93, 35.31, 31.34
此时它只显示 27.0,但行为如下:虽然 mysqld 使用 0% CPU,但负载上升到高值(同时服务器处于 99.20 空闲状态)每当查询到达服务器时,mysqld 进程开始使用一些 CPU,而负载值会降低,是什么导致了这种奇怪的行为?在这段时间内,服务器似乎处于空闲状态,没有从磁盘写入/读取任何内容。
[root@mysqlsvr ~]# date ; sar
ד' אוג 14 16:29:17 IDT 2013
Linux 2.6.32-71.29.1.el6.x86_64 (mysqlsvr) 14/08/13 _x86_64_ (80 CPU)
15:30:01 CPU %user %nice %system %iowait %steal %idle
15:40:01 all 0.72 0.00 0.90 4.80 0.00 93.57
15:50:01 all 1.07 0.01 1.83 3.13 0.00 93.96
16:00:01 all 0.55 0.00 0.80 4.69 0.00 93.96
16:10:01 all 0.24 0.00 0.19 3.23 0.00 96.34
16:20:01 all 0.70 0.01 1.09 3.59 0.00 94.61
Average: all 0.66 0.00 0.96 3.89 0.00 94.49
[root@mysqlsvr ~]# date ;iostat
ד' אוג 14 16:29:32 IDT 2013
Linux 2.6.32-71.29.1.el6.x86_64 (mysqlsvr) 14/08/13 _x86_64_ (80 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.17 0.00 0.21 0.01 0.00 99.62
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.89 1.12 7.26 15004502 97409836
sdb 16.10 0.96 1315.43 12815431 17644874178
dm-0 0.95 0.93 7.23 12433962 96936968
dm-1 0.00 0.00 0.01 15360 84016
dm-2 164.38 0.96 1315.43 12813185 17644874178
dm-3 0.01 0.02 0.03 333354 385384
fioa 88.60 29.26 1492.84 392514339 20024549216
drbd0 33.50 26.50 257.39 355470226 3452628864
drbd1 25.57 0.46 204.44 6197282 2742359000
[root@mysqlsvr ~]#
答案1
您遇到了 IO 问题(查看 %iowait)。很可能您遇到了磁盘性能/IOPS 问题。
CPU 资源不能被完全利用,因为进程正在等待数据到达或被写入。
你有 80 个 CPU,在这种情况下,对于这个 iowait 来说,平均负载这么高是意料之中的。
关于重启:如果 FS 没有问题 - 也有望刷新磁盘缓存和 mysql 内存。
内存使用情况如何?http://www.pixelbeat.org/scripts/ps_mem.py
免费-m;cat /proc/mdstat