Запуск nexus в Amazon Linux на моем экземпляре SC2. Чистая установка, затем я построил небольшой проект против нее. Не используется никем, кроме меня.
Когда я впервые запускаю Nexus, загрузка ЦП начинается с 97%, а использование памяти - с 20%. Через несколько минут он установится на 2-6% ЦП и около 20-40% памяти. Для экземпляра 640 МБ это означает от 128 до 256 МБ! Это не кажется правильным, тем более что Nexus рекламирует себя как требующий всего 28 МБ. В чем дело?
Вот результаты ps aux, если это поможет:
root 25227 0.0 0.1 16980 692 ? Sl 16:05 0:00 /mnt/vol1/nexus-oss-webapp-1.9.1.1/bin/jsw/linux-x86-64/./wrapper /mnt/vol1/nexus-oss-webapp-1.9.1.1/bin/jsw/linux-x86-64/../conf/wrapper.conf
wrapper.syslog.ident=nexus wrapper.pidfile=/mnt/vol1/nexus-oss-webapp-1.9.1.1/bin/jsw/linux-x86-64/./nexus.pid wrapper.daemonize=TRUE wrapper.lockfile=/var/lock/subsys/nexus
root 25229 3.0 20.0 1247852 122628 ? Sl 16:05 0:12 java -Dsun.net.inetaddr.ttl=3600 -Dbasedir=. -Djava.io.tmpdir=./runtime/tmp -Djava.library.path=bin/jsw/linux-x86-64/lib -classpath bin/jsw/li
b/wrapper-3.2.3.jar:./runtime/apps/nexus/lib/plexus-classworlds-2.4.jar:./conf/ -Dwrapper.key=GZhnIo3i5ox4LVLp -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.pid=252
27 -Dwrapper.version=3.2.3 -Dwrapper.native_library=wrapper -Dwrapper.service=TRUE -Dwrapper.cpu.timeout=10 -Dwrapper.jvmid=1 org.codehaus.plexus.classworlds.launcher.Launcher
(и да, я знаю, что не должен работать как root. это всего лишь тест)
Я также должен добавить, что в какой-то момент я попросил nexus проиндексировать центральный репозиторий maven, и когда я это сделал, загрузка ЦП взлетела до небес, от 30% до 90%, и оставалась такой, пока я наконец не убил процесс.
Есть предположения?
Я видел, как Nexus использует много ЦП "% sys" (а не usr или iowait) при запуске (vmstat / top). Я не дошел до сути, но подумал, что это может быть полезным указателем.
Когда я впервые запускаю Nexus, загрузка ЦП начинается с 97%, а использование памяти - с 20%. Через несколько минут он установится на 2-6% ЦП и около 20-40% памяти. Для экземпляра 640 МБ это означает от 128 до 256 МБ!
Я не понимаю, почему nexus должен занимать только 28 МБ кучи, когда вы запускаете экземпляр с 640 МБ; просто начните контекст с того максимума, который вы хотите ему дать. Однако, если у вас большое количество репозиториев, использование памяти может резко возрасти. Использование ЦП связано с поддержанием индексов в реальном времени.
Я также должен добавить, что в какой-то момент я попросил nexus проиндексировать центральный репозиторий maven, и когда я это сделал, загрузка ЦП взлетела до небес, от 30% до 90%, и оставалась такой, пока я, наконец, не убил процесс.
Если вы имеете в виду запланированную задачу «переиндексировать репозиторий», она вам не нужна для зеркального репозитория. Повторное индексирование может быть очень сложной задачей, которая действительно полезна только для локально размещенных репозиториев, в которых, по вашему мнению, произошло повреждение метаданных maven, или если вы изменяете файловую систему nexus за пределами nexus. Вам нужно только «загрузить индексы» и «опубликовать индексы» для зеркальных репозиториев.
В этом сообщении блога подробно объясняется запланированная задача:
http://www.sonatype.com/people/2009/09/nexus-scheduled-tasks/