LINUX上运行JAVA,但内存不能释放,有何解决办法?

发布于 2022-10-02 17:50:38 字数 7821 浏览 14 评论 0

我的应用系统是基于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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岛徒 2022-10-09 17:50:38

这个问题困扰我好久了,一直没有办法.
谢谢,那位高手可以解决?

樱娆 2022-10-09 17:50:38

根本不是问题。
307632k free,
有问题吗?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文