Linuxのスワップ処理を最適化するためのヒント:Linux Hacks(4/4 ページ)
Linuxシステムにおけるスワップ処理の効率化とスワップ処理サブシステムのパフォーマンス最適化につながるテクニックを紹介する。
スワップはどれくらいにすべきか
Linuxシステムはスワップ空間がなくても動作し、十分なメモリがあれば問題は起こらない。しかし、物理メモリを使い果たしてしまうと何もできなくなってクラッシュしてしまう。よって、スワップ空間は用意しておくことが望ましい。なんといっても、ディスク領域はメモリよりも安価だ。
ここで問題になるのが、そのサイズである。以前のUNIX系OS(Sun OSやUltrix)では、物理メモリの2〜3倍のスワップ領域が必要だった。最近実装されたもの(Linuxなど)ではそこまでスワップを必要としないが、それくらいのサイズに設定することは可能だ。だいたいの目安は次のようになる。
- 一般的なデスクトップマシンの場合はシステムメモリの2倍に当たるスワップ領域を確保する。これで多数のアプリケーションを実行しても(その多くはアイドル状態にあって容易にスワップ処理が行えるので)アクティブなアプリケーションでより多くのメモリが使えるようになる。
- サーバの場合は利用可能なスワップの容量を少なめに取る(例えば物理メモリの半分)。これは、いざとなったらスワップを柔軟にコントロールするためで、スワップ使用量を監視して必要であればメモリの増強を行う。
- 旧式のデスクトップマシン(メモリが128Mバイトしかないものなど)では1Gバイトまでの範囲で確保できるだけのスワップ領域を設定する。
Linuxカーネル2.6ではswappinessという新たなカーネルパラメータが追加され、管理者によるLinuxのスワップ処理の調整が可能になっている。このパラメータには0〜100の値を設定するが要するに値が大きいほどページのスワップ処理が増え、値が小さいほど多くのメモリ領域がアプリケーションによって(たとえアイドル状態であっても)確保されるということだ。カーネルメンテナのアンドリュー・モートン氏は、swappinessを100にして自らのデスクトップマシンを動作させた上でこう述べている。「肝心なのは、カーネルによるスワップ処理を減らすのはよくないという点だ。負荷の大きなアプリによって何百Mバイトものメモリが確保されたまま、マシン上で有効に活用されない状態は何としても避けたいと思うだろう。そんな領域はディスク上に追い出し、空いたメモリを有効に使うべきだ」
だが、モートン氏の考え方には、メモリ領域のスワップアウトが早すぎるとアプリケーションの応答が悪くなるというマイナス面もある。これは、(それまで使っていた)アプリケーションの画面をクリックしてもそのアプリケーションのデータが(すでにスワップアウトされて)メモリ内になければ、システムはそのデータを再びメモリに呼び戻さなければならず、その時間分の遅延が生じるからだ。
swappinessのデフォルト値は60だが、rootとして次のコマンドを実行することで、この設定を一時的に(次回リブートまで)変えることができる。
echo 50 > /proc/sys/vm/swappiness
また、変更を持続させるには「/etc/sysctl.conf」ファイル内のvm.swappinessパラメータを変更する必要がある。
まとめ
スワップ空間の管理は、システム管理において欠かせない部分だ。十分に検討してうまく利用すれば、スワップ処理によって多くのメリットが得られる。とにかく、怖がらずにスワップを設定してシステムのパフォーマンスを計測し、望みどおりの結果が得られるかどうかを確認してみることだ。
Gary Simsは英国の大学でビジネス情報システムの学位を取得。10年におよぶソフトウェアエンジニアとしての活動を経て、現在はフリーランスのLinuxコンサルタント兼ライター。
関連記事
- Linuxのパフォーマンスを改善する3つのTips
同じコンピュータでも、Linuxを走らせたときの方がWindows XPやVistaを走らせたときよりも性能は高くなる。しかしLinuxシステムはさらに高速化することも可能だ。本稿では、Linuxシステムの性能を向上させるための、3つの異なるレベルで行う最適化の方法を紹介する。 - fuserを使った競合リソースの特定と解放
fuserというコマンドを使えば、特定のファイルやソケットを現在どのプロセスが使用中であるかも確認できる。これで「デバイスは使用中です」という意味不明なメッセージとはおさらばだ。 - コマンドラインとGUIを融合するHotwire
Hotwireの登場により、テキストベースのシェルと近代的なGUIは互いに交わることのない2つの別世界ではなくなった。Hotwireを試してみると、その便利さには驚かされることだろう。 - LVMで楽々ディスク管理
かつてディスク空間の管理は手間も時間もかかり、管理者にとってもユーザーにとってもいらだたしいものだった。しかしLVMを使用すれば、ほとんど苦労することなくディスク空間を増やしたり、減らしたり、管理したりできる。
Copyright © 2010 OSDN Corporation, All Rights Reserved.