LAMPを最適化する3つの最初のステップ

LAMPバンドル(Linux + Apache + Mysql + PHP)は特別な構成を必要とせず、そのまま使用できるという意見があります。 これは事実とはほど遠い。 友人に長い間PHP xcacheキャッシュアクセラレータをインストールするよう説得した後、少し負荷をかけて(1秒あたりのヒット)仮想サーバーでxcacheをオフにすることを試みました。 実際には、プロセッサの負荷は小さいですが、メモリの負荷が高いため、 そのビット(256MB)。



実験の結果はすべての期待を上回った。 CPUとメモリの使用率のグラフで、キャッシュがオフにされた期間を簡単に見つけることができると思います。









30分間の実験の後、システムは残酷なスワップに陥り、キャッシュを元に戻すことができませんでした。







残念ながら、この実験はクリーンではありませんでした。既存の構成用にApacheを特別に構成し、キャッシュをオフにするとスワップが発生したためです。 Xcache(他のPHPアクセラレータと同様)を使用すると、PHPスクリプトの中間コードをRAMに保存することにより、CPU時間、メモリ、ディスクアクセスを即座に節約できます。 キャッシュが64 MBものキャッシュを占有しているという事実にもかかわらず、その不在により、各ワークプロセスが成長し、物理メモリからクロールされました。



AMPコンポーネントごとに1つずつ、3つの最適化レッスンを実施します。



1. ab -n1000 -c100 yoursite / bigscript.phpを実行してもスワップが発生しないように、常にApacheを構成します。 これを行うには、 この記事をお読みください 。 「ボックス化された」Apacheと中程度のスクリプトは、負荷が増加する深byへの確実な方法です。 特にメモリ制限のあるVDSの場合。

2.常にPHPアクセラレーターをインストールします。 通常のプロジェクトおよびCMS(Drupal / Joomla / WP)では、これにより、リターンが加速され、プロセッサー負荷が2〜4倍削減され、RAMが節約されます。 アクティブなスクリプトを保存するのに十分なキャッシュ量を設定します(キャッシュの混雑度を監視できます)。



3番目のレッスン-MySQLでクエリキャッシュを有効にします。 次のグラフで明確に示されています。



MySQLのより詳細なヒントについては、ライブデータベースで実行して、 tuning-primer.shスクリプトを参照してください。



他の手段(アプリケーション自体の最適化を除く)は、より弱い効果を与えますが、多くのリソースを節約できます。 興味のある方は、 これらの記事を読むことをお勧めします。



All Articles