エンジニア的な技術的なブログ

webエンジニアの開発の知見を書きます。PHP、javascript、postgres、mysql、あと多少のインフラ周りとか。

linuxにswapファイル作成方法と、swaponの自動起動を安全にやる方法

最近、フュージョンクラウドを使い始めたんだけど
一番低スペックなmicroだとなんとswap領域がありません!

ちなみにメモリは〜500MB(〜ってなに?と思う)


これはなんだ?もっと高スペックを使えというフュージョン側のしわざだな


スペックなんてあげない。俺は低価格のままでいくの。

centOS 6.7


swapファイル作成

まずはswap領域にswapファイルを使いましょう。

qiita.com


作り方は、他のサイトに頼っちゃう。
これでOKってことにはなりません。

サーバ起動時に自動でswaponする方法

これだとサーバ起動時に手動で

# swapon /swapfile



をしないといけません。



サーバ起動と同時にswaponするためには、本来ならfdiskに書き込む必要があります。



しかしfdiskは記述を失敗するとサーバが2度と立ち上がらなくなる恐怖のやつ。



だから、今回はfdiskを使わずして設定する方法です。



今回の見えている事として、mysqlを立ち上げる前にswaponができれば問題ない事までは判明していました。



だから、mysqlの自動起動をoffにして

chkconfig mysqld off



起動時の自動スクリプトから起動させる。

vi /etc/rc.d/rc.local



 swapon /swapfile

 /etc/init.d/mysqld start





これでOK。

fdiskをやる必要なく設定できました。



/etc/init.d/mysqldのstart直前に書けばいいじゃん!とか思っている人あまいですぜ
どうやらchkconfigの自動起動のときにはmysqldを叩いてないから(たぶんmysqld_safeを直接実行してる?)これだとダメ。

まぁもしかしたら/usr/bin/mysqld_safeに書けばいいのかもしれないけどね。
自動起動が何をしているのか分かんないし、調べるのは時間かかるからrc.localに書いた方が早いじゃんと思った感じです。

このへん、詳しい方でしたらコメントとかで教えてもらえるとめちゃ嬉しいですー