简体   繁体   中英

GC issue with QuickFIX/J

We are creating a low-latency Java application with QuickFIX/J . We are subscribing to around 50 currency pairs so we are getting around 4000000 ticks per day. This is because we are getting them from different liquidity providers.

I am seeing lots of GC happening and at peak time our application is hanging and not responding. I have tried with with 64 GB heap and also tried with G1 for GC but no success. Can you please suggest how I can solve this issue?

Did you face this issue earlier and what GC optimization have you done?

Should I move from QuickFIX/J and try with some other FIX engine? Can you please suggest some open source/commercial FIX engine which can fulfill my requirement?

Presently I am using Java 7. Would moving to Java 8 be helpful?

If we assume that you have a 8 hr working day you get 138 ticks/second per average. I'm well aware that it is the extremes that count but this is all we got. 138 ticks/seconds should not be a problem at all. We get that x100 every day with a 2 GB heap without a problem. Chances are, you have a memory leak. Do you have gc logging going? If you do not, install it immediately.

These are the flags we use:

-Xloggc:/gc-$(date +"%0d-%0m-%y-%0k%M").gclog -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCCause

GC logging has very small performance impact. If you post the gc log once you got it, we can take it further.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM