1

Apache ウェブサーバーを 2.2 から 2.4 にアップグレードしました。アップグレード後、W モードで多くのスタック スレッドが発生します。私はphpを使用していません。スタックしたスレッドは、静的な html ページでも、Jmeter を介して負荷テストを行っているときにも発生しています。

これらのスタック スレッドが原因で、MaxRequestWorkers/MaxClients 制限に達し、サーバーが応答しなくなります。メモリは問題ではありません。サーバーがクラッシュしたときでさえ、約10Gbの空きメモリがありました。

Apache かどうかを確認するために、2.2 (古いサーバー) に戻しましたが、スレッドがハングすることはありませんでした。

ServerTokens OS ServerRoot "/etc/httpd" PidFile run/httpd.pid TimeOut 295 KeepAlive Off MaxKeepAliveRequests 100 KeepAliveTimeout 15

StartServers 20 MinSpareServers 15 MaxSpareServers 40 ServerLimit 1024

最大クライアント数 2048

MaxRequestWorkers 2048

MaxRequestsPerChild 5000

MaxConnectionsPerChild 5000

以下は、スレッドの 1 つの pstack です。

pstack 30078

#0  0x00007f0c6536df4d in __lll_lock_wait () from /lib64/libpthread.so.0
#1  0x00007f0c65369d02 in _L_lock_791 () from /lib64/libpthread.so.0
#2  0x00007f0c65369c08 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00007f0c58e53f4b in yodysMtxLock () from /etc/httpd/modules/libdms2.so
#4  0x00007f0c58e518e6 in yodSlotLock () from /etc/httpd/modules/libdms2.so
#5  0x00007f0c58e50266 in yodStateIncrementSb8 () from        /etc/httpd/modules/libdms2.so
#6  0x00007f0c597ca764 in wl_increment_state_metric () from /etc/httpd/modules/mod_wl_24.so
#7  0x00007f0c597c5af9 in request_handler () from /etc/httpd/modules/mod_wl_24.so
#8  0x00007f0c668dc290 in ap_run_handler ()
#9  0x00007f0c668dc7d9 in ap_invoke_handler ()
#10 0x00007f0c668f0bca in ap_process_async_request ()
#11 0x00007f0c668f0ea4 in ap_process_request ()
#12 0x00007f0c668ed7f2 in ap_process_http_connection ()
#13 0x00007f0c668e5890 in ap_run_process_connection ()
#14 0x00007f0c58c2280f in child_main () from /etc/httpd/modules/mod_mpm_prefork.so
#15 0x00007f0c58c22a55 in make_child () from /etc/httpd/modules/mod_mpm_prefork.so
#16 0x00007f0c58c22ab6 in startup_children () from /etc/httpd/modules/mod_mpm_prefork.so
#17 0x00007f0c58c237c0 in prefork_run () from  /etc/httpd/modules/mod_mpm_prefork.so
#18 0x00007f0c668c25be in ap_run_mpm ()
#19 0x00007f0c668bbb46 in main ()

どんなガイダンスも役に立ちます。

4

1 に答える 1

1

特定のスレッドは、ロックを待機している独自の weblogic プラグインでスタックしています。静的なリクエストでもトリガーできるのは驚くべきことです。しかし、それはあなたがベンダーに相談する必要があるものであり、他の誰もそれをデバッグすることはできません.

于 2016-07-26T22:56:54.597 に答える