Aside from that, the usual advice is to tune the dirty_ratio and
dirty_background to flush frequently, to prevent each individual flush
from getting too large and swamping the storage system. But in addition
(and counter) to that, you want to tune the dirty_expire to be as slow
as possible, to give any cached pages more chance to be reused before
being flushed. It seems you already have pretty small dirty_ratio and
dirty_background but you might want to try decreasing them even more,
particularly if you're on one of the buggy kernels.