Our application has, on the order of 300 network sockets open at any
one time primarily for input. And only 1 or 2 for output. We
constantly malloc/free 100k of memory, I mean a lot. Plus do a fair
amount of SCSI IO. The threads never use more then like 300M of
memory at a time though caching memory fills up to like 2G. I believe
it would work on a system with 1G of memory.
With kernels 2.4.14 and before, including some AA kernels, the cache
would fill up memory and do a little swapping to disk and then start
the just-in-time free memory stuff. We where very happy when 2.4.16
seems smarter about this then previous version and never uses more
then ~2G of cachememory.
But, after running for a time, kswapd starts taking more CPU time then
the threads we are running and slowing down the processing. Is this
something wrong with kswapd or might modifying files in /proc/sys/vm/
fix this?
If modifying files in /proc/sys/vm/ can fix it, what should one
consider when modifying the /proc/sys/vm/kswapd and other files to
suit my applications? Also, in my /proc/sys/vm directory there is
only the following files:
$ ls /proc/sys/vm
bdflush max-readahead overcommit_memory pagetable_cache
kswapd min-readahead page-cluster
With 2.4.16 I though I should have others as described in the proc.txt
file, like `buffermem', `pagecache' and others. How do I get these,
and once I do have them some hints on how to modify there values to
optimize my applications might be useful.
Sven
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/