2017-02-06 10 views
1

別のパッケージプロバイダ(bitnami - > official debian)に切り替えてからTomcatに問題があります。 誰かが(悪意を持った)要求に当社のサーバーを打つことのようです:Tomcat 8:100%cpu usage

59.111.29.6 - - [04/Feb/2017:16:17:58 +0000] "-" 400 - 

「 - 」

CPU使用率の増加と一致
Feb 04, 2017 4:17:58 PM org.apache.coyote.http11.AbstractHttp11Processor process 
INFO: Error parsing HTTP request header 
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level. 

と一致する要求パスであり、 。 サーバーのステータスは、次を示しています

<h1>JVM</h1><p> Free memory: 355.58 MB Total memory: 833.13 MB Max memory: 2900.00 MB</p><table border="0"><thead><tr><th>Memory Pool</th><th>Type</th><th>Initial</th><th>Total</th><th>Maximum</th><th>Used</th></tr></thead><tbody><tr><td>Eden Space</td><td>Heap memory</td><td>34.12 MB</td><td>229.93 MB</td><td>800.00 MB</td><td>12.47 MB (1%)</td></tr><tr><td>Survivor Space</td><td>Heap memory</td><td>4.25 MB</td><td>28.68 MB</td><td>100.00 MB</td><td>2.22 MB (2%)</td></tr><tr><td>Tenured Gen</td><td>Heap memory</td><td>85.37 MB</td><td>574.51 MB</td><td>2000.00 MB</td><td>462.84 MB (23%)</td></tr><tr><td>Code Cache</td><td>Non-heap memory</td><td>2.43 MB</td><td>7.00 MB</td><td>48.00 MB</td><td>6.89 MB (14%)</td></tr><tr><td>Perm Gen</td><td>Non-heap memory</td><td>128.00 MB</td><td>128.00 MB</td><td>512.00 MB</td><td>52.57 MB (10%)</td></tr></tbody></table><h1>"http-nio-8080"</h1><p> Max threads: 200 Current thread count: 10 Current thread busy: 3 Keeped alive sockets count: 1<br> Max processing time: 301 ms Processing time: 71.068 s Request count: 10021 Error count: 2996 Bytes received: 0.00 MB Bytes sent: 3.18 MB</p><table border="0"><tr><th>Stage</th><th>Time</th><th>B Sent</th><th>B Recv</th><th>Client (Forwarded)</th><th>Client (Actual)</th><th>VHost</th><th>Request</th></tr><tr><td><strong>F</strong></td><td>1486364749526 ms</td><td>0 KB</td><td>0 KB</td><td>185.40.4.169</td><td>185.40.4.169</td><td nowrap>?</td><td nowrap class="row-left">? ? ?</td></tr><tr><td><strong>F</strong></td><td>1486364749526 ms</td><td>0 KB</td><td>0 KB</td><td>185.40.4.169</td><td>185.40.4.169</td><td nowrap>?</td><td nowrap class="row-left">? ? ?</td></tr><tr><td><strong>R</strong></td><td>?</td><td>?</td><td>?</td><td>?</td><td>?</td><td>?</td></tr><tr><td><strong>S</strong></td><td>36 ms</td><td>0 KB</td><td>0 KB</td><td>106.51.39.130</td><td>106.51.39.130</td><td nowrap>104.197.119.177</td><td nowrap class="row-left">GET /manager/status?org.apache.catalina.filters.CSRF_NONCE=072F9F6884D94C5D7B30D1D34CE61BD9 HTTP/1.1</td></tr><tr><td><strong>R</strong></td><td>?</td><td>?</td><td>?</td><td>?</td><td>?</td><td>?</td></tr></table><p>P: Parse and prepare request S: Service F: Finishing R: Ready K: Keepalive</p><hr size="1" noshade="noshade"> 
 
<center><font size="-1" color="#525D76">

だから、メモリの問題のうちのように見えるしていません(私は間違っている可能性が)。

私が直面している問題を避けるために、誰かが最初にリクエストをしないようにするにはどうすればよいですか?私のwebappでtomcatを実行すると、HTTPメソッドがGET/POSTに制限されますが、Tomcat全体を制限するためにはどうすれば設定できますか?

答えて

0

私はあなたのサーバのスレッドダンプを取得するためにあなたを助言する:

  • は、使用してTomcatサーバーのPIDを分離:

jps -l

  • は、使用してスレッドダンプを取得:

kill -3 PID または

  • jstack PIDは、スレッドダンプをチェックし、あなたが私は[こちら]ダンプを持ってホギングスレッド
+0

の理由を見つける必要があります(http://pastebin.com/fAZt1GRF)。これをどうやって解釈できますか? – njLT

+0

JDKの問題に関連しているかどうかはわかりません。 https://github.com/netty/netty/issues/327 sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269) –