ajax コマンドを使用して更新することで新しいエントリを表示する Web チャットをプログラムしました。このコマンドは php ファイルを起動し、最新の 25 エントリを示すチャット ログを作成しました。Ajax は、すべてのユーザーに対してこれを毎秒更新しました。
その後、約 10 人のユーザーがオンラインになったとき、Web サイト全体が信じられないほど遅くなり、クラッシュするようになりました。遅さは、phpスクリプトが頻繁に(毎秒10回以上)更新されることが原因であると考えました。
vserver を調べ、htop を起動してプロセスを表示しました。CPUはほとんど使用されていませんでした。それは 0% の間で、5% までピークに達しました。RAM は半分しか使用されておらず、1 GB の約 500 MB でした (チャットがオンラインになる前であっても、これは標準です)。
チャット ログの html キャッシュ サイトを 1 つだけ作成する cron ジョブを作成し、それをユーザーに配布することで、この問題を解決しました。
それでも、CPU と RAM がまったくビジーではないのに、なぜサーバーがこんなに遅くなるのだろうか?