У нас есть экземпляр Solr 3.4, работающий в Windows 2008 R2 с JDK горячей точки Oracle Java 6, который перестает отвечать на запросы.Когда мы посмотрели на машину, мы заметили, что доступная физическая память стала нулевой.
Процесс Tomcat7.exe использовал ~ 70 гигабайт (частный рабочий набор), но рабочий набор (память) использовал всю память в системе.В журналах Tomcat / Solr ошибок не было.Мы использовали VMMap, чтобы определить, что память используется для отображения памяти в файлах сегмента Solr.
Перезапуск Tomcat временно устранил проблему, но в итоге она вернулась.
Затем мы попытались уменьшить JVMразмер, чтобы дать больше места для файлов, отображаемых в памяти, но затем Solr в конечном итоге перестает отвечать на запросы со старым поколением на 100%.Повторная перезагрузка исправила проблему, но перед сбросом она не вызвала исключение нехватки памяти.
В настоящее время наше чувство пауков говорит нам, что кэш не сжимается при нагрузке на память, и чтовозможно, существует слишком много MappedByteBuffers, так что ОС не может освободить память из файлов с отображенной памятью.