ハードウエアを変更せずにシステムの処理性能を向上させる極意は,プロセッサや主メモリー,外部記憶装置などのシステム・リソースを無駄なく効率的に利用することにある。具体的には,不要なプログラムの実行を避け,アクセス速度の遅い外部記憶装置への入出力を可能な限り減らすといった対策が考えられる。

総論

 システムの処理性能を向上させる最も簡単かつ確実な方法は,PCを買い替えたり,新しいハード部品を導入することである。ただし,当然のことながら,新しいハードウエアの導入や不要になったハードウエアの廃棄には,コストがかかる。そう頻繁にPCやハード部品を購入するわけにはいかないのが現実だ。

 そこで,PCの動作速度に不満を感じ始めたら,システム・チューニングを試してみてはいかがだろうか。システムの用途によっては,Linuxの設定を変更するだけで動作速度が大幅に向上する。

無駄を省いて資源を有効活用

 システムのパフォーマンス・チューニングと言うと,特殊な設定による「裏技」的な高速化手法が想像されがちである。後述するように,確かにそのような高速化手法はLinuxにも存在する。

 しかしパフォーマンス・チューニングの本質は,「限られたシステム資源を無駄なく効率的に利用する」点にある。さまざまな高速化手法を施す前に,不要なプログラムが動作していないかを確認してみよう。

 Linuxディストリビューションでは,インストールしたままでは多数のプログラムが起動する設定になっていることが多い。それらの中にはあまり使われないプログラムが含まれている。

 例えば,複数のかな漢字変換システムが起動していたり,X Window Systemを利用しているのにもかかわらずコンソール画面でのマウス入力を管理するソフト(gpm)が起動していたりする。さらに標準設定では,5つもの仮想コンソールがある(図1)。こうした無駄なプログラムが起動していると,それだけでシステム全体のパフォーマンスを低下させることになる*1

図1●psコマンドで稼働中のプログラムを確認できる
図1●psコマンドで稼働中のプログラムを確認できる
ps auxなどと入力すると,現在稼働中のプロセスが確認できる。図の環境では,Wnn(jserver)とCanna(cannaserver)の2種類のかな漢字変換システムが稼働しているなど,不要なプログラムが存在する。プロセッサや主メモリーを効果的に利用するために,不要なプロセスは稼働させないようにする。
[画像のクリックで拡大表示]

 無駄なプログラムによる主メモリーの消費も問題だ。主メモリーが不足するとハード・ディスクのスワップ領域が使用される。主メモリーに比べてハード・ディスクの入出力はけた違いに遅いため,スワップ領域が使用され始めるとシステムの処理性能は大幅に低下する*2

 不要なプログラムが起動しないようにするには,起動スクリプトを変更する。Red Hat Linux系のディストリビューションでは,/etc/init.dディレクトリ以下にある起動スクリプトをchkconfigコマンドで無効にする。例えば,上記のプログラムを起動しないようにするには,以下のようにする。


# chkconfig --del canna
# chkconfig --del wnn
# chkconfig --del gpm

 また,起動する仮想コンソールの数を減らすには,/etc/inittabファイルを編集すれば良い。1つしか仮想コンソールを起動しない場合は,/etc/inittab中のtty3~tty6の設定がなされている行を削除するか,コメント・アウトする。