カレンダー

2024/03
     
2930
31      

広告

Twitter

記事検索

ランダムボタン

Apacheチューニング

by 唐草 [2014/11/25]



 先日、移転騒動で大騒ぎした会社から「ホームページの接続障害がでて、表示が遅い」というメールが届いていた。
 タイムアウトしているわけでもないし、500エラーも出てないし、まぁ動いているから良いじゃないかと思っていた。でも、確かにトップページの表示に20秒かかるのは気がかりだった。VPSを借りているので、同じラックに同居している他の仮装サーバの影響を受けている可能性も否定できないが、ここまで顕著な影響は出ないだろう。
 ちょっくらWebサーバ(Apache)の設定事項を覗いてみた。
 そして、いわゆる「コーヒー吹いた」的な状況になりかけてしまった。
 なんと慎ましやかな設定。消費するリソースを最小限に抑えるような設定になっていた。この設定はサーバへの負荷こそ小さいが、同時に処理できる能力が低すぎる。同時に多くのアクセスを受けると、多くの接続者が待たされるハメになる。
 そこで、うちのサーバと同じ設定に変更した。メモリーをどか食いするけれど、同時接続に強い設定だ。
 狙い通りのチューニングを行ったので、Webの表示速度はかなり改善した。
 ところがだ、別の問題が発生してしまった。
 メールの送受信に失敗するようになってしまったのだ。うーん、Apacheにリソースを割きすぎたのかもしれない。ちょっと微調整しよう。
 そう思って再度サーバにログインして、本日2度目のコーヒーを吹くことになる。
 コマンドを打つ度に「メモリーが足りません」と非情な通知が出る。
 VPSで割当実メモリは1GB。十分な量とは言い難いが、仮想メモリ(Swap領域)もあるし不足が発生することは考えにくい。
 念のため、メモリの総量をチェックする。
 実メモリ1GHB。仮想メモリ0byte。
 本日3度目のコーヒー吹きタイムだが、幸いなことにコーヒーは飲みきっていた。まさかの仮想メモリ0byteに驚きが隠せない。慌ててコマンドを連発して仮想メモリ用のSwapファイルを作成する。
 が、VPSの制約によって仮想メモリのマウントが許可されなかった。よって、仮想メモリは使用できないことが発覚。
 実メモリ1GBですべてをやりくりする必要があるという事実を突きつけられる。
 この事実を知った今なら分かる。Apacheの初期設定が、ああも慎ましやかだった理由が。
 電卓片手に消費メモリ量から設定できる最大値を概算していく。かなりギリギリのラインまで攻めた設定を書いてWebサーバを再起動。
 一応、メモリ不足は発生しなくなった。でも、Webサーバのレスポンスの向上は、雀の涙程度。
 やっぱり安いVPSは、色々と問題があるなぁ。