トラフィックが多いサイトでは、ユーザーが生成した動的コンテンツを大量に実行しています。
サーバーは専用サーバーで、合計4つのIntel(R)Xeon(R)CPU X3210 @ 2.13GHzプロセッサーを搭載しています。サーバーに4GBのRAMがあり、MySQLデータベースが別のサーバーで実行されることを考慮して、ServerLimitおよびMaxClients apacheのディレクティブの最適値を知る必要があります。パネルは、CentOSを使用したDirectAdminです。
以下は私の現在のディレクティブですが、5,000人以上のユーザーがいるピーク時に重要なラグに気づきます-ページが高速に生成されるように見えるため(ページ生成時間カウンターを実装しているため)、これは完全にMySQLの障害ではありませんが、ページが応答を開始し、ブラウザに送信されるまでの接続遅延。
<IfModule prefork.c>
StartServers 800
MinSpareServers 20
MaxSpareServers 60
ServerLimit 900
MaxClients 900
MaxRequestsPerChild 2000
</IfModule>
Timeout 90
KeepAlive On
KeepAliveTimeout 5
topコマンドを使用してサーバーを監視すると、CPU使用率がピーク時に20%〜30%を超えることはありません。また、MySQLサーバーの使用率は30〜50%であり、遅いクエリの修正に常に取り組んでいますが、それは別の問題です。静的なページもピーク時にロードするのに時間がかかるため、DBのボトルネックではないことを知っています。
これらの値を最適化するためのヒントは大歓迎です。