Messages in this thread | | | Date | Tue, 24 Mar 2009 13:24:18 -0700 | Subject | Re: Linux 2.6.29 | From | David Rees <> |
| |
On Tue, Mar 24, 2009 at 6:20 AM, Theodore Tso <tytso@mit.edu> wrote: > However, what I've found, though, is that if you're just doing a local > copy from one hard drive to another, or downloading a huge iso file > from an ftp server over a wide area network, the fsync() delays really > don't get *that* bad, even with ext3. At least, I haven't found a > workload that doesn't involve either dd if=/dev/zero or a massive > amount of data coming in over the network that will cause fsync() > delays in the > 1-2 second category. Ext3 has been around for a long > time, and it's only been the last couple of years that people have > really complained about this; my theory is that it was the rise of > > 10 megabit ethernets and the use of systems like distcc that really > made this problem really become visible. The only realistic workload > I've found that triggers this requires a fast network dumping data to > a local filesystem.
It's pretty easy to reproduce it these days. Here's my setup, and it's not even that fancy: Dual core Xeon, 8GB RAM, SATA RAID1 array, GigE network. All it takes is a single client writing a large file using Samba or NFS to introduce huge latencies.
Looking at the raw throughput, the server's disks can sustain 30-60MB/s writes (older disks), but the network can handle up to ~100MB/s. Throw in some other random seeky IO on the server, a bunch of fragmentation and it's sustained write throughput in reality for these writes is more like 10-25MB/s, far slower than the rate at which a client can throw data at it.
5% dirty_ratrio * 8GB is 400MB. Let's say in reality the system is flushing 20MB/s to disk, this is a delay of up to 20 seconds. Let's say you have a user application which needs to fsync a number of small files (and unfortunately they are done serially) and now I've got applications (like Firefox) which basically remain unresponsive the entire time the write is being done.
> (I'm sure someone will be ingeniuous enough to find something else > though, and if they're interested, I've attached an fsync latency > tester to this note. If you find something; let me know, I'd be > interested.)
Thanks - I'll give the program a shot later with my test case and see what it reports. My simple test case[1] for reproducing this has reported 6-45 seconds depending on the system. I'll try it with the previously mentioned workload as well.
-Dave
[1] http://bugzilla.kernel.org/show_bug.cgi?id=12309#c249 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |