マシンのパフォーマンスが全く出ていないので,カーネルの再構築を行うことにした。時間はかかるが,自動的に RPM パッケージまで作成してくれるのがありがたい。
■ ■ ■
Movable Type の再構築に時間が異様にかかる。調べてみると,マシンのパフォーマンスが十分に出ていないことが分かった (nlog(n): CPU の動作周波数が低過ぎる)。そこで,カーネルの再構築を行うことにした。
Vine には mkkpkg という,コンパイルからパッケージ作成までの一連の作業を自動的に行ってくれるコマンドがインストールされている。mkkpkg の使い方については詳しく解説してくれているサイトがある。基本的には Vine Linux 3.1で電源が切れない場合の対処 を参考にして, Vine 流カーネル再構築メモ のオプションの指定方法を使った。参考にさせていただいたサイトは,どちらも X Window の GUI を使う方法で分かりやすいのだが,余計な CPU 負荷をかけたくないので,ここではコマンドラインから行う方法をとることにした。
# mkkpkg --rpmarg="--target=i686" kernel-2.4.27-0vl7.6.src.rpm menuconfig
Welcome to mkkpkg
Please wait for a while "make menuconfig" to be executed...
Executing "rpmbuild -bp /root/rpm/SPECS/kernel-2.4-vl.spec"...done.
Input your kernel Revision [SRPM = 0vl7.6]: 0vl7.6.1
kernel Revision [yours = 0vl7.6.1]. OK? [y/n] y
Do you want to edit kernel-2.4.27-0vl7.6.1.spec? [y/n] n
Do you want to build SRPM? (If no, only RPMs are built) [y/n] y
Ready for make "menuconfig" by kernel-2.4.27-i386.config
[Push enter to continue] (Enter を押す)
Load an Alternate Configuration File (選択)
/usr/src/linux/configs/kernel-2.4.27-i686.config (入力)
Processor type and features ---> (選択)
CPU Frequency scaling ---> (選択)
<*> Intel Speedstep (ICH) (チェックが入っていることを確認)
Do you wish to save your new kernel configuration?
< Yes > (設定を保存)
mkkpkg
Now we are prepared for executing:
rpmbuild -ba /root/rpm/SPECS/kernel-2.4.27-0vl7.6.1.spec --target=i386
Log output goes to /tmp/kernel-mkkpkg.log.
You can read it by following sequence:
1. Push "Ctrl+Z" to suspend the next long process
2. Type "bg" to continue background
3. Use "less" to print /tmp/kernel-mkkpkg.log
3.1 Push "Shift+F" to "Forward forever; like tail -f"
3.2 If you want to stop reading, Push "Ctrl+C"
4. Type "fg" to get back to mkkpkg
X. If you are using X, you can read log thru another term window
It takes about 10-240 minutes depending on your configuration and also
depending on your machine: It's not freezing!
Ready for Action?
[Push enter to continue] (Enter を押す)
Started: Wed Aug 17 08:46:35 2005
Building...
Finished: Wed Aug 17 19:39:59 2005
[Push enter] (Enter を押す)
Created:
/root/rpm/RPMS/i386/kernel-2.4.27-0vl7.6.1.i386.rpm
/root/rpm/RPMS/i386/kernel-doc-2.4.27-0vl7.6.1.i386.rpm
/root/rpm/RPMS/i386/kernel-headers-2.4.27-0vl7.6.1.i386.rpm
/root/rpm/RPMS/i386/kernel-source-2.4.27-0vl7.6.1.i386.rpm
/root/rpm/SRPMS/kernel-2.4.27-0vl7.6.1.src.rpm
How do you want kernel-mkkpkg.log in /tmp?
m)move to /root r)remove *)leave in /tmp : m
Do you want to clean up BUILD tree and files in SOURCES? [y/n] y
途中で menuconfig が呼び出される。一般的なカーネルの再構築方法である「cd /usr/src/linux; make menuconfig」と同じである。menuconfig 内では,「スペース」または「Enter」で選択,「Esc」で上位メニューに戻ることができる。最初に「i686」のコンフィグレーションを読み込んで,その後に必要な設定を行っていく。目的の speedstep-ich モジュールは,ビルトインの指定になっているようなので,そのまま保存して抜ける。準備ができたらビルドに入る。「Building...」の表示になってから時間がかかる。「止まっているのか?」と思うこともあるが,Ctrl+C などとしてはいけない。top コマンドや ps コマンドで見ると,magicdev, bzip2, cc1, rpmbuild などのプロセスが次々と走る様子が表示される。
結局ほぼ 11 時間近くかかったことになる。カーネル関連のパッケージ doc, headers, source もすべてビルドされる。インストールして lilo.conf の設定後 lilo を走らせて再起動を行った。再起動後の cpuinfo は次の通り。
# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 8
model name : Pentium III (Coppermine)
stepping : 10
cpu MHz : 696.987
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr sse
bogomips : 1389.36
デフォルトのカーネルでは 200 MHz 以下だったのが 700 MHz 程度出るようになった。体感的にもかなり改善された。しかし,最大パフォーマンスが出ていない。そして cpufreqd は正常に動いていない様子(/proc/cpufreq に数値表示なし)。speedstep-ich はビルトインではなく,モジュールとして組み込まなければいけなかったのかも知れない。つまり,「チェックが入っていることを確認」したところで「* から M に変更」という設定になるだろうか。となると,もう一度再構築? ガーン!! 寝ている間にやってもらおうか…。
2005年8月23日追記:
上記では,--rpmarg="--target=i686" オプションが思惑に反して効いていないため,i686 として最適化されていません。i386 用になってしまっています。「mkkpkg --target i686」が正解のようです(理事のひとりごと:mkkpkg によるカーネルの再構築)。
2005年9月23日追記:
Vine Linux 3.2 で動作するようになりました (nlog(n): カーネルの再構築でスピードステップに対応)。
Posted by n at 2005-08-17 23:37 | Edit | Comments (4) | Trackback(0)
余裕で速くなっていることを期待してコメントを送信します。
お疲れ様でした。
高負荷時に最高パフォーマンスを出せるようになることに期待……
Posted by: ち印 at August 20, 2005 02:33ご声援ありがとうございます。頑張ってみたのですが…。「高負荷時に最高パフォーマンスを出せるように」には,至りませんでした。
高負荷でも低負荷でも中程度の 700 MHz で動作しています。最高パフォーマンスの 1 GHz は出せないのです。
パフォーマンス的にはかなり改善されましたので,しばらくはこれで様子を見ようかと思っています。
Posted by: n at August 20, 2005 06:57充分、前回のコメントの登録にかかった時間は速かったです。
これからも閲覧させて頂きます(たまにコメントやトラックバックなどもあるかも)
お疲れ様でした。
Posted by: ち印 at August 21, 2005 18:57別の問題に気づいちゃいました。ぬをー!!!
Posted by: n at August 21, 2005 22:44