Centos 7 で httpd を使用して実行している Web サイトがあります。
私は 8 個の CPU と 32 GB の RAM を持っています。
ウェブサイトに同時に 500 ~ 600 人以上のユーザーがアクセスすると、サーバーの応答速度が速くなります。その場合でも、CPU 負荷は約 20 ~ 25% で、RAM も使用されません。
パフォーマンスを向上させるために何を構成すればよいですか、または何が欠けていますか? 当社のページは 100% キャッシュされており、データベース クエリなどは一切実行されません。
confファイル
HostnameLookups Off
KeepAlive On
MaxKeepAliveRequests 1500
KeepAliveTimeout 5
<IfModule prefork.c>
StartServers 30
MinSpareServers 30
MaxSpareServers 50
ServerLimit 512
MaxClients 512
MaxRequestsPerChild 10000
</IfModule>
上:
%Cpu(s): 1.9 us, 2.6 sy, 0.0 ni, 95.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 32779548 total, 3268520 free, 12679060 used, 16831968 buff/cache
答え1
Apache は非常に効率的です。技術的には私の回答は適切ですが、サーバー自体ではなく、おそらく実行している CGI かまったく別の何かが、あなたの処理を遅くしている可能性があります。
top
まず、実際にどのプログラムがリソースを使用しているか確認するために実行し、そこから進めて、見たものを投稿しながらさらに質問するとよいでしょう。
Apache が実際に停止する可能性があると私が考えられる唯一の例は、次のとおりです。
何らかの方法で再帰的に実行する場合、つまり、1 つの URL から同じ URL にリダイレクトを何度も何度も繰り返し実行する場合...
解決できないドメイン名を構成で使用している場合、スペルが間違っているか、期限切れか、DNS が壊れている可能性があります。軽微なミスは問題ありませんが、構成によっては、ヒットするたびに多数の失敗した DNS ルックアップを試行する可能性があります。
CPU はまだかなりアイドル状態のようですので、DNS やシステムの問題などを待機している可能性があります。
「kdump」は、実際に何が起こっているか詳細に調べることができますが、単に Apache であると決めつけるのではなく、実際にシステム リソースを使用しているプログラムを調べるために「top」(または ps -axww) の残りの部分を調べることから始めてください。問題が Apache 自体にある場合もあれば、そうでない場合もあるためです。