Linux Tips

メモリがスワップされているかどうかを調べるには

北浦訓行
2002/9/26

 Linuxでは、仮想記憶によってメモリ空間を広げることによって、PCに搭載された物理メモリよりも大きなプログラムを実行可能にしたり、マルチタスクを実現している。そして、仮想記憶のために使用されるのがスワップパーティションだ。

 メモリがスワップされるとハードディスクへのアクセスが発生することになるが、メモリアクセスに比較するとハードディスクへのアクセスはかなり遅い。そのため、メモリのスワップが発生するとLinuxやアプリケーションの動作が遅くなったように感じる。

 従って、快適にLinuxを使用するには普段使用するプログラムを起動した状態で、スワップが発生しないだけのメモリを搭載すればいいことになる。最近は、一昔前に比べてPC用のRAMモジュールも安くなっているので、スワップされていることが分かったらメモリの増設を検討するといいだろう。

 メモリがスワップされているかどうかを調べるには、freeコマンドを使うといい。以下は、RAMを512Mbytes搭載したPCでfreeコマンドを実行した例だ。

$ free
              合計   使用済  空き領域  共有領域  バッファ キャッシュ
Mem:        255524   235908     19616       0    17940      86548
-/+ バッファ:        131420    124104
Swap:       265032      808    264224 ←808Kbytesのスワップが発生

 また、vmstatコマンドを使用すれば、スワップイン(スワップアウトされたデータを物理メモリに読み込む)およびスワップアウト(物理メモリのデータをハードディスクに書き出す)の回数を調べることができる。

$ vmstat
   procs                   memory    swap      io   system         cpu
 r  b  w  swpd  free  buff  cache  si  so  bi  bo  in   cs  us  sy  id
 1  0  0 22016 36076  2140  80676   9  21  96  63 156  583  35   2  63

 上の例では、swpdが22016に、siが9に、soが21になっている。swpdは仮想メモリの使用量を示す。swpdが22016とは、21.5Mbytesのスワップ領域が使用されているということだ。

 また、siは1秒当たりのスワップインのメモリ量(Kbytes)で、soは同じくスワップアウトのメモリ量(Kbytes)になる。従って、上記の例では1秒間に9Kbytesのスワップインと21Kbytesのスワップアウトが発生していることが分かる。このような状態が日常的に発生しているなら、このシステムにはメモリを増設した方がいい。

 ここでは、メモリを大量に使用するプログラムを実行して上記のような状況を作り出したが、256Mbytesのメモリが搭載されたPCでX Window Systemを動かして、OpenOffice.orgを動かしたくらいでは、スワップはほとんど発生しない。メールを受信したり、Webをブラウズする程度の目的であれば、256Mbytesのメモリを搭載したPCで十分といえるだろう。

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間