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サーバーのホームページにアクセスしようとしました。
すると、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 を使用していないので、私にとっては問題ありません。