Linuxのスワップ処理を最適化するためのヒントLinux Hacks(1/4 ページ)

Linuxシステムにおけるスワップ処理の効率化とスワップ処理サブシステムのパフォーマンス最適化につながるテクニックを紹介する。

» 2007年12月10日 05時20分 公開
[Gary-Sims,Open Tech Press]
SourceForge.JP Magazine

 コンピュータのメモリ容量を超えるサイズのプログラムを実行する必要がある場合、最近のオペレーティングシステム(OS)のほとんどはスワップ処理と呼ばれる手法を用いる。これは、メモリ内データの大部分を一時的にハードディスクに格納しておき、必要なデータだけを物理メモリ空間に持ってくるというものだ。本稿では、Linuxシステムにおけるスワップ処理の効率化とスワップ処理サブシステムのパフォーマンス最適化につながるテクニックを紹介する。

 Linuxは、物理メモリの領域をページという単位に分割して処理する。スワップ処理とは、ハードディスク上にあらかじめ設定した空間(これをスワップ空間と呼ぶ)にページ単位でメモリ上のデータをコピーし、そのページのメモリ領域を解放する処理をいう。物理メモリとスワップ空間を合わせた容量が、仮想メモリとして利用可能になる。

 スワップ処理が必要になる主な理由は2つある。1つは、物理的に使えるメモリ容量以上の領域がシステムで必要になった場合に、あまり使われていないページをメモリからハードディスクに移動(スワップアウト)させ、メモリを直ちに必要とする実行中のアプリケーション(プロセス)にそのメモリ領域を与える、というカーネルでの対処を可能にするためだ。もう1つは、アプリケーションの起動時に初期化のために使用された大量のページがその後まったく使われない場合で、システムはそうしたページをスワップアウトしてメモリを解放し、その領域をほかのアプリケーション、場合によってはディスクキャッシュに割り当てることが可能になる。

 しかし、スワップ処理には1つ弱点がある。メモリに比べ、ディスクの読み書きが非常に遅いことだ。物理メモリのアクセス速度の測定がナノ秒単位で行われるのに対し、ディスクはミリ秒単位なので、ディスクへのアクセスには物理メモリの何万倍もの時間がかかっていることになる。スワップ処理の発生が増えるほど、システムの速度が低下するわけだ。同じページのスワップアウトとスワップイン(ハードディスクに移したデータを再びメモリに戻すこと)が短時間のうちに繰り返されると、過剰なスワップ処理、つまりスラッシングが起こることがある。そうした状況では、システムが空いているメモリ領域を探しつつアプリケーションの実行を続けようとするため、相当な負荷が掛かる。この問題を回避するには、物理メモリを増やすしかない。

 Linuxには、スワップパーティーションとスワップファイルという2つの形態のスワップ空間がある。スワップパーティーションは、スワップ処理のためだけに使用されるハードディスク上の独立したセクションである。よって、それ以外のファイルをそこに置くことはできない。スワップファイルはLinuxファイルシステム上の特別なファイルで、システムファイルおよびデータファイルと同じような形で存在する。

 確保されているスワップ空間を確認するには、「swapon -s」コマンドを使用する。その出力結果は次のようになる。

Filename        Type            Size    Used    Priority

/dev/sda5       partition       859436  0       -1


 このように、システムで使用されているスワップ空間が1行ずつ表示される。前記のTypeフィールドはこのスワップ空間がファイルではなくパーティーションであること、Filenameフィールドはファイルがsda5というディスク上にあることを示している。「Size」にはそのスワップ空間のサイズが、「Used」にはそのうちどれだけ使用されているか(この場合はまったく使用されていない)が、それぞれキロバイト単位で表示される。また、「Priority」はLinuxがスワップ空間を使用するときの優先順位を示す。Linuxのスワップ処理サブシステムが素晴らしいのは、2つ以上のスワップ空間(別々のデバイスに確保するのが望ましい)を同じ優先順位にしてマウントした場合、それらの間でスワップ処理動作を並列実行(インターリーブ)してくれることだ。これにより、スワップ処理のパフォーマンスは大幅に向上する可能性がある。

       1|2|3|4 次のページへ

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