SWAP拡張

某社のサーバー管理者からの電話です。
他の人よりパソコン(Windows系)に詳しいという理由で
サーバー管理を押し付けられたかわいそうな方で、
何かあると頻繁に電話が来ます。(笑
今回はバグがログに吐かれているのに気づいたそうで
検索をするとswapが実メモリの2倍程度ないと、
バグる時があるという記述をネット上で見つけたようです。
で、swapを拡張できないかというご質問でありました。

かなり前に組んだサーバーで構成も思い出せないので
コマンドで調べてもらいそのままメールにコピペして
送ってもらいました。

まずはこれ。

$ free -m
total used free shared buff/cache available
Mem: 7567 1855 164 74 5548 5317
Swap: 8192 130 8062

次にこれ。

S swapon -s
Filename Type Size Used Priority
/dev/***** partition 8388604 142632 -2

実メモリ4GBX2=8GBに対してswapも同程度です。
昔は実メモリが潤沢ではなく、頻繁にswapが発生しましたが
稼働状況から見て8GBの実メモリがあればswapはほとんど
発生することはないと思われ、freeコマンドの結果で
usedが僅かであることがわかります。
きっとswapが16GBでないのがバグの原因ではなかろうと
思いますが、少ないのは問題でも多すぎることに問題は
ないので、サーバーを稼働させたまま拡張できる方法を
お教えしておきました。

ストレージに空き容量があればそれを使いますが、
ない場合は余裕のあるパーティションから領域をぶんどって
swapの拡張領域に使います。
ここでは一番余裕のある/homeに作成しました。

$ sudo dd if=/dev/zero of=/home/swpfile bs=1M count=8192
[sudo] user のパスワード:
8192+0 レコード入力
8192+0 レコード出力
8589934592 バイト (4.3 GB) コピーされました、
55.1654 秒、 77.9 MB/秒

 解説
  /homeにswapfaileを作成して1MBのzeroで8192回
  (つまり8192MB分)コピーして0で全ての領域を
  埋め尽くすというコマンド。
    

$ sudo chmod 600 /home/swpfile

  解説
   セキュリティ的に644ではなく600にしておきます。

作成したファイルをswapに変身させます。

$ sudo mkswap /home/swpfile
スワップ空間バージョン1を設定します、
サイズ = 8388608 KiB ラベルはありません,
UUID=ff01d678-6410-40e5-8384-75ceb7de****

  解説
   一時的にマウントされますが、再起動時などに
   自動マウントサせるためにはUUIDが必要となります。

swapを使えるようにします。 

# swapon /home/swpfile

拡張されたか調べます。

$ free -m
total used free shared buff/cache available
Mem: 7567 1855 164 74 5548 5317
Swap: 16383 147 16236

合わせ技で16GBになっています。

$ swapon -s
Filename Type Size Used Priority
/dev/md127 partition 8388604 142632 -1
/home/swpfile file 8388604 0 -2

で、(再)起動時に自動マウントするように仕込みます。

# gedit /etc/fstab

以下を追記

UUID=ff01d678-6410-40e5-8384-75ceb7de**** swap swap defaults 0 0

一応再起動して自動的にマウントされているか
確かめたほうがヨサゲですね。

ちなみに一時的に増やすならHDDより早いUSBメモリなどで
swapを作成してやると快適ですよ。

HOME

おすすめ