SWAP領域を増やす

First Edition 2001.7.11
Last Updated 2002.1.20

私は今までスワップ領域をパーティーションで区切られた固定領域を使っていました。とこ ろが、画像処理、メモリを多く必要とするプログラムの実行などをやっていると、スワップ 領域が足りなくなり、オペレーション動作が遅くなる現象がでてきました。
そこで、スワップ領域の大きさをすぐに増減できる方法があることを思い出し、試してみました。
  1. スワップ領域確保の種類(対象Ver:全て)(2001.7.11)
  2. スワップファイルをスワップ領域として使う(対象Ver:全て)(2001.7.11)
  3. スワップ領域を解放する(対象Ver:全て)(2002.1.20)

スワップ領域確保の種類

スワップ領域を確保する方法として2つあります。
  1. パーティーションを使う
  2. スワップファイルを使う
1. スワップ専用のパーティーションを作成し、起動時にマウントします。Linuxをインスト ールする途中で設定したと思います。これだと、スワップ容量を簡単に増やすことはできません。
毎回起動時に/etc/fstabファイルが参照され、マウントされます。

2. スワップファイルを作り、それを必要なときにスワップ領域として設定すれば、8つまで スワップ領域を増やすことができます。スワップ領域の大きさは、CPUに依存していますが、 i386系ならば2GBまで使用することができます。起動後に領域を増減させることができます。

スワップファイルをスワップ領域として使う

スワップ領域はパーティーションである必要はなく、ファイルとして作成したものをスワップ 領域として使用することができます。手順は3つのステップに分かれます。
  1. スワップファイルを作成する
  2. スワップファイルをスワップ領域として変換する
  3. スワップファイルをスワップ領域として登録する
1. ルートになってスワップファイルを作成します。ファイルは自分の好きなところに(/など)に置きましょう。
# dd if=/dev/zero of=swapfile bs=1024 count=180000
これで、swapfileというファイル名で約180MBのファイルができあがりました。ファイルの容量は最後のcountの 値で決まります。

2. 作成したスワップファイルをスワップ領域として使用できる用に変換をかけます。
# mkswap -v1 swapfile
3. スワップ領域として使用するには以下のようにします。

# swapon swapfile

freeコマンドでメモリの使用容量がでます。追加したスワップファイルの大きさがスワップ領域に足されていることを 確認してみてください。
# free
              合計     使用済   空き領域   共有領域    バッファ キャッシュ
Mem:        127412     124572       2840      44744       2620      22492
-/+ バッファ:           99460      27952
Swap:       179992       1440     178552
スワップ領域は全部で8つ持つことができます。

コンピュータ起動時に毎回手動で行うのが面倒くさければ 、/etc/rc.d/rc.localファイルの最後に以下のように追加するのもよいでしょう。すでにスワップファイル を作成済みであれば、毎回1,2の手順を行う必要はありません。3だけ実行すればよいです。コマンドは フルパスで指定します。

/etc/rc.d/rc.local
・・・・・・
・・・・・・
/sbin/swapon /swapfile

スワップ領域を解放する

スワップ領域は以下のようにして開放(削除)することができます。
# swapoff swapfile
freeコマンドで、スワップ領域が開放されたかどうかを確認してみましょう。
# free
              合計     使用済   空き領域   共有領域    バッファ キャッシュ
Mem:        127412     124572       2840      44744       2620      22492
-/+ バッファ:           99460      27952
Swap:            0          0          0
スワップ領域が0になっていることが確認できます。


[HOME]
since 2001.4.22