
以前も書いた通り、このサーバの環境はServersMan@VPSというサービスを使用しています。簡単に言ってしまうと、OpenVZ|Virtuozzoという仮想化環境であり、ハード的には共有カーネル方式でメモリ空間、CPUを複数のユーザでシェアしている仕組みというものなんですね。
そして今回、想像するに何が起きたかというと…。
要は何時の間にかhttpdが勝手に殺されていた訳です。システム的には勝手にkill processされちゃった訳です。ちなみに、自分の所の状況では、メモリの使用率として100/250MBほどに抑制し、一時的に処理をかけても150/250MBほどで収まる様に何とか節約している状況です。これでも、システム全体として使われるメモリ量が設備的な最大値を超えると…。そうです、落して影響の少なそうなところからkillされちゃう訳です。それも勝手に。
まぁ一時的に落すなら落すで、その後に自動起動でもしてくれれば大して問題ではないのですが、ルート権限を渡された完全なサーバの自己管理型サービスのため復旧まではしてくれないんですね。ということは自分でチャッチャとhttpdをstartさせない限り止まったまま…。
モノがVPSである以上仕方がありません。となると、できることは一つ。そう、プロセスを監視して落ちてたら起動させる仕組みを仕込んでおくこと。ということで用意したのが下のシェルスクリプト。
これをある場所に置いて10分ごとにcronで走らせます。上手く機能すれば、最大10分以内には復帰してくれるハズ。ホントはこれ以外にも動いて無いと困るモノもありそうですが、先ずは最低限のものだけということで。
とにかく何でも自分の好きな様に使える環境というのは有り難いのですが、その分お守りも全て自分でやらなければならないのが辛いところ。その分コストも安いのですが、やはり固定IPが振られている安心感というのも捨てがたいもので。自宅でサーバを立てていることと比較してもドッコイ的な感じじゃないかと思う訳です。
まぁ一時的に落すなら落すで、その後に自動起動でもしてくれれば大して問題ではないのですが、ルート権限を渡された完全なサーバの自己管理型サービスのため復旧まではしてくれないんですね。ということは自分でチャッチャとhttpdをstartさせない限り止まったまま…。
モノがVPSである以上仕方がありません。となると、できることは一つ。そう、プロセスを監視して落ちてたら起動させる仕組みを仕込んでおくこと。ということで用意したのが下のシェルスクリプト。
#!/bin/sh
message=""
#httpd
httpd=`ps ax | grep ‘^.* /usr/sbin/httpd -k start$’`
if [ -z "${httpd}" ]; then
/etc/rc.d/init.d/httpd start
message="${message}httpd"
fi
#mysqld
mysqld=`ps ax | grep ‘^.* /usr/libexec/mysqld -k start$’`
if [ -z "${mysqld}" ]; then
/etc/rc.d/init.d/mysqld start
message="${message}mysqld"
fi
exit 0
これをある場所に置いて10分ごとにcronで走らせます。上手く機能すれば、最大10分以内には復帰してくれるハズ。ホントはこれ以外にも動いて無いと困るモノもありそうですが、先ずは最低限のものだけということで。
とにかく何でも自分の好きな様に使える環境というのは有り難いのですが、その分お守りも全て自分でやらなければならないのが辛いところ。その分コストも安いのですが、やはり固定IPが振られている安心感というのも捨てがたいもので。自宅でサーバを立てていることと比較してもドッコイ的な感じじゃないかと思う訳です。
コメントする