免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2171 | 回复: 3
打印 上一主题 下一主题

[小机硬件] AIX的内存耗尽问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-02-26 16:28 |只看该作者 |倒序浏览
环境:
====
主机型号:H85(两台双机)    CPU:4个    内存:8G
系统:AIX4.3.3    C编译器:C Compliler 3.6.6

问题:
====
      我们在该系统上开发了一套结算系统,主要是批量数据的处理,
开发语言为ANSI C,系统运行一段时间(一两天)后内存就被耗尽,
只好重启机器。
    大家帮我分析一下,是何原因导致如此状况?

我的测试程序:
=============
#include <stdio.h>;
#include <stdlib.h>;
#include <unistd.h>;
#include <errno.h>;

int main()
{
        int size;
        char *buf;
        pid_t pid;
        char cmd1[256];
        char cmd2[256];
        char cmd3[256];
        char cmd4[256];
       
        pid = getpid();
        printf("pid=%d\n", pid);
       
        sprintf(cmd1, "date >;>; testmemG.txt";
        sprintf(cmd2, "svmon -G >;>; testmemG.txt";
        sprintf(cmd3, "date >;>; testmemP.txt";
        sprintf(cmd4, "svmon -P %d >;>; testmemP.txt", pid);
       
        system("rm testmemG.txt testmemP.txt";
       
        system(cmd1);
        system(cmd2);
        system(cmd3);
        system(cmd4);
       
        sleep(5);
       
        size = 10*1024*1024;
        printf("size=%d\n", size);
       
        buf = (char*)malloc(size);
        if (buf == NULL)
        {
                printf("malloc error, err=%s\n", strerror(errno));
                exit(1);
        }
        memset(buf, 0, size);
       
        sleep(5);
       
        system(cmd1);
        system(cmd2);
        system(cmd3);
        system(cmd4);
       
        free(buf);
        buf = NULL;
       
        sleep(5);
       
        system(cmd1);
        system(cmd2);
        system(cmd3);
        system(cmd4);
       
        return 0;
}

测试结果:
=========
1. testmemG.txt
Wed Feb 26 16:00:18 CST 2003

               size      inuse       free        pin    virtual           
memory      2097141     433492    1663649      98900     322744
pg space     524288        854

               work       pers       clnt
pin           98706        194          0
in use       414994      18498          0

Wed Feb 26 16:00:28 CST 2003

               size      inuse       free        pin    virtual           
memory      2097141     436056    1661085      98900     325306
pg space     524288        854

               work       pers       clnt
pin           98706        194          0
in use       417557      18499          0

Wed Feb 26 16:00:33 CST 2003

               size      inuse       free        pin    virtual           
memory      2097141     436360    1660781      98901     325577
pg space     524288        854

               work       pers       clnt
pin           98707        194          0
in use       417859      18501          0

2. testmemP.txt
Wed Feb 26 16:00:18 CST 2003

-------------------------------------------------------------------------------
     Pid Command        Inuse      Pin     Pgsp  Virtual   64-bit    Mthrd
   29702 testmem         7200     2338      182     4333        N        N

  Vsid     Esid Type Description           Inuse   Pin Pgsp Virtual Addr Range
     0        0 work kernel seg             4091  1529  182  3475   0..21828 :
                                                                    65474..65535
e001c        d work shared library text    3085   808    0   841   0..65535
a8635        f work shared library data      12     0    0     6   0..1499
c0658        2 work process private          11     1    0    11   0..0 :
                                                                    65313..65535
c8679        1 pers code,/dev/lvapp:3727      1     0    -     -   0..0
                     43
Wed Feb 26 16:00:28 CST 2003

-------------------------------------------------------------------------------
     Pid Command        Inuse      Pin     Pgsp  Virtual   64-bit    Mthrd
   29702 testmem         9763     2338      182     6895        N        N

  Vsid     Esid Type Description           Inuse   Pin Pgsp Virtual Addr Range
     0        0 work kernel seg             4091  1529  182  3475   0..21828 :
                                                                    65474..65535
e001c        d work shared library text    3085   808    0   841   0..65535
c0658        2 work process private        2571     1    0  2571   0..2560 :
                                                                    65313..65535
a8635        f work shared library data      15     0    0     8   0..1499
c8679        1 pers code,/dev/lvapp:3727      1     0    -     -   0..0
                     43
Wed Feb 26 16:00:33 CST 2003

-------------------------------------------------------------------------------
     Pid Command        Inuse      Pin     Pgsp  Virtual   64-bit    Mthrd
   29702 testmem         9763     2338      182     6895        N        N

  Vsid     Esid Type Description           Inuse   Pin Pgsp Virtual Addr Range
     0        0 work kernel seg             4091  1529  182  3475   0..21828 :
                                                                    65474..65535
e001c        d work shared library text    3085   808    0   841   0..65535
c0658        2 work process private        2571     1    0  2571   0..2560 :
                                                                    65313..65535
a8635        f work shared library data      15     0    0     8   0..1499
c8679        1 pers code,/dev/lvapp:3727      1     0    -     -   0..0
                     43

使用malloc分配的内存,在调用free之后,内存并没有被释放,为什么?
百思不知其解,望高人指点,就此谢过!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-02-26 17:24 |只看该作者

AIX的内存耗尽问题

程序没仔细看!不过我告诉你!程序中用这么多system调用!那是很不好的!
主机会出现core!而且实践证明,程序中尽量少用system调用!说不定和你的把内存耗尽有关!因为程序对于你的系统返回的命令的参数没有加以详细判断!
如果一旦命令有错!很难查!

论坛徽章:
0
3 [报告]
发表于 2003-02-26 22:41 |只看该作者

AIX的内存耗尽问题

lljj今天看来有点火气,一句一个“!”。
来人,给他消火!

论坛徽章:
0
4 [报告]
发表于 2003-02-27 00:36 |只看该作者

AIX的内存耗尽问题

高人啊!都是高人!我完全看不懂哟!!!

加油加油!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP