...
- Log GC Events
- GC logging is inexpensive and can be very useful.
- Args: (-XX:+PrintGC -XX:+PrintGCDateStamps -Xloggc:<some_abs_path>)
- See also: -XX:+UseGCLogFileRotation, -XX:NumberOfGCLogFiles, -XX:GCLogFileSize
- The logs are text and can be easily read by eye, script or a visualizer, e.g. jvisualvm.
- Watch your IdP live
- For load test or just watching one of the IdP hosts I like to activate jmxremote and use a remote jconsole.
A Day in the Life of an IdP
This shows heap space allocations for one day for one of our IdP nodes at the University of Washington.
- Java settings: -XX:+UseG1GC -Xss24m -Xms3g -Xmx3g -XX:MaxGCPauseMillis=400
- Load: logins/min range from about 60 mid day to about 5 mid night.
Old space | Eden space |
---|---|
- Some per-request allocations migrate to old space, but are easily discarded during routine old space GC
- These didn't show in load tests
- Due to very low number of unique ids used by the load test
- The old collections at 16:00, 01:00 and 09:30 were due to a threshold (50% of total).
- Rapid increase of old use at 10:00 was due to a reload of InCommon metadata.
- Anomaly between 10:30 and 12:00 due to disconnect of jconsole.