Hosting

在伺服器的控制面板中添加新域時調試高 CPU 負載

  • June 27, 2013

在我的伺服器控制面板中添加一個新域時,它需要比平時更長的時間。

CPU 在一個核心上顯示 100% 的使用率,並且 strace 報告如下:

poll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, -64771072) = 1 ([{fd=7, revents=POLLIN}])
recvfrom(7, "OiJsb2NhbCI7fWk6NTQ0O2E6NTp7czo1"..., 8192, MSG_DONTWAIT, NULL, NULL) = 8192
poll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, -64771072) = 1 ([{fd=7, revents=POLLIN}])
recvfrom(7, "bm5hbWUiO3M6MjI6ImJhZHppZXdpYXJ6"..., 8192, MSG_DONTWAIT, NULL, NULL) = 8192
poll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, -64771072) = 1 ([{fd=7, revents=POLLIN}])
recvfrom(7, "IjtzOjExOiJ3ZWJtYWlscHJvZyI7czow"..., 8192, MSG_DONTWAIT, NULL, NULL) = 8192

可能是什麼原因?

我的作業系統是 CentOS 5.9 64 位。嘗試了不同的硬體和核心,總是一樣的……

看起來一個 CPU 正忙於接收一些巨大的 JSON:

λ ~/ base64 -D
OiJsb2NhbCI7fWk6NTQ0O2E6NTp7czo1
bm5hbWUiO3M6MjI6ImJhZHppZXdpYXJ6
IjtzOjExOiJ3ZWJtYWlscHJvZyI7czow
^D
:"local";}i:544;a:5:{s:5
nname";s:22:"badziewiarz
";s:11:"webmailprog";s:0%

我猜想“伺服器的控制面板”軟體可以重寫以提高效率,並且不會隨著時間的推移而降低性能。

**注意!**不要strace從生產伺服器複製/粘貼 s - 該 JSON 中可能存在一些敏感資訊,例如登錄名/密碼/會話/API 密鑰/等。

引用自:https://serverfault.com/questions/518429