コマンドラインでMacのCPU温度をチェックする iStats

大学にあるMacproをsshでリモートコントロールして、WikipediaのProlog二分木化をやっている。途中で死んでしまうスレッドが目立つようになったので、今朝、思い切って200スレッド立ち上げて実行してみた。

現在作成済みのwikipediaファイルは309で全体544の56.8%まできている。しかし上のスレッド問題のために、丸1日かけて50個くらいしか増えなくなっているので、思い切って200スレッドを並列に動かしてみたわけだ。これで100スレッドが死んでも、1日で100個できるという、皮算用だ。(※ 結局、このもくろみは失敗した。逆にほとんどのスレッドが1日で死んでしまった、笑)

ただ、困ったのは、今見るとロードアベレージが150を超えている。一方、CPU負荷は、90数パーセントとこれまでと同じくらいなのだ。係り受け解析KNPは、ポート番号を変えてスレッド数だけ立ち上がる仕組みになっているが、これがsleepしていない、つまりrunning状態のものを

ps aux | grep knp | grep R | wc

というコマンドで確認すると、141個になっている。動かして数時間だが、すでに50スレッド以上が死んでしまっているわけだ。

なぜスレッドが死ぬのか、KNPとのTCPIPのプロトコルによる通信に何らかの障害が発生し、KNPがレスポンスを返さなくなると、スレッドがsleepしてしまうので、その辺の問題だろうと思っているが、実は詳しく調べていない。まずは、できるものをどんどん作成していくのが先だと思っているからだ。

(必ずしも死んだとは限らない。200スレッドということは、一つのスレッドが受け持つファイルはせいぜい3個である。全体で544個しかないのだから。そのうち300余は、完成済みなので、担当したファイルが全て作成済みの場合もある。ただ、ログを見る限り何もなくなり終了したスレッドのメッセージは見つからない)

本題になかなか入らなかったが、このように、高負荷で大学のマックを動かしていて、CPUが過熱状態にならないかが心配なのだ。

だから、本当は大学に出かけて、MACの様子を見ようかと思ったが、行ったところで、MACの筐体に触って、熱さを確かめるくらいなので、ならば、リモートで、CPUの温度くらいは確かめられるだろうと思った。

istatsというのがある。

sudo gem install iStats

で、インストールできる。istatsというコマンドをターミナルから打てば結果を出す

という結果で、この温度だと、大丈夫そうだった。