併設の「ぼくんちのTV別館 (さくらのVPS3台体制)」が1日80万PVに達し、サーバーのパフォーマンスが著しく悪くなり、ほぼフリーズしたような状態になった後に行ったチューニング。

VPS 3台の内訳

VPS A ・・・・・ 本体。MTOS5 + PHP化した静的HTML
VPS B ・・・・・ 画像サーバー (javascriptやcssも含む)
VPS C ・・・・・ アクセス解析 + 逆アクセス解析ツール + 1MB超えたファイルなど

サーバーの仕様は3台とも同じ。
 ・メモリ1GB HDD20GB の初期980円(後から増強)コース
 ・OS: Cent OS 5.11 (64bit)
 ・httpサーバー: Apache2系
※画像サーバだけでも Nginx にしよう・・・・と思いつつも全く手が付いていない状態。

1.アクセスが増えすぎた後、どうなったか

2.sshログインできなくなった場合

3.sshログイン後

4.iptables

5. iptables 未検証項目

6. httpd Client

7. KeepAlive

8. TCPセッションの数を増やす


9. 今後の予測をしてみる

10. サーバー増強を視野に入れる

11. まとめ - 今回 効果があった対策

  1. 画像専用サーバーでもKeepAliveはOFFにする
  2. httpd Clientの数は必要最小限に減らす。forkしないようにする。
    httpdが使うメモリの量もギリギリまで減らす。
  3. メモリに余裕が出来た分をiptablesのパケット処理やTCPセッション数の増加に回す。
    • サーバー素人の浅はかな考えだけど、
      メモリ使用量は
      httpd Client : iptabls+TCP : MySQL = 4:4:2
      くらいにしとけば良いんじゃないだろうか?

今回の場合、この3つが正解だった。
VPSを初めて触った2011年当時、あれこれをチューニングを施したつもりになっていたが、まだまだだった。

12. その他に行った事

13. チューニング後のパフォーマンス

エラーが出なくなった、パフォーマンスが落ちなくなった、というだけで、処理能力は上がらなかったようだ。次に大量アクセスを貰うまで、正確な結果は分からない。

過去、私の見立てが甘かった。

次にやること

abテストする。
過去abテストした時は、リアルで大量にアクセスを捌いた経験が無かったので、ベンチマークの数値にイマイチ実感がなかった。今回の経験を踏まえ、もう一回abテストしてみる。

その他: mod_evasive20.c