Tomcat アプリケーションでは、「OutOfMemoryError: GC オーバーヘッド制限を超えました」というメッセージが表示されます。しかし、Runtime.getRuntime().freeMemory()
レポート 576 MB は無料です。
これはどのように起こりますか?
エラーは SQL Server JDBC ドライバー内からスローされます。これが 1 回のメモリ要求で数百メガバイトを割り当てようとすることは想像できません。また、GarbageCollectorMXBean
「PS Scavenge」と「PS MarkSweep」の s カウントは、エラーがスローされる前の数分間はあまり増加しませんでした。
Runtime.getRuntime().maxMemory()
Runtime.getRuntime().totalMemory()
4.5 GB と報告されています。これは、Java 7 用の 64 ビット Sun JVM で実行されています。