我正在运行一个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(虚拟内存),而RES(实际使用内存)为8.4g。一旦达到8.4g,即使从磁盘加载,CPU也会停留在100%(这时Java正在进行垃圾回收),最终我会收到Java的OutOfMemoryError错误。 预计,CPU卡在100%是由于Java在进行垃圾回收。
那么,我的问题是什么? 我已经给了它12G的内存! 它只使用了8.2G的内存就挂掉了。我做错了什么吗?
哦,我使用的是 java version "1.6.0_07" Java(TM) SE Runtime Environment (build 1.6.0_07-b06) Java HotSpot(TM) 64-Bit Server VM (build 10.0-b23, mixed mode) 在Linux上。
谢谢, Matt