MacのGeekToolでプロセスごとのI/O負荷を表示させるようにしてみた。
どうも、うちのiMacが遅い。
メモリを8GBに増設した時は、もう怖い物はないぐらいのスピードだったのに、最近はやけにレインボーカーソルで待たされることが多くなった気がする。
たぶん、ディスクがガリガリ言っているので、何かのプログラムがディスクにめちゃくちゃアクセスして遅くなっているだろうと予測されるのだが、MacのアクティビティモニタにはプロセスごとのI/Oの情報が出せないみたい。Windowsのタスクマネージャーには出せるのに・・・。
調べてみると、ターミナルでiotopというコマンドを打てばプロセス毎のI/O負荷が出せることがわかりました。
あと、しばらく様子をみたいので、GeekToolで常にデスクトップに情報を表示させるようにしてみました。
以下は、その手順です。
iotopは管理者しか実行できないので、パスワードなしで使えるように設定する。
ターミナル起動して管理者権限に
sudo ?s
設定ファイルに書き込み権限を設定
chmod 640 /etc/sudoers
sudoersを編集
vi /etc/sudoers
以下の行を追加。
hoge ALL=(ALL) NOPASSWD:/usr/bin/iotop
※hogeは自分のログインIDです。ターミナルのプロンプトの$の前に書いてあるやつ。
書き込み権限を消す
chmod 440 /etc/sudoers
以下のコマンドを打ってパスワード聞かれなければOK
sudo iotop 2>/dev/null
以下をGeekToolに入れる
sudo iotop -t 10 -C 5 1 2>/dev/null | grep -v "Tracing"
周期は5秒にセット。
iotop側も5秒をセットしている。iotop側の周期を短くするとその一瞬でディスクアクセスしたものしか出ない仕組みみたいなので、デフォルトの5秒にしている。
繰り返しは1回ですぐ終了するようにしている。
-Cをつけないと、最初のPlease Waitの後に画面がクリアされるからか、表示がずれてしまう。
フォントもMenloなどの等幅フォントにしないといけない。
こんな感じで出来たデスクトップがこれ。
なかなかいい感じになりました。