UbuntuでSwap領域を設定する

AWSのmicroインスタンスがせこい。インスタンスの再起動をかけるとApacheとMySQLだけで起動に使用するメモリがギリギリ足りない。
http://www.kamiobox.com/2070
とにかくミドルの起動に利用するメモリが全然足りてない。これは課金するためのトラップじゃないかと思われるほど賢い設定なのではないかということで、ApaheとMySQLの起動メモリをできるだけ控えるのとSwapの設定でなんとか回避ということになります。
http://oh-sky.hatenablog.com/entry/2013/05/18/104416

Swapの設定をする

microのデフォルトの設定はSwapの設定がなんと0である。
# free
total used free shared buffers cached
Mem: 1016256 541352 474904 15648 46632 323244
-/+ buffers/cache: 171476 844780
Swap: 0 0 0

Swapの設定コマンドは以下の通り。
# dd if=/dev/zero of=/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 17.8298 s, 60.2 MB/s

# mkswap /swapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=a6c26567-86ca-4e9f-b281-af4d3a336698

# swapon /swapfile
もう一度freeで確認するとSwap領域ができている筈です。
...
Swap: 1048572 0 1048572

再起動時に自動マウントされるように/etc/fstabに設定
# vi /etc/fstab
(下記を追加)
/swapfile swap swap defaults 0 0

このコマンドをたたくと時々busyだとかいわれるときがあるのですが、再起動して削除してしまうことはできます。

ApacheとMySQLの設定をして消費メモリを抑える

Apacheのconfをいじる。
# vi /etc/apache2/apache2.conf
1番下に加えればいいと思う。
# memory limited
StartServers 3
MinSpareServers 3
MaxSpareServers 6
ServerLimit 140
MaxClients 140
MaxRequestsPerChild 1000

再起動する
# service apache2 restart

MySQLの接続数も制限してしまうというところです。
# vi /etc/mysql/my.cnf
これも設定ファイルの1番下の方に加えればいいと思います。
max_connections=5
再起動
# /etc/init.d/mysql restart

たぶんこれでrebootしても大丈夫です。