我有一个java应用程序每2分钟连接一次外部webservice请求数据。收到此数据后,它将在本地缓存以供业务使用。 Web服务响应很大(24MB),我使用axis2 BeanUtil.deserialize在转换和缓存之前读取响应。
我面临的问题是,每2分钟循环中全GC启动两次,大约需要2-3秒。 我使用-Xms512M -Xmx2048M
我看到应用程序响应时间在刷新周期/完整GC期间变慢。 我想知道Full GC是否对应用程序有害,应该调整GC参数以避免Full GC?
我尝试了各种参数NewRatio,UseConcMarkSweepGC,但我看不出对Full GC&它的持续时间。关于这个问题的任何指针都将是一个很大的帮助。
GC trace: 2014-02-05T14:36:32.375+0100: 190.237: [GC 883801K->683780K(1542528K), 0.0884010 secs] 2014-02-05T14:36:36.544+0100: 194.406: [GC 916868K->890923K(1542528K), 0.1139410 secs] 2014-02-05T14:36:38.135+0100: 195.997: [GC 1106423K->1053715K(1542528K), 0.2047740 secs] 2014-02-05T14:36:38.340+0100: 196.202: [Full GC 1053715K->432946K(1589760K), 1.7281700 secs] 2014-02-05T14:36:40.900+0100: 198.762: [GC 666034K->647586K(1589760K), 0.0627390 secs] 2014-02-05T14:36:41.502+0100: 199.364: [GC 1000586K->884464K(1589760K), 0.1304590 secs] 2014-02-05T14:36:42.753+0100: 200.615: [GC 1117552K->1078064K(1589760K), 0.1406750 secs] 2014-02-05T14:36:42.894+0100: 200.756: [Full GC 1078064K->604578K(1864192K), 2.1971060 secs] 2014-02-05T14:36:46.148+0100: 204.010: [GC 837666K->666754K(1864192K), 0.0348680 secs] 2014-02-05T14:36:46.965+0100: 204.828: [GC 899842K->706109K(1864192K), 0.0825090 secs]
此致 琥珀