LINUX上运行JAVA,但内存不能释放,有何解决办法?
我的应用系统是基于jdk1.4.2环境的,当在LINUX上运行一段时间以后,而且只是运行这个应用,没有开发其他服务(包括telnet,ftp,http,dns都没有启动)发现系统被占用的内存始终在增加。
请问:这种现象是因为JAVA程序中有内存泄露吗?
我如何控制java虚拟机可以管理的内存呢?
有那些内存管理或泄露的检查工具,可以对内存泄露进行查看呢?
内存的使用情况用top查看的结果如下:
35 processes: 34 sleeping, 1 running, 0 zombie, 0 stopped
CPU states: 0.0% user 0.0% system 0.0% nice 0.0% iowait 99.9% idle
Mem: 512796k av, 205164k used, 307632k free, 0k shrd, 44908k buff
145636k actv, 1708k in_d, 5584k in_c
Swap: 1044216k av, 0k used, 1044216k free 80996k cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
1 root 15 0 476 476 424 S 0.0 0.0 0:03 0 init
2 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 keventd
3 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kapmd
4 root 34 19 0 0 0 SWN 0.0 0.0 0:01 0 ksoftirqd_CPU0
9 root 25 0 0 0 0 SW 0.0 0.0 0:00 0 bdflush
5 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kswapd
6 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kscand/DMA
7 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kscand/Normal
8 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kscand/HighMem
10 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kupdated
11 root 24 0 0 0 0 SW 0.0 0.0 0:00 0 mdrecoveryd
15 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kjournald
621 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kjournald
998 root 15 0 580 580 504 S 0.0 0.1 0:00 0 syslogd
1002 root 15 0 428 428 376 S 0.0 0.0 0:00 0 klogd
1020 rpc 24 0 548 548 472 S 0.0 0.1 0:00 0 portmap
1039 rpcuser 25 0 688 688 608 S 0.0 0.1 0:00 0 rpc.statd
1106 root 24 0 492 492 444 S 0.0 0.0 0:00 0 apmd
1147 root 15 0 1504 1504 1260 S 0.0 0.2 0:00 0 sshd
1161 root 24 0 852 852 732 S 0.0 0.1 0:00 0 xinetd
1182 root 15 0 2588 2588 1928 S 0.0 0.5 0:00 0 sendmail
1191 smmsp 15 0 2320 2312 1784 S 0.0 0.4 0:00 0 sendmail
1209 root 25 0 32348 31M 8904 S 0.0 6.3 0:05 0 java
1218 root 15 0 568 568 508 S 0.0 0.1 0:00 0 crond
1236 root 15 0 1888 1888 1408 S 0.0 0.3 0:00 0 cupsd
1302 daemon 15 0 528 528 472 S 0.0 0.1 0:00 0 atd
1310 root 21 0 396 396 348 S 0.0 0.0 0:00 0 mingetty
1311 root 21 0 396 396 348 S 0.0 0.0 0:00 0 mingetty
1312 root 21 0 400 400 348 S 0.0 0.0 0:00 0 mingetty
1313 root 21 0 400 400 348 S 0.0 0.0 0:00 0 mingetty
1314 root 21 0 400 400 348 S 0.0 0.0 0:00 0 mingetty
1315 root 21 0 400 400 348 S 0.0 0.0 0:00 0 mingetty
3518 root 23 0 1364 1364 1096 S 0.0 0.2 0:00 0 bash
3555 root 23 0 1020 1020 844 R 0.0 0.1 0:00 0 top
其中进程1209,就是我的应用系统,运行一段时间后,其中在RSS列的值会增加。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这个问题困扰我好久了,一直没有办法.
谢谢,那位高手可以解决?
根本不是问题。
307632k free,
有问题吗?