I'm not sure if you resolved this issue, but... : It has typically been when query traffic was lowest! We are at 12 GB
...that doesn't mean it couldn't have been query load related. it's possible that some unusual query (ie: trying to sort on many fields at the same time?) could have forced the memory usage to spike (because of hte field cache). depending on how your load balancer is setup the OOM on one box could have caused the it to fail over to the next box, which also OOMed, etc... the really anoying part is how hard this sort of thing is to detect, because your servlet containers request log usually won't log a request untill after it's finished and all the data has been written bac kto the client -- it may have never been logged because of the OOM. If your Load balancer keeps a request log, you could try checing it. this could be something as simple as a bot doing a slow crawl of some very badly constructed URLs -Hoss