I recently raised PR 35195

Details are in the PR, but in summary; performing a large amount of
random IO to a large file through mmap, on a machine with a fair amount
of free RAM, will cause a following msync to take a significant amount
of time.

I believe this is because msync walks the dirty buffer list by age,
therefor will write blocks out in an order liable to cause a lot of
disk seeks.

My suggestion for a solution would be before starting the IO, to sort
the dirty buffer list by location on logical disk, and coalesce
adjacent blocks where possible.

Before I volunteer to implement something like this, please could
somebody check I'm correct in my analysis, and comment on the
feasibility of my suggested solution.

Thanks,

-- 
Andrew Mobbs - http://www.chiark.greenend.org.uk/~andrewm/

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to