Anders Johansson wrote:
On Wednesday 14 November 2007 22:24:19 Aaron Kulkis wrote:
What makes disk filesystems slow is not the code run on the CPU...it's the operating speed of the disk-head actuator.
It's not the filesystem that's slow, it's the DISK DRIVES that are slow.
So what is your theory on why file system benchmarks produce widely different results? If what you say is true, and the only bottleneck is the drive, then they should all perform the same, right?
Some file systems are faster than others, and the difference can be staggering.
Disk layouts, mostly. How much disk head movement is need to complete an I/O transaction to the point that write(2) returns and the program resumes. Journaling is one of the big breakthroughs here -- all of the writes are put in a sequential strip of blocks on the disk drive...both the file contents AND the metadata are in contiguous blocks in the journal...even though in the actual file being written to, the meta data is usually in a block many many tracks away from where the contents of the file is located. The modification to the ACTUAL filesystem structure is delayed. Once all the write()s are completed, the filesystem driver (JFS or XFS or what have you) then starts processing the journal as the system permits... writing to the journal is a higher priority operation than processing the journal (unless the journal is full). It's all about disk-head movement. Disk DRIVES are slowwwwwwwwwww. Do a performance test using solid state devices instead of disk drives, and the differences between filesystems are negligible...and the filesystems which are fastest on hard disk drives (JFS, xfs, etc) due to the use of journaling are the SLOWEST on solid-state storage. Why? Because the disk-head movement performance penalty does not exist when there's no disk head. And the journaling trick to avoid it becomes a liability, because the write-journal/read-journal/write-filesystem methodology now just sucks up bandwidth, rather than eliminating disk-head movement during high volume file-writing activity. This is all fairly obvious, and doesn't even take inspection of the code to figure out.
Anders
-- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org