Вы действительно получаете исключения из памяти? Или ошибки «из стекового пространства»? Внимательно проверьте журналы, поскольку у меня был опыт работы с CF, который был запущен раньше - проверьте файлы server.log
.
Если да, то, как уже упоминалось, вы можете использовать инструмент JConsole для отслеживания использования памяти. Если вы видите, что память доходит до этих исключений, вам нужно выяснить, где протекает ваша память. Лучший способ сделать это - получить свалку JVM в это время и использовать инструмент анализа мериометрии. I documented наш опыт в этом.
Если нет исключений и т. Д., Тогда имейте в виду, что JRun делает использовать много памяти. Обычно от 500 МБ до 1,5 ГБ на наших серверах Win32, даже если настройка CF Admin для размера кучи JVM составляет 1024 МБ. JRun и работает поверх Java, запустив сервер приложений, чтобы он был достаточно высоким. То, что вам нужно следить, - это все более широкое использование памяти с помощью JConsole.
Что касается GC tuning - только беспорядок с этими настройками, если у вас действительно есть проблема. Это сложно и приведет к нестабильности сервера, если это будет сделано неправильно или без понимания того, как работает Java GC. Вы можете получить основы here, а затем вы можете передать настройки (например, -XX:MaxPermSize=192m
) в качестве аргумента JVM в CF admin.
Устранение проблем с памятью может быть сложным и трудоемким, так что удачи!
У меня установлена куча JVM на 10240 на сервере Win2k8x64. Но сервер, похоже, виснет и не реагирует, когда он приближается к 6 ГБ памяти. Проблема здесь в том, что даже служба мониторинга (которую я настроил для запуска как отдельный сервер) также не реагирует, поэтому я никогда не могу увидеть, что я не так. –
Wow - 6 ГБ памяти! И куча 10 ГБ! Я не могу себе представить, что для обычного сервера веб-приложений требуется столько памяти. Вы очень занятый сайт? Но сначала: вы пробовали использовать JConsole? Если вы запускаете CF в качестве службы Windows, проверьте эту ссылку: http://flydillonfly.wordpress.com/2010/09/01/1048076135/ - оставьте его в рабочем состоянии, а затем выполните сброс памяти и осмотрите его, когда он вырос примерно на 1 ГБ , Этот анализ может показать класс, который является виновником. –
Да, это не так много, хотя есть много шаблонов. Я буду завтракать jConsole. –