AIX进程内存随着malloc free调用循环而增加

时间:2012-11-08 17:35:50

标签: aix

我在AIX 6.1上运行此代码

while(true)
{
    int a = rand(); //generate a random integer value
    void* test = malloc(a*a); //allocate large chunk of memory block
    usleep(3000000); //sleep for 3 sec 
    free(test); // release memory block
}

使用MALLOCTYPE =存储桶 我的观察是 进程的驻留集大小(实际内存)和数据段大小不断增加。这可以通过命令ps v PID 进行检查 在topas中显示的pg sp值正在缓慢增加。

有人可以证明这种行为。

1 个答案:

答案 0 :(得分:1)

在free上,内存不会发布到AIX OS,但保留用于重用。使用MALLOCOPTIONS = disclaim,可以将内存释放回AIX操作系统,并且内存利用率不会增加。但是,由于MALLOCOPTIONS = disclaim,CPU利用率几乎是后者的2-3倍。