On Mon, Mar 30, 2009 at 8:33 PM, Vladislav Bolkhovitin <vst@xxxxxxxx> wrote: > Bart Van Assche, on 03/30/2009 10:06 PM wrote: >> These are indeed interesting results. There are some aspects of the >> test setup I do not understand however: >> * All tests have been run with buffered I/O instead of direct I/O >> (iflag=direct / oflag=direct). My experience is that the results of >> tests with direct I/O are easier to reproduce (less variation between >> runs). So I have been wondering why the tests have been run with >> buffered I/O instead ? > > Real applications use buffered I/O, hence it should be used in tests. It > evaluates all the storage stack on both initiator and target as a whole. > The results are very reproducible, variation is about 10%. Most applications do indeed use buffered I/O. Database software however often uses direct I/O. It might be interesting to publish performance results for both buffered I/O and direct I/O. A quote from the paper "Asynchronous I/O Support in Linux 2.5" by Bhattacharya e.a. (Linux Symposium, Ottawa, 2003): Direct I/O (raw and O_DIRECT) transfers data between a user buffer and a device without copying the data through the kernel’s buffer cache. This mechanism can boost performance if the data is unlikely to be used again in the short term (during a disk backup, for example), or for applications such as large database management systems that perform their own caching. Bart. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html