caching - How to stop page cache for disk I/O in my linux system? -
here system based on linux2.6.32.12:
1 contains 20 processes occupy lot of usr cpu 2 needs write data on rate 100m/s disk , data not used recently.
what expect:
can run steadily , disk i/o not affect system.
my problem:
@ beginning, system run thought. time passed, linux cache lot data disk i/o, lead physical memory reducing. @ last, there not enough memory, linux swap in/out processes. cause i/o problem lot cpu time used i/o.
what have try:
try solved problem, "fsync" everytime write large block.but physical memory still decreasing while cached increasing.
how stop page cache here, it's useless me
more infomation:
when top show free 46963m, including cpu %wa low , vmstat shows no si or so.
when top show free 273m, %wa high affect processes , vmstat shows lot si , so.
i'm not sure changing affect overall performance.
maybe might use posix_fadvise(2) , sync_file_range(2) in program (and more fsync(2) or fdatasync(2)
or sync(2) or syncfs(2)
, ...). @ madvise(2), mlock(2) and munlock(2)
, , of course mmap(2) , munmap(2)
. perhaps ionice(1) help.
in reader process, might perhaps use readhahead(2) (perhaps in separate thread).
upgrading kernel (to 3.6 or better) could help: linux has improved on these points since 2.6.32 old.
Comments
Post a Comment