SSブログ

Linuxのswap領域を追加する方法 [Linux(CentOS/VineLinux)]

 メモリがありえないくらい激安で買えるようになったこのご時世に、「何を今更swap…」という声が聞こえてきそうな気がする今日この頃、皆様いかがお過ごしでしょうか。

 そもそもswapなんて使わないようにするのがサーバ管理・パフォーマンス管理の基本にして鉄則!という向きもあるけども、時と場合によってはswapをどうしても必要とするケースだとか、あるいはswapを使ってもあまり意に介さないケースとかあるわけで。
 例えば、「たまーに動かすバッチ処理が一時的に超広大なメモリを使用するかも」とか、「開発・デバッグ環境だからパフォーマンスの善し悪しはひとまずキニシナイ!」というケースなど。
 また、古いPCにLinuxをインストールしている場合等は、そもそもメモリがあまり搭載できないケースということもありうる。そのような場合は(渋々でも)swapのお世話にならざるを得ないのだが、最初にLinuxをセットアップした際にswapの領域を作らなかったり、またはswapの領域が小さすぎてしまった場合等、後からswap領域を広げたり追加したりしたくなることも無いわけではない。

 というわけで、swapの領域を追加する方法を解説する。

 まず、現状のswap領域について確認してみる。/proc/swapsを見れば一目瞭然。

[root@test-server1 ~]# cat /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/sda2                               partition       2096472 2091628 -1

 /dev/sda2に、およそ2GBのswap領域が作成されている。で、この2GBの領域をもうじき使い切りそうな勢いである。

 swapを追加する方法としては、上記のように、ディスクにswap用のパーティションを作成する方法と、通常のファイルシステムの上にswap用のファイルを作成し、それをあたかもswap専用の領域として使わせる方法とがある。(アレなOSの「pagefile.sys」みたいな感じ)
 ディスクにパーティションとして未使用の領域があるならいざ知らず、おそらく大多数の場合はディスクはめいっぱいパーティションを切って使用しているはずだろうから、後者の方法を使って急場しのぎをするのが手軽で良いだろう。

 それでは、swap用のファイルを作成し、それをswap領域として追加する手順を以下に記述する。

①swap用のファイルを作成する
②作成したswap用ファイルの属性を変更する
③swap用のファイルをswapとして登録する
④(必要に応じて)fstabにその領域をswapとしてマウントするように記述する

 ※④を実施しないと、リブートした時にはその領域をswapとして使用しなくなってしまう。


①swap用のファイルを作成する

 まずは、swap用のファイルを作成する。ここで作成したファイルの大きさがそのまま「追加されるswap領域の大きさ」になる。よって、2GBのswap領域を追加したい場合は、「2GBの大きさのファイル」を作成することとなる。
 ddコマンドを使うのが簡単だろう。

 dd if=/dev/zero of=swap用ファイルのパス名 bs=単位 count=サイズ

 例えば、256MBのswap領域を追加したいなら、単位には「1M」を、サイズには「256」と書けばいいし、4GBくらいばばーんと追加したいなら、単位には「1G」を、サイズには「4」と書けばいいだろう。(もちろん、1Mの4096と書いてもいいけど)
 そして、swap用ファイルのパス名にはこれから作成するswap用ファイルを指定する。いかにもswap用のファイルだと判るような名前にしておくのがよろしかろう

 ここでは、/swap.extended というファイルで2GBの領域を追加したいと思うので、以下のようにしてファイルを作成した。

 dd if=/dev/zero of=/swap.extended bs=1M count=2048
[root@test-server1 ~]# ls -l /
total 2099374
  (途中省略)
-rw-r--r--    1 root  root  2147483648 Mar  5 11:43 swap.extended
drwxr-xr-x    9 root  root           0 Feb 18 03:02 sys
drwxrwxrwt    7 root  root       12288 Mar  5 13:40 tmp
drwxr-xr-x   15 root  root        4096 Sep 14  2006 usr
drwxr-xr-x   21 root  root        4096 Jun  5  2008 var

 こんな感じでswapファイルが作成された。


②作成したswap用ファイルの属性を変更する

 続いて、今作成したファイルをswap用ファイルとして属性を変更する。用いるコマンドはmkswapである。

 mkswap swap用ファイルのパス名

 なお、パス名に続けてswapとして使用する領域の大きさを変更することが出来るが、まずほとんどのケースでは指定する必要はない。「2GBのswap用ファイルを作成したものの、このうち1GBしか使いたくない」とかそんなかなりレアっぽい場合に限り、これを指定することになろう。
 そんな訳で、今回はswap用ファイルの全ての領域をそのままswapとして使用したいので、指定を省略して構わない。今回の例では、以下のようにコマンドを投入することになろう。

 mkswap /swap.extended


③swap用のファイルをswapとして登録する
 いよいよswap領域としてOSに使用させる。ここで用いるコマンドはswaponコマンドである。

 swapon swap用ファイルのパス名

 ということになるので、今回の例では

 swapon /swap.extended

 でOK。

 swapが追加されたかどうか確認してみる。
[root@test-server1 ~]# cat /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/sda2                               partition       2096472 2074848 -1
/swap.extended                          file            2097144 470944  -2

 元々の2GBのswap領域に加え、新しく2GBのswap領域が追加されているのが判る。(そしてさっそく使われている件について…)


④(必要に応じて)fstabにその領域をswapとしてマウントするように記述する

 で、最後に/etc/fstabに今追加したswap領域を自動的にマウントするように追加してやる必要がある。
[root@test-server1 ~]# cat /etc/fstab
# This file is edited by fstab-sync - see 'man fstab-sync' for details
  (途中省略)
/dev/sda2               swap                    swap    defaults        0 0
/swap.extended          swap                    swap    defaults        0 0

 これで、サーバをリブートしても今追加したswap領域が自動的にマウントされるようになる。
nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 1

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。