Linux Xen VPSでのApacheとMySQLの最適化


10

128M RAMを搭載したUbuntu 8.10を実行するXen仮想プライベートサーバー(VPS)があります。

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


Apacheの代わりにnginxを使用することをいくつかの人々が提案しました。私はそれを調べますが、見慣れない(私にとって)Webサーバー上でのアプリケーションスタックの構成についてすべて学ぶ必要がないように、できるだけApacheを使いたいと思います。

回答:


7

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

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

2

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

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


2

apacheを破棄します。接続モデルごとのプロセスは、低メモリVPSで再生されません。

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


4
これは1.3のみの問題です。apache 2.xは、少数のプロセスで多くのスレッドを実行するMPMを含むプラグ可能なプロセスモジュールを許可します。味わうためにすべて調整可能
Vagnerr

はい。ただし、nginxはより小さなプロセスです
デイブチェイニー、

2
はい、しかしそれはあなたが言ったことではありません
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.