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: 408

Filed under:
|
|

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

Related posts about linux

Related posts about disk