数据库服务器的负载达到很高的值,但是似乎没有任何东西使用 CPU,可能是什么原因?

数据库服务器的负载达到很高的值,但是似乎没有任何东西使用 CPU,可能是什么原因?

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

相关内容