• 締切済み

ApacheのKeepAliveについて

JMeterを使用して負荷テストを行っているのですが KeepAlive On MaxKeepAliveRequests 10 KeepAliveTimeout 2 でテストを行い負荷が掛かりだすとJMeterの結果ツリーに以下エラーが発生します。 org.apache.http.NoHttpResponseException: サーバーアドレス failed to respond Apacheのerror_log上には何もメッセージは表示されていない状態です。 mpm_event_moduleの設定変更やwww.confの設定変更を行っても特に状況は改善せず以下urlを参考にKeepAlive offに設定変更を行うとエラーは発生しなくなりました。 ttps://www.linkedin.com/pulse/apache-jmeter-basics-common-errors-issues-best-practices-prasad KeepAlive offの状態でもレスポンス等、特に問題を感じないのですが何故エラーが発生したのか理解出来ないので質問しました。 以下環境です。 ESXi上の仮想サーバーで実行しています。 CPU 4Core MEM 8GB Apache/2.4.37 PHP 7.4.33 OPcache v7.4.33 PostgreSQL 14.6

みんなの回答

  • t_ohta
  • ベストアンサー率38% (5078/13272)
回答No.2

> Apacheの何れか設定を見直すしか無いのでしょうか。 負荷テストを行われているのであれば、Apache側の設定をいじると結果の信頼性に影響します。 問題を起こしているのはJMeterなのですから、JMeter側の設定を見直してエラーを無くすことが重要だと思います。 Apacheの設定を変えるのは、あくまでも負荷耐性を上げるためのチューニングにしないと意味がありません。

  • t_ohta
  • ベストアンサー率38% (5078/13272)
回答No.1

サーバ側のタイムアウトよりJMeterのタイムアウト時間が長くなっていませんか。 サーバ側でコネクションがタイムアウトして破棄されているのに、JMeterはまだKeepAlive中だと思ってそのコネクションで通信しようとしてエラーになっている可能性が考えられます。 ApacheのKeepAliveTimeoutを長くしてエラーが出なくなれば、上記の理由でエラーが出ているのだと思います。 ApacheのKeepAliveTimeoutのデフォルト値は5秒なので、それ以上にしてみるといいでしょう。

kozax05
質問者

お礼

返信ありがとうございます。 ApacheのKeepAliveTimeoutを 2~30の間で色々試してみましたが症状は改善しませんでした。 またMaxKeepAliveRequestsも10~100の間で試してみました。 端末固有の問題を疑って同一シナリオを他WindowsやLinuxからも実行してみましたが同じエラーが出ている状態です。 KeepAlive Offの状態ですと同時アクセス数を3倍でテストしても全くエラーが出ないので何処から見直すべきなのか見当はつかないのですがApacheの何れか設定を見直すしか無いのでしょうか。

