2 bonnies can stop disk activity permanently
Bruce Evans
bde at zeta.org.au
Mon Oct 9 12:38:28 PDT 2006
On Mon, 9 Oct 2006, Fluffles.net wrote:
> I'm the "veronica" Arne mentioned in the freebsd-fs mailinglist.
> Regarding the effectiveness of a higher blocksize, these are my findings:
>
> areca RAID5 (8x da, 128KB stripe, default newfs, NCQ enabled)
> -------Sequential Output-------- ---Sequential Input--
> --Random--
> -Per Char- --Block--- -Rewrite-- -Per Char- --Block---
> --Seeks---
> Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU
> /sec %CPU
> ARC8xR5 8480 119973 91.3 247178 58.6 67862 17.5 90426 86.9 172490 24.0
> 120.7 0.5
>
> areca RAID5 (8x da, 128KB stripe, 64KB blocksize newfs, NCQ enabled)
> -------Sequential Output-------- ---Sequential Input--
> --Random--
> -Per Char- --Block--- -Rewrite-- -Per Char- --Block---
> --Seeks---
> Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU
> /sec %CPU
> ARC8xR5 8480 128920 97.8 265920 58.9 116787 31.0 103261 97.8 392970
> 53.8 119.8 0.6
>
> As you can see, the block read increased from ~172MB/s to ~392MB/s,
> quite significant increase. Also the reqrite speed increased from
> ~67MB/s to ~116MB/s.
>
> Ofcourse these tests are on a brand clean filesystem, which might not
> tally with real-life crowded filesystems. But at least there is much
> ...
This is a bit surprising. FreeBSD is supposed to cluster the i/o so
that (especially for large files on new file systems) almost all i/o
is done in blocks of size 64K or 128K.
I suspect the problems are that the 64K-block i/o is usually perfectly
misaligned unless the fs itself has 64K-blocks and the fs's partition
starts on a 64K-block boundary, and that some hardware or firmware
(mainly RAIDs) want the blocks to be aligned. I'm not very familiar
with RAIDs but think it would take a fairly advanced/expensive one to
reblock all the i/at so that the alignment doesn't matter. It would
take more advanced/complicated clustering code or better buffering code
than FreeBSD has to do the reblocking at the clustering or buffering
level. Perhaps even 64K-blocks are too small with your RAID's stripe
size of 128K.
Bruce
More information about the freebsd-fs
mailing list