为什么Sonatype Nexus似乎占用了大量的内存和CPU时间?

在我的SC2实例上的Amazon Linux上运行nexus。 干净的安装,然后我build立一个小项目反对它。 除了我之外,没有人被使用。

当我第一次启动Nexus时,CPU利用率开始为97%,内存使用率为20%。 几分钟后,它会解决喜欢2-6%的CPU和20-40%的内存任何地方。 在一个640MB的实例中,这意味着128到256MB之间的任何地方! 看起来不对,尤其是自从Nexus宣称自己只需要28MB。 这是怎么回事?

这里是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身份运行,这只是一个testing)

我还要补充一点,我曾经问过nexus对maven中央仓库进行索引,当我这样做的时候,CPU利用率高达30%到90%之间,并且保持这种状态直到我终于杀死了这个进程。

有什么想法吗?

我看到Nexus在启动时使用了大量的“%sys”CPU(而不是usr或iowait)(vmstat / top)。 我还没有到底,但认为这可能是一个有用的指针。

当我第一次启动Nexus时,CPU利用率开始为97%,内存使用率为20%。 几分钟后,它会解决喜欢2-6%的CPU和20-40%的内存任何地方。 在一个640MB的实例中,这意味着128到256MB之间的任何地方!

我不明白为什么nexus应该只有28M的堆,当你开始640M的实例; 只需开始与您想要给它的最大内存量的上下文。 如果您拥有大量的存储库,内存使用率可能会急剧增加。 CPU使用率是由于维护实时索引。

我还要补充一点,我曾经问过nexus对maven中央仓库进行索引,当我这样做的时候,CPU利用率高达30%到90%之间,并且保持这种状态直到我终于杀死了这个进程。

如果您的意思是“reindex存储库”计划任务,则不需要它用于镜像存储库。 Reindexing可能是一个非常繁重的任务,只有在您认为存在maven元数据损坏的本地托pipe存储库,或者如果您修改nexus之外的nexus文件系统时,才是真正有用的。 您只需要为镜像存储库“下载索引”和“发布索引”。

这篇博文详细解释了计划任务:

http://www.sonatype.com/people/2009/09/nexus-scheduled-tasks/