我有一台linux服务器,用free -m 查看内存,这个服务器只是跑了一个tomcat没有跑其他服务,重新启动的时候,我不跑tomcat内存大概used500m,刚起tomcat的时候内存used大概700m,可是隔了几天在看一下,内存used 6645 .
[equitydev@szgeoweb1 ~]$ free -m
             total       used       free     shared    buffers     cached
Mem:          7983       6645       1338          0        364        277
-/+ buffers/cache:       6003       1980
Swap:         2047          0       2047tomcat 实际占了物理内存1831860k,大概1521m,但是通过下面查看 占用了 8.9%*7983=710m,
1 怎么和实际占用的1521m差别这么大?
2 及时我停了tomcat内存还是占用好大还是在6g以上,我这台服务器就是跑了tomcat其他没有做什么。
3 这还有可能是内存泄漏,我重新启动服务器,那些内存会释放出来。这个怎么解决???????????????
[equitydev@szgeoweb1 ~]$ ps -aux | grep java
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
root      2737  0.1  8.9 1831860 735244 ?      Sl   Apr09   7:16 /usr/java/jdk1.5.0_20//bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -Xss100k -Xms1024M -Xmx1024M -XX:NewRatio=2 -XX:PermSize=256M -XX:MaxPermSize=512M -Djava.awt.headless=true -Djava.endorsed.dirs=/usr/local/tomcat/common/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
16781853 25290  0.0  0.0  61192   744 pts/0    S+   10:24   0:00 grep java

解决方案 »

  1.   

    6G?
    什么服务器这么牛B
    linux这个内存貌似不是很有用,linux好像内存管理不一样的,貌似他内存看的时候都是99%占用
      

  2.   

    那要看你 Tomcat 上跑的什么应用了。很有可能是程序员素质太差。
      

  3.   

    可能是你的程序中有   stream ,但是用完之后没有close。
      

  4.   

    现在还没有找到原因,开始以为是数据库连接池原因,后来找了一下不是这个原因。 怎么设置了-Xms1024M -Xmx1024M 最大为1024 怎么实际占用的却是1831860 1700多m?