Apache httpd のパフォーマンスが低い

Apache httpd のパフォーマンスが低い

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. 何らかの方法で再帰的に実行する場合、つまり、1 つの URL から同じ URL にリダイレクトを何度も何度も繰り返し実行する場合...

  2. 解決できないドメイン名を構成で使用している場合、スペルが間違っているか、期限切れか、DNS が壊れている可能性があります。軽微なミスは問題ありませんが、構成によっては、ヒットするたびに多数の失敗した DNS ルックアップを試行する可能性があります。

CPU はまだかなりアイドル状態のようですので、DNS やシステムの問題などを待機している可能性があります。

「kdump」は、実際に何が起こっているか詳細に調べることができますが、単に Apache であると決めつけるのではなく、実際にシステム リソースを使用しているプログラムを調べるために「top」(または ps -axww) の残りの部分を調べることから始めてください。問題が Apache 自体にある場合もあれば、そうでない場合もあるためです。

関連情報