[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Disk I/O slowness



> On Jul 30, 2026, at 1:04 PM, Stefan Monnier <monnier@iro.umontreal.ca> wrote:
> 
>> I'm getting some weird latency issues with fsync on the RAID disk
>> (/home on /dev/md125): (Caveat: I'm doing a file transfer that is
>> writing to /home, so I might expect some latency, but nothing
>> like this.)
>> 
>> $ for i in {1..5}; do time sync; done 2>&1 | grep real
>> real	0m21.647s
>> real	0m11.770s
>> real	0m5.234s
>> real	0m3.023s
>> real	0m0.462s
> 
> Why do you expect "nothing like this"?
> 
> I have no idea if your numbers are normal or not, but 21s on a 3-disk
> RAID writing at max speed (i.e. 6Gb/s) is 6Gbx21 =~ 16GB.
> 
> So if the file transfer has accumulated 16GB of data in the write queue,
> it's perfectly normal for `sync` to take 20s.
> And if the file transfer goes at about 400MB/s, you'll have transferred
> about 8GB during those 20s, so it stands to reason that the next sync
> will still have 8GB to write to disk which will take another 10s,
> and then 5s for the next, ...

Good thoughts.  And fair enough.  The sync output was not the original problem; that was something I was using to try to narrow things down, but I can see how it might be a red herring.

The problem originally manifested itself when I was running commands that called the fsync() system call, inducing long I/O delays.  For example, running `sudo -e ...` or even `man ...` (because of writing to `lesshst` in home directory).  What helped me narrow it down a bit was noticing the `sudo man foo` seemed to have no delay issues (because it wrote to /root, not on RAID), while `man foo` experienced major delays (because it wrote to /home on RAID).  I used strace to narrow it down to calls to fsync().  I was using sync to reproduce the issues from the command line.

Casey

Reply to: