CentOS:MySQLd 运行时 CPU 占用率有时达到 333%。CPU 负载高

CentOS:MySQLd 运行时 CPU 占用率有时达到 333%。CPU 负载高

我有几个网站在 Intel Xeon-Lynnfield 3470-Quadcore [2.93GHz] 上运行。

使用这台专用服务器,MySQL 似乎仍未针对这些网站带来的众多访问者进行优化。

RAM 为 16GB。但是,WHM 仍然显示 CPU 负载较高。

下面我发布了之后击中 1 的结果top

top - 10:07:48 up 15:17,  4 users,  load average: 9.04, 6.77, 8.38
Tasks: 308 total,   1 running, 306 sleeping,   0 stopped,   1 zombie
Cpu0  : 11.2%us,  1.7%sy,  0.0%ni, 86.8%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Cpu1  :  4.3%us,  3.0%sy,  0.0%ni,  0.3%id, 85.4%wa,  0.0%hi,  7.0%si,  0.0%st
Cpu2  :  4.3%us,  0.7%sy,  0.0%ni, 94.0%id,  0.0%wa,  0.3%hi,  0.7%si,  0.0%st
Cpu3  :  6.3%us,  2.7%sy,  0.0%ni, 91.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu4  :  6.3%us,  0.7%sy,  0.0%ni, 93.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu5  : 10.9%us,  2.0%sy,  0.0%ni, 82.5%id,  4.6%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu6  :  0.7%us,  0.3%sy,  0.0%ni, 98.3%id,  0.7%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu7  :  8.6%us,  3.3%sy,  0.0%ni, 84.1%id,  1.0%wa,  0.3%hi,  2.7%si,  0.0%st
Mem:  16428144k total,  6560376k used,  9867768k free,   714452k buffers
Swap:  2096440k total,        0k used,  2096440k free,  3508028k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
19574 songonly  17   0  165m  41m 7348 S  6.3  0.3   0:00.19 php
 2282 root      10  -5     0    0    0 D  4.0  0.0   9:55.06 kjournald
24262 mysql     15   0 1452m 782m 4180 S  1.7  4.9  41:50.00 mysqld
 5196 root      21   0 4371m 123m 9352 S  1.0  0.8   9:24.01 java
19160 root      15   0 12876 1268  812 R  0.7  0.0   0:00.21 top
 1381 root      15   0 94248 3440 2672 S  0.3  0.0   0:00.76 sshd
 5000 named     25   0  286m 6692 1980 S  0.3  0.0   1:44.91 named
10585 nobody    15   0 74404 3744 1544 S  0.3  0.0   0:00.45 httpd
15638 nobody    15   0 74404 3716 1532 S  0.3  0.0   0:00.20 httpd
16790 nobody    15   0 74404 3688 1532 S  0.3  0.0   0:00.12 httpd
17296 nobody    15   0 74404 3708 1524 S  0.3  0.0   0:00.16 httpd
18519 nobody    15   0 74404 3700 1536 S  0.3  0.0   0:00.09 httpd
18718 nobody    15   0 74404 3712 1532 S  0.3  0.0   0:00.08 httpd
19109 nobody    15   0 74404 3664 1524 S  0.3  0.0   0:00.03 httpd
19333 nobody    15   0 74404 3608 1512 S  0.3  0.0   0:00.01 httpd
19351 nobody    15   0 74404 3616 1512 S  0.3  0.0   0:00.01 httpd
19359 nobody    15   0 74404 3640 1520 S  0.3  0.0   0:00.01 httpd
    1 root      15   0 10352  696  588 S  0.0  0.0   0:01.72 init
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/0
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.01 ksoftirqd/0
    4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
    5 root      RT  -5     0    0    0 S  0.0  0.0   0:00.05 migration/1

如果有人能帮忙。

谢谢。

答案1

有几件事引起了我的注意:

  • CPU 负载数字不仅仅是 CPU 闲置/使用率的衡量标准。您可以获得高负载和相对较低的 CPU 使用率。
  • CPU2上85.4%wa的“D”和 kjournald 条目上的“D”表示有东西正在等待磁盘 IO 完成。查看哪些进程正在等待 IO 以确定操作过程(我通常只是观察一下 top 输出)。
  • 您使用的 RAM 还不到一半。这可能是因为系统实际上不需要它(这没问题)或某些 MySQL 设置配置错误。
  • 根据 top 输出,MySQL 的平均 CPU 使用率仅为 5% (15 小时内 41m)。这似乎表明不是 CPU 不足。

给出的信息似乎都指向 IO 问题。使用 iotop 之类的工具来获取有关导致问题的更多信息。

相关内容