温度が上がるとCPU負荷が上がる?

当サイトのWebサーバ、温度が上がるとCPU負荷が上がる。普通因果が逆だろうと思うが、実際に暑い日はCPU負荷が上がり、涼しい日は下がる。結構熱を持つので外部ファンで強制空冷をすると負荷が下がり、うるさいので止めると上がる。

なんじゃそれと思ってログを見ると、暑いときはACPI関係のエラーがたくさん出ていた。

[root@www ~]# dmesg (前略) ACPI: EC: acpi_ec_wait timeout, status = 0, expect_event = 1 ACPI: EC: read timeout, command = 128 ACPI Exception (evregion-0420): AE_TIME, Returned by Handler for [EmbeddedControl] [20070126] ACPI Error (psparse-0537): Method parse/execution failed [\_TZ_.THRM._TMP] (Node cfc67420), AE_TIME (後略)

topをみてもkacpi_notifyがだいぶCPUを喰っている。また別の問題ではあるがDiCEも妙に負荷が高い。この2つが無駄飯喰いのようだ。

[root@www ~]# top top - 16:49:34 up 3 days, 5:27, 1 user, load average: 1.55, 1.51,1.41 Tasks: 99 total, 2 running, 97 sleeping, 0 stopped, 0 zombie Cpu(s): 1.0%us, 69.4%sy, 0.0%ni, 28.9%id, 0.0%wa, 0.3%hi, 0.3%si, 0.0%st Mem: 255324k total, 242352k used, 12972k free, 20892k buffers Swap: 524280k total, 39032k used, 485248k free, 67964k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
49 root 15 -5 0 0 0 R 60.9 0.0 743:14.99 kacpi_notify
2779 root 20 0 4184 384 296 S 5.6 0.2 1595:39 diced
2742 haldaemo 20 0 2076 824 728 S 0.7 0.3 8:08.63 hald-addon-acpi

ACPIを無効にするには、カーネルにacpi=offのパラメータを渡せばよい。boot時に

boot: linux acpi=off

とパラメータを渡してもいいし、恒久的に設定したいのであれば/etc/grub.confのkernel行に
acpi=off

を追加してもよい。

今回はファンで冷やしておけばいいのだから、とりあえずそのままにしておこう。