limit linux background flush (dirty pages)
Posted
by korkman
on Server Fault
See other posts from Server Fault
or by korkman
Published on 2010-03-25T21:48:28Z
Indexed on
2010/03/25
21:53 UTC
Read the original article
Hit count: 429
Background flushing in linux happens when either too much written data is pending (adjustable via /proc/sys/vm/dirty_background_ratio) or a timeout for pending writes is reached (/proc/sys/vm/dirty_expire_centisecs). Unless another limit is being hit (/proc/sys/vm/dirty_ratio), more written data may be cached. Further writes will block.
In theory, this should create a background process writing out dirty pages without disturbing other processes. In practice, it does disturb any process doing uncached reading or synchronous writing. Badly. This is because the background flush actually writes at 100% device speed and any other device requests at this time will be delayed (because all queues and write-caches on the road are filled).
Is there any way to limit the amount of requests per second the flushing process performs, or otherwise effectively prioritize other device I/O?
© Server Fault or respective owner