先月末、さくらのスタンダードからVPSプランに移行しました。
参照: さくらVPSに移行しました
あれから2週間ほど経過したのですが、現状を少し整理しておきます。
うちのような小さなサイトだとチューニングなどは必要ないだろうと思っていたのですが、
何もしないとさすがにリソースが厳しい、、ということがわかりました。
実はこのブログのせいというより、Tech Noteの方の定常的なトラフィックに原因がある模様。
ということで、急遽パフォーマンスチューニングを施して様子を見ることに。
PukiWikiだとMySQLは関係ないので、まずはApacheのパラメータを少し弄り、
次にPHPのメモリ周りのパラメータを、そしてAPC (Alternative PHP Cache)の導入を行いました。
これらの作業によって、PukiWikiだけでなくWordpressのパフォーマンスも改善され、
普段のロードアベレージも地面を這いつくばるようになってイイ感じです。
あと意外だったのが、ただのWeb API利用デモのつもりで公開している、
東京アートビートAPI デモ
へのトラフィックもなぜか相当多いみたいです。
これも効率よくレスポンスキャッシュすれば負荷は下がるかと。
せっかくアクセスがあるので、もっと使いやすいインタフェースにしておきます。TODO。
次にシステム運用面で、いくつかのツール(デーモン)を追加しました。
* monit (プロセス監視デーモン:Apache, MySQLなどの死活監視をするため)
* postfix/dovecot (SMTP/POP3,IMAPサーバ:アラートを飛ばすため)
* sysstat (システム統計情報のレポート:sar がないと生きていけないため)
プロセス監視にはdaemontoolsの方が古くからの実績もあって使うのにも慣れているのですが、
monitは設定と導入が楽だし、将来も期待できるのでこっちを使いました。
(RPMforgeをyumのレポジトリに加えて最新バージョンをインストールしました)
もちろんプロセスの死活だけでなく、CPUやメモリ利用率、ロードアベレージ等も監視できます。
また、プロセスが落ちた時などはアラートメールを飛ばすことも可能で、
僕の場合はケータイに転送するように設定しています。
以下は、Apache(httpd)プロセスが落ちた時のアラートメール例です。
monitが自動でhttpdを再起動をしてくれたことがわかります。
1 2 3 4 5 6 7 8 9 10 11 |
件名:monit alert -- Does not exist httpd 本文: Does not exist Service httpd Date: Sat, 12 Feb 2011 20:11:39 +0900 Action: restart ## Action の項目にmonitがどう対処したかが書かれる Host: rest-term.com Description: process is not running Your faithful employee, Monit |
また、monitにはWebフロントエンドが用意されていて、以下のような画面で確認できます。
各プロセス名のリンクから詳細画面に移ります。
あとメールサーバについても少し。
さくらVPSでは最初からsendmailのMTAが動いてましたが、これをpostfixに移行しました。
sendmailとqmailでの構築経験はありましたが、postfixで構築したのは実は初めて。
スパムの踏み台対策など、知識不足も相まってけっこう時間がかかってしまいました。。
あとちょっと話はそれますが、こあくま本のメールの章は読み物として面白かったです^^
全体的にはシステム運用者向けにまだ細かい所を整備する必要があるのですが、
単一ホストなのであまり頑張ることもないかなぁとも思っています。
環境整備が落ち着いてきたら、少しずつ上のレイヤーに移っていきます。
アプリケーションやデザインの事も考えていきたいです。