Windows Azureに東京と関西のリージョンが出来たので、ようやく日本でもまともに使えるようになったところである。以前に一時期使っていたこともあるのだが、国内リージョンだとやはりコンソールの反応が違う。
Windows AzureでもLinux仮想マシンを使ったりするのだが、1つ問題があって、デフォルトでスワップ領域が設定されておらず、たとえば最小セットのA0、768MBメモリでメモリ食いのプロセスが動くと簡単に落ちてくれる。ある程度定常化した用途ならあまり気にしなくても良いかもしれないが、Windows AzureでLinuxを使う際には最初にスワップ領域の確保はしておいたほうがいい。
freeコマンドでメモリの状態を確認すると以下のようになっている。
# free total used free shared buffers cached Mem: 686472 161780 524692 1932 9988 69848 -/+ buffers/cache: 81944 604528 Swap: 0 0 0
ディスクデバイスは?というと、以下のように2つのパーティションが用意されている。
# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 30202916 1052776 27884108 4% / none 4 0 4 0% /sys/fs/cgroup udev 329812 8 329804 1% /dev tmpfs 68648 380 68268 1% /run none 5120 0 5120 0% /run/lock none 343236 0 343236 0% /run/shm none 102400 0 102400 0% /run/user /dev/sdb1 20509308 45000 19399452 1% /mnt
少しドキュメントを探してみると、過去のサポートブログで追加ディスクの上に作れという話になっていた。/mntにマウントしたデバイスに作るのはちょっと微妙な気もするが(何かのときにumount /mntを実行してしまいそう)、そいうことなら仕方がない。/dev/sdb1のところに4Gのファイルを置き、スワップとして設定する手動でスワップを作る手順は以下のとおり。
$ sudo su -
# fallocate -l 4g /mnt/swap # chmod 600 /mnt/swap # mkswap /mnt/swap # swapon /mnt/swap # free total used free shared buffers cached Mem: 686472 163136 523336 1932 10040 69972 -/+ buffers/cache: 83124 603348 Swap: 4194300 0 4194300 # exit
これでスワップは設定できた。
ちなみに、Windows AzureでなぜわざわざLinuxを?については、最安値とはいえないものの、国内の下手な事業者業者よりは安く運用できたりする。VPS単独は非常に安いサービスもあるが、クラウド系ではWindows Azureは安かったりする。