Thread (26 messages) 26 messages, 6 authors, 2014-09-23

Re: ARC-1120 and MD very sloooow

From: Dave Chinner <david@fromorbit.com>
Date: 2013-11-26 06:14:59
Also in: linux-xfs

On Mon, Nov 25, 2013 at 09:58:21PM -0600, Stan Hoeppner wrote:
On 11/25/2013 8:52 PM, Dave Chinner wrote:
...
quoted
sunit/swidth is in filesystem blocks, not sectors. Hence
sunit is 1MB, swidth = 2MB. While it's not quite correct
(su=512k,sw=1m), it's not actually a problem...
Well that's what I thought as well, and I was puzzled by the 8 blocks
value for the log sunit.  So I double checked before posting, and 'man
mkfs.xfs' told me

	sunit=value
              This is used to specify the stripe unit for a RAID device
              or a logical volume. The  value  has  to  be specified in
              512-byte block units.

So apparently the units of 'sunit' are different depending on which XFS
tool one is using. 
No they don't. sunit as a mkfs input value is determined by 512 byte
units. The output is given in units of "blks" i.e. the log block
size:

$ mkfs.xfs -N -l sunit=64 /dev/vdb
....
log      =internal log           bsize=4096   blocks=12800, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1

Which is given by the "bsize=4096" variable and so are, in this
case, 4k in size.  input = 64 * 512 bytes = 8 * 4096 bytes = output

Remember, you can specify su rather than sunit, and they are
specified in sectors, filesystem blocks or bytes, and the output is
still in units of log block size:

# mkfs.xfs -N -b size=4096 -l su=8b /dev/vdb
....
log      =internal log           bsize=4096   blocks=12800, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1

# mkfs.xfs -N -l su=32k /dev/vdb
....
log      =internal log           bsize=4096   blocks=12800, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1

IOws, the input units can vary, but the output units are always the
same.
That's a bit confusing.  And 'man xfs_info'
(xfs_growfs) doesn't tell us that sunit is given in filesystem blocks.
I'm using xfsprogs 3.1.4 so maybe these have been corrected since.
It might seem confusing at first, but it's actually quite
consistent...
quoted
Again, lsunit is in filesystem blocks, so it is 32k, not 4k. And
yes, the default lsunit when the sunit > 256k is 32k. So, nothing
wrong there, either.
So where should I have looked to confirm sunit reported by xfs_info is
in fs block (4KB) multiples, not the in the 512B multiples of mkfs.xfs?
Explained above.

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help