Re: ~500 megs cached yet 2.6.5 goes into swap hell

From: Brett E.
Date: Wed Apr 28 2004 - 19:05:33 EST


Brett E. wrote:

Same thing happens on 2.4.18.

I attached sar, slabinfo and /proc/meminfo data on the 2.6.5 machine. I reproduce this behavior by simply untarring a 260meg file on a production server, the machine becomes sluggish as it swaps to disk. Is there a way to limit the cache so this machine, which has 1 gigabyte of memory, doesn't dip into swap?

Thanks,

Brett


I created a hack which allocates memory causing cache to go down, then exits, freeing up the malloc'ed memory. This brings free memory up by 400 megs and brings the cache down to close to 0, of course the cache grows right afterwards. It would be nice to cap the cache datastructures in the kernel but I've been posting about this since September to no avail so my expectations are pretty low.

Here's the code:

#define ALLOC_SIZE 1024*1024
#define NUM_ALLOC 400

int main() {
char* ptr;
int i,j;

for(i=0;i<NUM_ALLOC;i++) {
ptr = (void*)malloc(ALLOC_SIZE);
for(j=0;j<ALLOC_SIZE;j+=512) {
ptr[j]=0;
}
}

return 0;
}


...
Maybe I can make it a hack of all hacks and have it parse out "Cached" from /proc/meminfo and allocate that many bytes.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/