1

最近、奇妙な問題が発生しました。Tomcatの一部のSolrアプリは、多数の接続で頻繁にタイムアウトします。

数日前、gc arg -XX:+ ExplicitGCInvokesConcurrentを追加したので、このargを削除しようとしましたが、接続数が減少し、タイムアウト時間も減少しました。

ただし、このgc argを使用するアプリの中には、この問題が発生していないものがあります。病気のアプリと正常なアプリの違いは、jdkバージョンです。sickアプリのjdkバージョンは1.6.0_21で、heathyアプリは1.6.0_26です。

jdkのバージョンを変更すると、問題も修正されます。

誰かがこれが古いバージョンのjdkのバグなのか、それともgc argsのバグなのかを知ることができますか?

4

2 に答える 2

1

ええ、-XX:+ExplicitGCInvokesConcurrent古いJDKではの使用にバグがあるようです。6u22以降に解決されたこのバグを確認できます(興味深いことに、6u21は失敗し、6u26は機能します)。

于 2012-06-19T13:57:53.457 に答える
1

-XX:+ExplicitGCInvokesConcurrentによって行われたすべての呼び出しを削除するSystem.gc()Runtime.getRuntime().gc()、長い一時停止時間が発生します。正常なアプリにこれらの呼び出しがない場合、問題のあるアプリの問題である可能性があり、問題が発生している可能性があります。

jdk のバグについてはわかりませんが、アプリのどこかに問題がある可能性があります。

于 2012-06-19T13:11:46.350 に答える