web-dev-qa-db-ja.com

Linux XenVPSでのApacheとMySQLの最適化

128MRAMを搭載したUbuntu8.10を実行しているXen仮想プライベートサーバー(VPS)があります。

Google経由で「低メモリVPS用にApacheとMySQLを最適化する方法」ページをいくつか見つけましたが、それらは矛盾した情報を提供します。だから私はサーバー障害を尋ねています:低メモリVPS構成のためにApacheとMySQLをどのように最適化するのですか?


何人かの人々がApacheの代わりに nginx を使用することを提案しました。それについては調べますが、(私にとっては)なじみのないWebサーバー上でのアプリケーションスタックの構成についてすべてを学ぶ必要がないように、可能であればApacheを使い続けることをお勧めします。

10

Nginxは素晴らしいですが、Apacheを使い続けたい場合は、デフォルト設定からかなりスリム化することができます。

  • プリフォークではなくワーカーMPMを使用します(ワーカーMPMでは、Apacheには「接続ごとのプロセス」モデルがありません)。
  • ロードしているすべての共有モジュールを確認し、不要なものをすべて取り除きます。
  • 回避できる場合は、Apache内にアプリケーションサーバー(つまり、mod_python、mod_phpなど)を埋め込むことは避けてください。代わりに、アプリケーションサーバーを別のプロセスで実行し、それらにApacheプロキシを設定します(つまり、Pythonコードではデーモンモードでmod_wsgiを使用します)。このように、静的コンテンツを提供するだけのApacheスレッドは機能しません。不必要に肥大化する。
  • Apache構成で、StartServers、MaxClients、MinSpareThreads、およびMaxSpareThreadsの設定を減らします。予想される負荷によっては、デフォルト設定から5分の1以上減らすことができる場合があります。
7
Carl Meyer

Apacheを捨てて、接続モデルごとのプロセスは、低メモリVPSでは再生されません。

代わりにnginxをお勧めします。

2
Dave Cheney

メモリに制約がある場合は、可能であれば、代わりにnginxを使用することをお勧めします。 Apacheよりもはるかに少ないメモリを消費し、ニーズに応じて必要なものがすべてあります。

ボーナスとして、nginxはApacheよりも大幅に高速になる傾向があります。 =)

2
Jauder Ho