関連するQ&A

  • Apache2.4.18 エラーについて

    Apache2.4.18 エラーについて Apacheは公式サイトからダウンロードし、 http://www.apachelounge.com/download/ windows7 64bit版の最新版を使っています Perl 5.20.2もPHP 5.6.16も使用しています エラーは以下になります [Sat Jan 02 20:31:07.726526 2016] [mpm_winnt:notice] [pid 5656:tid 368] AH00428: Parent: child process 6784 exited with status 255 -- Restarting. [Sat Jan 02 20:31:07.851327 2016] [mpm_winnt:notice] [pid 5656:tid 368] AH00455: Apache/2.4.18 (Win64) PHP/5.6.16 configured -- resuming normal operations [Sat Jan 02 20:31:07.851327 2016] [mpm_winnt:notice] [pid 5656:tid 368] AH00456: Apache Lounge VC14 Server built: Dec 9 2015 11:13:29 [Sat Jan 02 20:31:07.851327 2016] [core:notice] [pid 5656:tid 368] AH00094: Command line: 'C:\\Apache24\\bin\\httpd.exe -d C:/Apache24' [Sat Jan 02 20:31:07.851327 2016] [mpm_winnt:notice] [pid 5656:tid 368] AH00418: Parent: Created child process 652 [Sat Jan 02 20:31:08.506528 2016] [mpm_winnt:notice] [pid 652:tid 272] AH00354: Child: Starting 150 worker threads. [Sat Jan 02 20:31:15.313140 2016] [mpm_winnt:notice] [pid 5656:tid 368] AH00428: Parent: child process 652 exited with status 255 -- Restarting. [Sat Jan 02 20:31:15.406740 2016] [mpm_winnt:notice] [pid 5656:tid 368] AH00455: Apache/2.4.18 (Win64) PHP/5.6.16 configured -- resuming normal operations [Sat Jan 02 20:31:15.406740 2016] [mpm_winnt:notice] [pid 5656:tid 368] AH00456: Apache Lounge VC14 Server built: Dec 9 2015 11:13:29 [Sat Jan 02 20:31:15.406740 2016] [core:notice] [pid 5656:tid 368] AH00094: Command line: 'C:\\Apache24\\bin\\httpd.exe -d C:/Apache24' [Sat Jan 02 20:31:15.406740 2016] [mpm_winnt:notice] [pid 5656:tid 368] AH00418: Parent: Created child process 6312 [Sat Jan 02 20:31:15.905941 2016] [mpm_winnt:notice] [pid 6312:tid 272] AH00354: Child: Starting 150 worker threads. 色々と調べた結果以下二点をしたのですがエラーは解決されませんでした extra\httpd-mpm.confに以下を追加 # WinNT MPM # ThreadsPerChild: constant number of worker threads in the server process # MaxConnectionsPerChild: maximum number of connections a server process serves <IfModule mpm_winnt_module> ThreadsPerChild 150 MaxConnectionsPerChild 0 AcceptFilter http none AcceptFilter https none EnableSendfile off EnableMMAP off ThreadStackSize 8388608 </IfModule> httpd.confにある # Server-pool management (MPM specific) #Include conf/extra/httpd-mpm.conf コメントアウトを消す Include conf/extra/httpd-mpm.conf 他にこのエラーがでなくするにはどのうように改善すればいいのでしょうか?

  • CentOS5.2 Apacheの設定について

    Linuxの勉強のため内部向けにWEBサーバを立ち上げようと思いApacheの設定を致しましたが、クライアントからhtmlファイルを閲覧することができません。設定が間違っているなどの情報をいただければ幸いです。大変申し訳ございませんが、お力添えをよろしくお願いいたします。 【ネットワーク環境】 [ルーター]----[サーバー](192.168.1.13)   |    ---------[クライアントPC](192.168.1.12) 【サーバ環境】 OS:CentOS5.2 Apacheバージョン:httpd-2.2.3-22.el5.centos.1 【Apacheの設定】 [httpd.confの設定事項] ServerTokens OS ServerRoot "/etc/httpd" PidFile run/httpd.pid Timeout 120 KeepAlive on MaxKeepAliveRequests 500 KeepAliveTimeout 40 Listen 80 Listen 8080 User apache Group apache ServerAdmin root@localhost UseCanonicalName Off DocumentRoot "/var/www/html" AccessFileName .htaccess ErrorLog logs/error_log CustomLog logs/access_log combined ServerSignature Off AddDefaultCharset Off Alias /error/ "/var/www/error/"

  • Apache2.4.18 エラーについて

    Apache2.4.18で以下のエラーがでるのですが どのように直せば以下のエラーがでなくなりますでしょうか? [Sat Jan 02 03:54:16.698225 2016] [mpm_winnt:notice] [pid 4456:tid 364] AH00428: Parent: child process 5632 exited with status 255 -- Restarting. [Sat Jan 02 03:54:16.979025 2016] [mpm_winnt:notice] [pid 4456:tid 364] AH00455: Apache/2.4.18 (Win64) PHP/5.6.16 configured -- resuming normal operations [Sat Jan 02 03:54:16.979025 2016] [mpm_winnt:notice] [pid 4456:tid 364] AH00456: Apache Lounge VC14 Server built: Dec 9 2015 11:13:29 [Sat Jan 02 03:54:16.979025 2016] [core:notice] [pid 4456:tid 364] AH00094: Command line: 'C:\\Apache24\\bin\\httpd.exe -d C:/Apache24' [Sat Jan 02 03:54:16.979025 2016] [mpm_winnt:notice] [pid 4456:tid 364] AH00418: Parent: Created child process 4792 [Sat Jan 02 03:54:17.930627 2016] [mpm_winnt:notice] [pid 4792:tid 256] AH00354: Child: Starting 150 worker threads.

  • apacheの負荷軽減について

    現在、CPUの負荷がずっと高く下げる方法はないかと検討しているのですが、どなたか設定等を教えていただけませんか。 サーバーのスペック CPU:P4 3G メモリ:2G OS:FC5 CPU負荷が平均80から100で推移しております。メモリ-は現在1Gほど使用中です。なので、メモリはもう少し使用できるかと思います。 現在、apacheの設定で必要だと思われる設定については以下の通りです。 Timeout 50 KeepAlive On MaxKeepAliveRequests 20 KeepAliveTimeout 10 <IfModule prefork.c> StartServers 8 MinSpareServers 10 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 7000 </IfModule> 設定方法などでどこか変更などのアドバイス等よろしくお願いします。

  • アクセスが多い場合のApacheの設定について?

    アクセスが多いサイトを運用しておりますが、Topコマンドで見ると、すぐにCPUが99%になってしまます。 ロードアベレージは、1前後です。 この場合、どの様にApacheを設定すべきでしょうか? 要するに、CPU値を安定させたいのですが。 今、Apache2を入れおりまして、以下の様になっております。 <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 200 MaxRequestsPerChild 100 </IfModule> # worker MPM # MaxRequestsPerChild: maximum number of requests a server process serves <IfModule mpm_worker_module> StartServers 2 MaxClients 200 MinSpareThreads 25 <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 200 MaxRequestsPerChild 100 </IfModule> # worker MPM # MaxRequestsPerChild: maximum number of requests a server process serves <IfModule mpm_worker_module> StartServers 2 MaxClients 200 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 100 <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 200 MaxRequestsPerChild 100 </IfModule> MaxKeepAliveRequest は、300で、Timeoutは30です。 修正すべき箇所はございますか?

  • xamppのapacheがダウンロードできない。

    プログラミング初心者です。 XamppにてapacheとMySQLをダウンロードしようと思ったのですが。 apacheがエラーメッセージも出ず、起動しません。 14:15:35 [Apache] Attempting to start Apache app... この状態で止まっています。 Host80も使っている様子はありません。 スカイプもISSも起動していません。 [Tue Oct 13 13:51:15.135748 2015] [ssl:warn] [pid 4140:tid 392] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name [Tue Oct 13 13:51:15.463348 2015] [mpm_winnt:notice] [pid 4140:tid 392] AH00354: Child: Starting 150 worker threads. [Tue Oct 13 13:51:21.625359 2015] [mpm_winnt:notice] [pid 6068:tid 380] AH00422: Parent: Received shutdown signal -- Shutting down the server. [Tue Oct 13 13:51:23.653363 2015] [mpm_winnt:notice] [pid 4140:tid 392] AH00364: Child: All worker threads have exited. [Tue Oct 13 13:51:23.902963 2015] [mpm_winnt:notice] [pid 6068:tid 380] AH00430: Parent: Child process 4140 exited successfully. errorlogもこの状態から動きません。 どなたか詳しい方がおられましたら、回答よろしくお願いいたします。

  • 起動しているapacheのバージョンを調べる方法

    apacheが自動で起動していて困っております。 apacheが自動で起動していると思ったのは 以下のような現象がおきているからです。 1. マシンを起動する。 2. IEを立ち上げます。http://localhost/ でアクセスすると、Apacheの起動のテストページが表示されます。 一方で、以下のように、マシン起動時にapacheが起動するようには設定しておりません。 # /sbin/chkconfig --list httpd httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off バージョンの異なる複数のapacheがあるので、それらを設定したときのファイルが残っているのでしょうか? ■起動している、apacheのバージョンを調べる方法は ございますでしょうか? なお、現在の設定では、httpd-2.0.55を 使用し、ソースからコンパイルしてインストールしました。 ただ、以下のように、httpd-2.0.54-10.3のパッケージもありますので、これが悪影響しているのかなとも思っております。 # rpm -qa | grep httpd httpd-2.0.54-10.3 httpd-devel-2.0.54-10.3

  • Apacheでのバーチャルドメインによる負荷について

    Apacheでのバーチャルドメインによる負荷について Apacheについてお尋ねしたいです。 DNSサーバは別のサーバで動いているとして、例えば、Apacheに1000個のバーチャルドメインを設定した場合と10個のバーチャルドメインを設定した場合で、それぞれのリクエスト数が同一だとした場合、やはり前者のバーチャルドメイン1000個設定しているサーバの方が動作は重いのでしょうか? 何を言いたいのかと申しますと、バーチャルドメインが一つ増える毎にサーバにかかる負荷というのは無視できない程大きいものでしょうか?それとも軽微なものなのでしょうか?

  • Apacheの公開フォルダ変更

    自宅サーバを構築するためウェブサーバ Apache2.0.48を入れたwin2000proユーザです。 Apacheをインストールしたのはいいんですが、フォルダ変更ができずにいます。 (Apacheのテストページが常に表示されています) そこで質問です。 Apacheの設定で、webページが保存されているフォルダ(公開したいフォルダ)に設定をするとき、どうすればいいのでしょうか。

  • Apacheのエラーログのログレベルについて

    Apache HTTPD/2.4.7で以下の設定を行っています。 ErrorLog "logs/error_log" LogLevel alert しかし、設定を有効にしても”alert”レベルより低いレベルのログがエラーログに出力されてしまいます。 --内容-- [Wed Dec 25 16:35:44.602828 2013] [mpm_event:notice] [pid 10971:tid 139866365474560] AH00494: SIGHUP received. Attempting to restart [Wed Dec 25 16:35:44.672589 2013] [mpm_event:notice] [pid 10971:tid 139866365474560] AH00489: Apache/2.4.7 (Unix) configured -- resuming normal operations [Wed Dec 25 16:35:44.672687 2013] [core:notice] [pid 10971:tid 139866365474560] AH00094: Command line: '/usr/local/apache-httpd/bin/httpd' 2つ目の[]内に記載されているのがログレベルであるという認識なのですが、なぜ、”alert”レベルで設定しているにもかかわらず、"notice"レベルのログが出力されているのでしょうか? 設定方法が悪いのでしょうか?ログレベルの表記の認識が違うのでしょうか?