论坛首页 综合技术论坛

这算内存泄漏吗?如何找回丢失的内存?

浏览 4664 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-17  
系统:centos 4.4_x86_64
硬件:4 xeon cpu,4G内存
主要运行的软件有:oracle9i_64,vsftpd,两个tomcat(分别是jdk1.4,jdk1.5),telnet-server,cvs,mysql
目前的问题:运行oracle的存储过程结束后内存没有释放,目前没有运行任何特占内存的程序,但空余内存只剩20M左右,并且一直保持在20M左右。
top -b 结果如下:(放到excel里面按%mem排序了一下)

top - 09:53:52 up 4 days, 15:15,  2 users,  load average: 0.00, 0.00, 0.00
Tasks: 167 total,   1 running, 166 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0% us,  0.0% sy,  0.0% ni, 99.9% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:   4038128k total,  4020404k used,    17724k free,    46488k buffers
Swap:  2031608k total,    53156k used,  1978452k free,  3264428k cached

PID        USER        PR        NI        VIRT        RES        SHR        S        %CPU        %MEM        TIME+        COMMAND
19928        oracle        16        0        1309m        314m        34m        S        0        8        04:40.8        java
4812        oracle        16        0        1057m        245m        243m        S        0        6.2        00:42.4        oracle
4814        oracle        16        0        1057m        245m        243m        S        0        6.2        00:42.5        oracle
5849        oracle        16        0        558m        207m        15m        S        0        5.2        02:19.0        java
4820        oracle        16        0        1056m        61m        60m        S        0        1.6        00:07.7        oracle
4818        oracle        16        0        1056m        26m        24m        S        0        0.7        00:05.3        oracle
20063        oracle        16        0        1056m        24m        22m        S        0        0.6        00:00.7        oracle
5672        gdm        16        0        157m        14m        8136        S        0        0.4        00:00.9        gdmgreeter
20870        oracle        15        0        1056m        17m        16m        S        0        0.4        00:00.0        oracle
4248        root        16        0        25080        11m        1532        S        0        0.3        00:05.3        hald
4816        oracle        16        0        1060m        11m        10m        S        0        0.3        00:32.9        oracle
4822        oracle        16        0        1055m        12m        11m        S        0        0.3        00:00.0        oracle
4860        mysql        16        0        33400        13m        2632        S        0        0.3        00:00.1        mysqld
4861        mysql        16        0        33400        13m        2632        S        0        0.3        00:00.0        mysqld
4862        mysql        20        0        33400        13m        2632        S        0        0.3        00:00.0        mysqld
4863        mysql        16        0        33400        13m        2632        S        0        0.3        00:00.0        mysqld
4864        mysql        17        0        33400        13m        2632        S        0        0.3        00:00.0        mysqld
4865        mysql        20        0        33400        13m        2632        S        0        0.3        00:00.0        mysqld
4867        mysql        16        0        33400        13m        2632        S        0        0.3        00:00.0        mysqld
4868        mysql        16        0        33400        13m        2632        S        0        0.3        00:00.0        mysqld
4869        mysql        16        0        33400        13m        2632        S        0        0.3        00:00.0        mysqld
4870        mysql        16        0        33400        13m        2632        S        0        0.3        00:00.3        mysqld
5568        root        15        0        58896        11m        2480        S        0        0.3        00:20.3        X
20672        mysql        16        0        33400        13m        2632        S        0        0.3        00:01.2        mysqld
20860        mysql        16        0        33400        13m        2632        S        0        0.3        00:00.0        mysqld
4600        oracle        17        0        104m        8008        4964        S        0        0.2        00:00.3        dbsnmp
4810        oracle        16        0        1056m        9548        8632        S        0        0.2        00:06.9        oracle
4824        oracle        16        0        1056m        7944        7092        S        0        0.2        00:00.0        oracle
4826        oracle        16        0        1056m        8504        7044        S        0        0.2        00:00.0        oracle
4102        root        16        0        28964        2432        1008        S        0        0.1        00:01.4        sendmail
4153        htt        18        0        36176        3384        2740        S        0        0.1        00:00.0        htt_server
4458        oracle        16        0        26848        4468        3416        S        0        0.1        00:00.1        tnslsnr
4897        root        15        0        91188        2920        2332        S        0        0.1        00:00.0        gdm-binary
5563        root        16        0        102m        2604        1908        S        0        0.1        00:00.0        gdm-binary
9545        root        16        0        72164        2212        1636        S        0        0.1        00:00.0        cupsd
20931        oracle        15        0        7308        996        708        R        2        0        00:00.0        top
1        root        16        0        5784        588        488        S        0        0        00:02.0        init

后面的进程%mem都是0了, %mem 相加 只有 35.5%
   发表时间:2007-04-17  
我给你一个公式:

物理内存 + 占用的swap = 空闲物理内存 + Memory buffer + Disk Cache + 使用掉的驻留内存

4G + 53MB = 17MB + 46MB + 3.2GB + ?

所以使用掉的驻留内存差不多有700-800MB

再累计你top出来那些进程的驻留内存数量,应该是八九不离十的。

从你的操作系统的性能数据来看,物理内存还空闲的很,大部分物理内存被操作系统用做disk cache,可能你的系统IO还是稍微有点频繁的。swap也占用了一点,说明操作系统曾经出现过短暂的内存吃紧的状况,把一些闲置进程换到了swap上去了,而这些闲置进程一直也没有再被使用到过,所以一直待在swap里面没有出来过。

0 请登录后投票
   发表时间:2007-04-20  
惭愧,对linux的内存使用完全没有概念。
看了几篇文章,目前只能理解到:应用程序的角度来说,可用内存=系统free memory+buffers+cached

怀疑内存问题是因为一个tomcat5.0 设置 -server -Xms256m -Xmx1024m 根本没有成功,很容易造成outOfMemory,看来还是设置CATALINA_OPTS没生效的原因
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics