Posted by sbaronia
on April 22, 2009 at 2:19 PM PDT
After moving from JDK 1.5 to 1.6 using ConcMarkSweepGC, the program started losing msg coming from multicast cloud.
We have a hashMap which is growing upto 2 Millions.On average it receives 1 Millions msgs around half are added and other half removes transactions. In worse case, we have 2 to 4 million msgs. Since the message have to be serially handled, so we have three threads. one for retrieving msg from multicast socket.
other for processing msg.
last outputing on a multicast socket.
Processing thread is add /remove /modified hashMap. 45% msgs are add, 44% remove, and remaining is modifying.
500 M to 1.5 M messages are received in a day.
But we lose messages at the incoming multicast socket layer.
Linux Red Hat
JVM is 64 bit 1.6.3
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime -verbose:gc -XX:+PrintGCDateStamps -XX:+PrintGCTaskTimeStamps -XX:PrintCMSStatistics=1 -XX:+PrintGCTaskTimeStamps -XX:+PrintTenuringDistribution -XX:PrintFLSStatistics=1
-Xmx5G -Xms3G -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:+UseParNewGC -XX:ParallelGCThreads=3 -XX:NewSize=300m -XX:MaxNewSize=300m