After looking into an OOM error, I found there were about ~15 threads handling POST requests to /computer/foo/timeline/data (I don't know why this page was being requested so much at the same time). Looking through the jenkins source code and other tickets, I noticed that the slave generation is using one-by-one lazy generation. However we have a lot of builds and the lazy generation will continue until the connection times out. The RunMaps will grow out of control and take up a ton of heap until an OOM error occurred. I would like these build history pages to only show ~25 entires at a time thus decreasing the heap need.
Workaround: Increase the JVM max heap size