所以,我正在运行一个java服务器(特别是Winstone:http://winstone.sourceforge.net/)
像这样:java -server -Xmx12288M -jar /usr/share/java/winstone-0.9.10.jar --useSavedSessions = false --webappsDir =/var/servlets --commonLibFolder =/usr/share/java
这在过去运行良好,但现在需要将更多的东西加载到内存中,而不是以前.
奇怪的是,根据'top',它有15.0g的VIRT(ual内存),它的RES(ident set)是8.4g.一旦达到8.4g,CPU就会挂起100%(即使它是从磁盘加载的),最终,我得到了Java的OutOfMemoryError.据推测,CPU挂起100%是Java做垃圾收集.
那么,我的问题是,是什么给出的?我给了它12个演唱会!并且只有在它投入之前才使用8.2演出.我究竟做错了什么?
哦,我正在使用java版"1.6.0_07"Java(TM)SE运行时环境(版本1.6.0_07-b06)Java HotSpot(TM)64位服务器VM(版本10.0-b23,混合模式)
在Linux上.
谢谢,马特