Hello Matthew,

Thursday, March 22, 2007, 8:07:14 PM, you wrote:

MA> Robert Milkowski wrote:
>> While lsize is the same for both files asize is smaller fr the second
>> one. Why is it? When is is possible? Both file systems have 
>> compression turned off and default recordsize. Diff claims both files
>> to be the same.

MA> Metadata (eg, "DMU dnode", and indirect blocks for "ZFS plain file",
MA> which you can see broken out by using more -b's) is always compressed.
MA> Because the metadata is necessarily different (there are different block
MA> pointers, also the object numbers could be allocated differently, though
MA> not in your situation), it can compress different amounts.

MA> So, this is always possible, and in fact likely.

Well, I don't know.
DMU in both cases is so small that it doesn't really matter.
Both are the sime files (diff confirms that) about 1.6GB in size and
the actual on disk size is more than 20% different. That's really a big
difference just for one large file.

zdb -b (or -bbb) doesn't work here (b56):

bash-3.00# zdb -b solaris/d100 809
Dataset solaris/d100 [ZPL], ID 189, cr_txg 779704, 1.64G, 807 objects
bash-3.00# zdb -bbb solaris/d100 809
Dataset solaris/d100 [ZPL], ID 189, cr_txg 779704, 1.64G, 807 objects
bash-3.00# zdb -bbbvvv solaris/d100 809
Dataset solaris/d100 [ZPL], ID 189, cr_txg 779704, 1.64G, 807 objects


bash-3.00# zdb -vvvv solaris/d100 809 >/tmp/a
bash-3.00# zdb -vvvv solaris/d100-copy1 809 >/tmp/b
bash-3.00# cat /tmp/a | wc -l
   13070
bash-3.00# cat /tmp/b | wc -l
   10295

bash-3.00# tail -10 /tmp/a
        64d00000   L0 0:213420000:20000 20000L/20000P F=1 B=831385
        64d20000   L0 0:213440000:20000 20000L/20000P F=1 B=831385
        64d40000   L0 0:213460000:20000 20000L/20000P F=1 B=831385
        64d60000   L0 0:213480000:20000 20000L/20000P F=1 B=831385
        64d80000   L0 0:2134a0000:20000 20000L/20000P F=1 B=831385
        64da0000   L0 0:2134c0000:20000 20000L/20000P F=1 B=831385
        64dc0000   L0 0:ea1c0000:20000 20000L/20000P F=1 B=831388

                segment [0000000000000000, 0000000065000000) size 1.58G

bash-3.00# tail -10 /tmp/b
        64d00000   L0 0:116a60000:20000 20000L/20000P F=1 B=831417
        64d20000   L0 0:116a80000:20000 20000L/20000P F=1 B=831417
        64d40000   L0 0:116aa0000:20000 20000L/20000P F=1 B=831417
        64d60000   L0 0:116ac0000:20000 20000L/20000P F=1 B=831417
        64d80000   L0 0:116ae0000:20000 20000L/20000P F=1 B=831417
        64da0000   L0 0:116b00000:20000 20000L/20000P F=1 B=831417
        64dc0000   L0 0:116b20000:20000 20000L/20000P F=1 B=831417

                segment [0000000014c40000, 0000000026000000) size  276M

bash-3.00#

What's the last line about?
Also only /tmp/a has a Deadlist entries:
    Deadlist: 33 entries, 235K (114K/114K comp)

        Item   0: 0:191e0ea00:e00 4000L/e00P F=0 B=831102
        Item   1: 0:ea1a2000:800 4000L/800P F=0 B=831388
        Item   2: 0:191d58000:1000 4000L/1000P F=0 B=831102
        Item   3: 0:2507b2200:1200 4000L/1200P F=0 B=831294
        Item   4: 0:191e06200:1200 4000L/1200P F=0 B=831102
        Item   5: 0:191e07400:1200 4000L/1200P F=0 B=831102
        Item   6: 0:250186000:1000 4000L/1000P F=0 B=831294
        Item   7: 0:191e0b800:e00 4000L/e00P F=0 B=831102
        Item   8: 0:191e0d800:1200 4000L/1200P F=0 B=831102
        Item   9: 0:191e03e00:1200 4000L/1200P F=0 B=831102
        Item  10: 0:250188000:1000 4000L/1000P F=0 B=831294
        Item  11: 0:191e09800:1200 4000L/1200P F=0 B=831102
        Item  12: 0:191e10a00:1200 4000L/1200P F=0 B=831102
        Item  13: 0:191e02c00:1200 4000L/1200P F=0 B=831102
        Item  14: 0:191e05000:1200 4000L/1200P F=0 B=831102
        Item  15: 0:191e08600:1200 4000L/1200P F=0 B=831102
        Item  16: 0:2507b3400:e00 4000L/e00P F=0 B=831294
        Item  17: 0:191d57000:1000 4000L/1000P F=0 B=831102
        Item  18: 0:191d56000:1000 4000L/1000P F=0 B=831102
        Item  19: 0:250189000:1000 4000L/1000P F=0 B=831294
        Item  20: 0:191d59000:1000 4000L/1000P F=0 B=831102
        Item  21: 0:191e0f800:1200 4000L/1200P F=0 B=831102
        Item  22: 0:191e12e00:1200 4000L/1200P F=0 B=831102
        Item  23: 0:191e11c00:1200 4000L/1200P F=0 B=831102
        Item  24: 0:191e0aa00:e00 4000L/e00P F=0 B=831102
        Item  25: 0:25339a400:e00 4000L/e00P F=0 B=831342
        Item  26: 0:ea1a2800:800 4000L/800P F=0 B=831388
        Item  27: 0:ea1a1c00:400 4000L/400P F=0 B=831388
        Item  28: 0:ea1a3000:400 4000L/400P F=0 B=831388
        Item  29: 0:ea1a3400:400 4000L/400P F=0 B=831388
        Item  30: 0:ea1a3800:400 4000L/400P F=0 B=831388
        Item  31: 0:ea1a3c00:400 4000L/400P F=0 B=831388
        Item  32: 0:ea1a4000:200 400L/200P F=0 B=831388

What are those?


And even if that is to be expected (such a big difference in actual
space utilization) something is far from perfect here. Both file
systems are in the same pool and over 20% difference in size on just
one large file is huge - perhaps some algorithms are suboptimal.




-- 
Best regards,
 Robert                            mailto:[EMAIL PROTECTED]
                                       http://milek.blogspot.com

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to