Movable Type の記事を再構築するのに異様に時間がかかっている。記事数が増えたのが原因ではなく,根本的にサーバの速度が遅いのではないかという疑いが出てきた。調べてみると,動作周波数が低く設定されていることが分かった。
最近,Movable Type で 日付別アーカイブの再構築に失敗する ので,EntriesPerRebuild の数値を下げたり,データベースを Berkeley DB から MySQL に するということを行ってきた。しかし,体感的に速度が上がった感じがしない。何かおかしい。再構築うんぬんより前に,そもそも Web サーバの反応が鈍いのである。例えば,「ファイルのUpload」ボタンをクリックしてからウィンドウが出てくるまでに7秒くらいかかるのである。
top コマンドで CPU の使用率を見ると,cpufreqd というデーモンが常時 1 % 程度消費している。cpufreq は CPU の動作速度と動作ポリシーを制御するデーモンである(Gentoo Linux のドキュメント - 電力管理ガイド)。どのような設定になっているのか見てみると,
となり,「minimum CPU frequency」の下に最低の動作周波数の実際の数値が表示されるはずなのだが,何も表示されていない。echo コマンドでファイルを上書きしても変化がない。cpufreqd が正常に動作していないのだ。これでは cpufreqd を起動している意味がない。
実際の動作速度を調べることにした。
CPU のクロック周波数が 187.799 MHz になっている。現在サーバに使っているマシンは ThinkPad T22(2647-9EJ) で,動作クロックは 1 GHz であるから,本来発揮できるパフォーマンスの 20 % 以下でしか動作していないことになる。念のため cpufreqd をスタートアップスクリプトから外して再起動してみたが,cpuinfo に変化はなかった。
サーバのプロセッサは Mobile Pentium III である。このプロセッサに関しては speedstep-ich モジュールを組み込むことで cpufreqd が動作するようになるらしい(TurboLinux User's Board - "speedstep (cpufreq)")。i686 用に最適化されたカーネルのコンフィグレーションファイル (/usr/src/linux/configs/kernel-2.4.27-i686.config) を見ると,speedstep-ich モジュールが有効になっているようなので,そのカーネルを使えば一気に解決するかと思ったのだが,予想に反して状況は変わらなかった。カーネルの再構築をしなければならないかも知れない。「i686」というのは,Linux が Intel 製の最近のプロセッサに対して便宜上つけている名前で,Pentium Pro や Pentium II 以降の CPU を指す (@IT:プログラムをi686に最適化するには)。
2005年9月23日追記:
Vine Linux 3.2 で動作するようになりました (nlog(n): カーネルの再構築でスピードステップに対応)。
Master Archive Index
Total Entry Count: 1957
コメントの登録にも時間がかかっているようなので、動作クロック関連の設定変更が上手く出来ることに期待しています。
では。
(ちなみに休日対応プラグインの間接的利用者です)
Posted by: ち印 at August 17, 2005 09:46