スワップ(swap)領域の設定

稼働中のLinuxサーバでサーバの監視を始めて気づいた事があります。それは、スワップ(swap)領域を1Gバイトも確保しているのに6Mバイト程度しか使用していない事です。ディスクがもったいないし、MRTGの空きメモリ容量のグラフが見にくいのでスワップ(swap)領域の容量を調節することにしました。

まず、適正なスワップ領域の容量は、どれくらいかを調べたところ、次のような内容がありました。

  1. サーバの場合は、利用可能なスワップの容量を少なめに取る。これは、スワップを柔軟にコントロールするためで、スワップ使用量を監視して必要であればメモリの増強を行う。
  2. デスクトップマシンの場合は、システムメモリの2倍に当たるスワップ領域を確保する。これで多数のアプリケーションを実行しても、その多くはアイドル状態にあって容易にスワップ処理が行えるのでアクティブなアプリケーションでより多くのメモリが使えるようになる。
  3. メモリが128Mバイトしかないデスクトップマシンでは1Gバイトまでの範囲で確保できるだけのスワップ領域を設定する。

この内容に従って、少なめのスワップ領域を設定することにしました。また、容量を柔軟に変更できるよう、パーティションとして設定するのではなく、ファイルとして設定することにしました。

スワップファイルの作成

作成するスワップファイルを「/swap/swap0」とします。

まず、ディレクトを作成します。

kurobox:/# mkdir swap
kurobox:/# ls
bin  boot  dev  etc  home  lib  lost+found  mnt  proc  root  sbin  swap  sys  tmp  usr  var

次に、ファイルを作成します。今回は、128Mバイトのファイルを作ります。

kurobox:/# dd if=/dev/zero of=/swap/swap0 bs=1024 count=131072
読み込んだブロック数は 131072+0
書き込んだブロック数は 131072+0
134217728 bytes transferred in 15.014539 seconds (8939184 bytes/sec)
kurobox:/# ls -l /swap/swap0
-rw-r--r--  1 root root 134217728 2008-02-07 11:35 /swap/swap0

次に、スワップファイルをフォーマットします。

kurobox:/# mkswap /swap/swap0
Setting up swapspace version 1, size = 134213 kB
no label, UUID=23342b64-fb17-41bb-b7f6-ff98b604e09b

次に、今回作成したスワップファイルの有効化を行い、有効化されたかを確認します。

kurobox:/# swapon /swap/swap0
kurobox:/# cat /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/hda2                               partition       1028152 0       -1
/swap/swap0                             file            131064  0       -2

次に、今まで使用していたパーティションを使ったスワップ領域を開放します。

kuroboxfo:/# swapoff /dev/hda2
kuroboxfo:/# cat /proc/swaps
/swap/swap0                             file            131064  0       -2

最後に、「/etc/fstab」を編集します。

/dev/hda1       /             ext3   defaults,noatime,errors=remount-ro 0      0
proc            /proc         proc   defaults                           0      0
none            /dev/pts      devpts gid=5,mode=20                      0      0
#/dev/hda2       swap          swap   defaults                           0      0
/swap/swap0     swap          swap   defaults                           0      0
/dev/hda3       /mnt          ext3   defaults,noatime                   0      0
スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする