выделение памяти в куче и производительность

Приложение работает на высокопроизводительном Linux-сервере с 16 ГБ ОЗУ и 100 ГБ на жестком диске. У нас есть следующая команда для запуска программы.

nohup java -server -Xmn512m -Xms1024m -Xmx1024m -Xss256k -verbose:gc -Xloggc:/logs/gc_log.txt MyClass >> /output.txt

Это было написано кем-то другим. Я пытаюсь понять, почему используется -verbose:gc -Xloggc:. Когда я проверил эту команду, она собирает журналы gc, но вызывает ли это проблемы с производительностью приложения? Также я хочу пересмотреть мои аргументы памяти, приложение использует полные 16 ГБ ОЗУ, а загрузка ЦП меньше 5 процент. Мы анализируем причины использования памяти. но Можем ли мы увеличить значения параметров памяти для повышения производительности или хватит существующих?


person learner    schedule 27.12.2012    source источник


Ответы (1)


Ответ на первую часть вашего вопроса: -verbose:gc подразумевает, что к файлу, предоставленному в -Xloggc, будут добавлены дополнительные журналы GC. Если загрузка ЦП составляет ‹5%, то нет проблем с сохранением подробных журналов gc.

Для 2-й части невозможно, если вы назначите 1024 м кучи, а приложение все равно займет 16 ГБ ОЗУ.

person sky    schedule 27.12.2012
comment
Может быть, это не сама Java занимает 16 ГБ? Если OP использует SQLite, MongoDB или какое-либо другое хранилище данных, потребляющее память, это может объяснить то, что он наблюдает. - person Jesse Webb; 27.12.2012