免费注册 查看新帖 |

Chinaunix

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

AIX的内存耗尽问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-02-26 16:28 |只看该作者 |倒序浏览
环境:\r\n====\r\n主机型号:H85(两台双机)    CPU:4个    内存:8G\r\n系统:AIX4.3.3    C编译器:C Compliler 3.6.6\r\n\r\n问题:\r\n====\r\n      我们在该系统上开发了一套结算系统,主要是批量数据的处理,\r\n开发语言为ANSI C,系统运行一段时间(一两天)后内存就被耗尽,\r\n只好重启机器。\r\n    大家帮我分析一下,是何原因导致如此状况?\r\n\r\n我的测试程序:\r\n=============\r\n#include <stdio.h>;\r\n#include <stdlib.h>;\r\n#include <unistd.h>;\r\n#include <errno.h>;\r\n\r\nint main()\r\n{\r\n        int size;\r\n        char *buf;\r\n        pid_t pid;\r\n        char cmd1[256];\r\n        char cmd2[256];\r\n        char cmd3[256];\r\n        char cmd4[256];\r\n        \r\n        pid = getpid();\r\n        printf(\"pid=%d\\n\", pid);\r\n        \r\n        sprintf(cmd1, \"date >;>; testmemG.txt\";\r\n        sprintf(cmd2, \"svmon -G >;>; testmemG.txt\";\r\n        sprintf(cmd3, \"date >;>; testmemP.txt\";\r\n        sprintf(cmd4, \"svmon -P %d >;>; testmemP.txt\", pid);\r\n        \r\n        system(\"rm testmemG.txt testmemP.txt\";\r\n        \r\n        system(cmd1);\r\n        system(cmd2);\r\n        system(cmd3);\r\n        system(cmd4);\r\n        \r\n        sleep(5);\r\n        \r\n        size = 10*1024*1024;\r\n        printf(\"size=%d\\n\", size);\r\n        \r\n        buf = (char*)malloc(size);\r\n        if (buf == NULL)\r\n        {\r\n                printf(\"malloc error, err=%s\\n\", strerror(errno));\r\n                exit(1);\r\n        }\r\n        memset(buf, 0, size);\r\n        \r\n        sleep(5);\r\n        \r\n        system(cmd1);\r\n        system(cmd2);\r\n        system(cmd3);\r\n        system(cmd4);\r\n        \r\n        free(buf);\r\n        buf = NULL;\r\n        \r\n        sleep(5);\r\n        \r\n        system(cmd1);\r\n        system(cmd2);\r\n        system(cmd3);\r\n        system(cmd4);\r\n        \r\n        return 0;\r\n}\r\n\r\n测试结果:\r\n=========\r\n1. testmemG.txt\r\nWed Feb 26 16:00:18 CST 2003\r\n\r\n               size      inuse       free        pin    virtual           \r\nmemory      2097141     433492    1663649      98900     322744 \r\npg space     524288        854\r\n\r\n               work       pers       clnt\r\npin           98706        194          0\r\nin use       414994      18498          0\r\n\r\nWed Feb 26 16:00:28 CST 2003\r\n\r\n               size      inuse       free        pin    virtual           \r\nmemory      2097141     436056    1661085      98900     325306 \r\npg space     524288        854\r\n\r\n               work       pers       clnt\r\npin           98706        194          0\r\nin use       417557      18499          0\r\n\r\nWed Feb 26 16:00:33 CST 2003\r\n\r\n               size      inuse       free        pin    virtual           \r\nmemory      2097141     436360    1660781      98901     325577 \r\npg space     524288        854\r\n\r\n               work       pers       clnt\r\npin           98707        194          0\r\nin use       417859      18501          0\r\n\r\n2. testmemP.txt\r\nWed Feb 26 16:00:18 CST 2003\r\n\r\n-------------------------------------------------------------------------------\r\n     Pid Command        Inuse      Pin     Pgsp  Virtual   64-bit    Mthrd\r\n   29702 testmem         7200     2338      182     4333        N        N\r\n\r\n  Vsid     Esid Type Description           Inuse   Pin Pgsp Virtual Addr Range\r\n     0        0 work kernel seg             4091  1529  182  3475   0..21828 :\r\n                                                                    65474..65535\r\n e001c        d work shared library text    3085   808    0   841   0..65535\r\n a8635        f work shared library data      12     0    0     6   0..1499\r\n c0658        2 work process private          11     1    0    11   0..0 :\r\n                                                                    65313..65535\r\n c8679        1 pers code,/dev/lvapp:3727      1     0    -     -   0..0\r\n                     43\r\nWed Feb 26 16:00:28 CST 2003\r\n\r\n-------------------------------------------------------------------------------\r\n     Pid Command        Inuse      Pin     Pgsp  Virtual   64-bit    Mthrd\r\n   29702 testmem         9763     2338      182     6895        N        N\r\n\r\n  Vsid     Esid Type Description           Inuse   Pin Pgsp Virtual Addr Range\r\n     0        0 work kernel seg             4091  1529  182  3475   0..21828 :\r\n                                                                    65474..65535\r\n e001c        d work shared library text    3085   808    0   841   0..65535\r\n c0658        2 work process private        2571     1    0  2571   0..2560 :\r\n                                                                    65313..65535\r\n a8635        f work shared library data      15     0    0     8   0..1499\r\n c8679        1 pers code,/dev/lvapp:3727      1     0    -     -   0..0\r\n                     43\r\nWed Feb 26 16:00:33 CST 2003\r\n\r\n-------------------------------------------------------------------------------\r\n     Pid Command        Inuse      Pin     Pgsp  Virtual   64-bit    Mthrd\r\n   29702 testmem         9763     2338      182     6895        N        N\r\n\r\n  Vsid     Esid Type Description           Inuse   Pin Pgsp Virtual Addr Range\r\n     0        0 work kernel seg             4091  1529  182  3475   0..21828 :\r\n                                                                    65474..65535\r\n e001c        d work shared library text    3085   808    0   841   0..65535\r\n c0658        2 work process private        2571     1    0  2571   0..2560 :\r\n                                                                    65313..65535\r\n a8635        f work shared library data      15     0    0     8   0..1499\r\n c8679        1 pers code,/dev/lvapp:3727      1     0    -     -   0..0\r\n                     43\r\n\r\n使用malloc分配的内存,在调用free之后,内存并没有被释放,为什么?\r\n百思不知其解,望高人指点,就此谢过!

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

AIX的内存耗尽问题

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

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

AIX的内存耗尽问题

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

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

AIX的内存耗尽问题

高人啊!都是高人!我完全看不懂哟!!!\r\n\r\n加油加油!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP