Debian 8 上の tomcat 7 で CPU 100%

Debian 8 上の tomcat 7 で CPU 100%

Debian 8 上の tomcat 7 のデフォルト設定に問題があります。

問題: Java プロセスが原因で、サーバーの CPU が 100% に跳ね上がり、数時間その状態が続くため、サーバーが遅くなります。Tomcat サーバーを再起動すると、CPU は再び 1% になります。数時間後、問題が再び発生します。

Java アプリケーションのステータス: Tomcat にカスタム Java アプリケーションがインストールされていないため、これはおそらく Tomcat の問題です。

ログ: catalina.out を見ていると、CPU ピッチの開始に対応するこのエラー メッセージを見つけました。

2017 年 1 月 19 日 1:03:23 AM org.apache.coyote.http11.AbstractHttp11Processor プロセス INFO: HTTP リクエスト ヘッダーの解析エラー

再現方法: サーバーの再起動後、WebブラウザからこのURLにアクセスして、httpsを使用してTomcatサーバーのホームページにアクセスしようとしました。

https://domain.com:8080

すると、CPU が異常な動きをし始め、以前と同じようにログが表示されます。

それは何を意味するか: これは特別なリクエストを持つすべての人が私のサーバーをDDOSできることを意味します

質問: Linux ディストリビューションや apt で使用される tomcat のパッケージ バージョンを変更せずに、この問題を解決する方法はありますか?

Google Compute Engine の新しい Debian 8 デフォルト イメージを使用しています。tomcat 7.0.56 Java 1.7.0_111

答え1

Debian 8、tomca7.0.56 でもまったく同じ問題が発生しました。

私の場合は、バックポート バージョンにアップグレードすることで解決しました。tomcat7、tomcat7-common、libtomcat7-java、libservlet3.0-java をバージョン =7.0.73-1~bpo8+1 にアップグレードしました (次のようにします: apt-get install tomcat7=7.0.73-1~bpo8+1)

Debian 8 の現在の tomcat 7.0.56 リリースには、重大なセキュリティ問題があると思います。標準構成では、https://domain.tld:8080 を呼び出すだけで、tomcat を再起動するまで CPU スケーリングが 100% になります。

答え2

つまり、科学的方法

  • ポート 8080 で何がリッスンしているかを確認します。
  • どのように構成されているかを確認します。
  • それが何をしているのか理解してください。
  • 適切な行動をとる

答え3

私もまったく同じ問題を抱えており、システム構成も同じです。サーバーを再起動すると、1、2 日は正常になりますが、その後再び tomcat7 が CPU の約 99% を使用します。

今回は次のことを行いました:

サービス tomcat7 停止

そして、それは私の場合はまだ機能しています。あなたが言ったように、私は Java を使用していないので、私にとっては問題ありません。

関連情報