メモリー管理
スワップの利用状況に注目する


[画像のクリックで拡大表示]

 メモリー関連の情報は,UNIX系OS一般で用意されているvmstatコマンド(図5[拡大表示])や,前述のtopコマンド,freeコマンドにより得られる。とりわけ,Linuxが主メモリーの拡張領域として使用するハード・ディスク内のスワップ領域の利用状況に注意を払おう。図5の例では,si(スワップ・イン=スワップ領域から主メモリーに読み込まれたデータ容量)とso(スワップ・アウト=主メモリーからスワップ領域に退避したデータ容量)の数値に着目する。この数値が高いようなら主メモリーを増強することが望ましい。頻繁にスワップが起きている状況では,ハード・ディスクにデータを転送するスワップ処理にCPUの処理能力が食われてシステム全体の処理能力が低下してしまうためだ。もちろん,topコマンドなどを使って,不必要なプロセスが主メモリーを浪費していないかもチェックしておく。

 ただし,Linuxでは,実際の空きメモリーがあるときでも,一時的なバッファとキャッシュの増大により,使用されていないデータがスワップ・アウトされることがある。また,一度スワップ・アウトされたデータは必要になるまでスワップ・インされないで残る。そのため,スワップ使用率が完全に0%にならなくても気にする必要はない。

メモリー増設が必要な場合

 vmstatでは,空いている主メモリーの容量は,freeという項目にKバイト単位で表示される。この数値は,PCに搭載している主メモリー容量に比べて大幅に少なく表示されるため,主メモリーが足りないのではないかと感じることだろう。

 例えば,図5に示した例では,128Mバイトの主メモリーを搭載しているPC上で,わずか6Mバイトしか主メモリーが空いていない。ただしLinuxでは,空きメモリーをバッファ(I/Oバッファ・キャッシュ=ハード・ディスクへのデータの書き込みで使用)とキャッシュ(ページ・キャッシュ=ハード・ディスクからのデータの読み込みで使用)として動的に割り当てて使用している*1。freeで表示される値は,このバッファとキャッシュに割り当てた領域を除いたものであり,実際にはfreeで表示されるよりはるかに大きな容量の空きメモリーが確保できている。vmstatの表示では,freeとbuff(バッファ)とcache(キャッシュ)の値を合計したものが,実際の空きメモリーの容量とみなせる。一般的に,この合計値が常時,PCの主メモリー容量の20%以下なら,主メモリーを増設した方が良い。


procファイル・システム



[画像のクリックで拡大表示]

 システムの状況を表示・制御するために設けられたファイル群をprocファイル・システムと呼ぶ。/procディレクトリ以下に存在し(図A-1[拡大表示]),テキスト・ファイルの内容を表示するcatコマンドやmoreコマンドを使って読み出せる。ただし,実際にはハード・ディスク内にファイルとして存在せず,コマンド発行時にLinuxカーネルが要求された情報を作成し,表示する。疑似ファイルとして用意されている内容には,CPUの情報(ファイル名はcpuinfo)や主メモリーの情報(同meminfo),マウントしているパーティションの情報(同mounts)などがある。また,/proc内に番号で表示されている疑似ディレクトリからは,その番号のプロセスIDを持つプロセスの情報を取得できる。