vitaprimo
Dabbler
- Joined
- Jun 28, 2018
- Messages
- 27
[I'm sorry if this is too long, I wanted to be thorough but it sort of derailed]
I'm experimenting with record size for my little VM datastore server but my first attempt didn't go so good from the looks of it.
Performance dropped, well, technically I'm just moving the VMs into place from another storage server so I've no real basis for comparison except about a month back when I was using FreeNAS (v11 not 12, same hardware, same VMs) for the same purpose but over iSCSI and it was ridiculously fast and that was without metadata VDEV unlike now. The only problem with that is that VMDKs were being corrupted, I learned this is a thing on VMDK virtual disks over iSCSI so I had to switch to NFS.
I'm trying to find the right size for the records size but so far it's not that easy. Using this command to calculate a record sizes, once the special_small_blocks were set now yields a buttload of stuff:
That seems like it's super helpful if I knew what things mean. I took me forever just to find LSIZE, PSIZE, ASIZE which I already forgot but I do remember my the first results I got were for catwomen clothing sizes--not costume, clothing. You cannot forget that…as if catwomen roamed the streets and these kittens needed their fashion fix. Purr against or scratch a mannequin, IDK.
Anyway, my attention went immediately to the "compression bps":
I had not finished pretending I knew what it meant when below it was:
I know ditto is to duplicate. Not sure how relevant or useful it is because I'm not using duplication. I mean for my case of course, I'm sure it's useful for others.
Going all the way up there's:
Metadata VDEV is already filling up, but performance isn't there. Maybe I just need to wait for the big files to finish being rewritten, I read somewhere that because it's adjusting read and write sizes it's inherently bad at both. Then there was this thing about "read amplification" (or similar) caused by the wasted space in a block times the pieces to be read times your daily horoscpe, it was insane empty data it needed to read skyrocketing latency.
These are the resources I've found so far:
www.ixsystems.com
Is this info by chance included in something like manpages? Or where can I find what these things mean? (Please don't say "RFC#####"… )
I got ZFS for macOS to try things without messing up the array and realized the versions are vastly different while reading one of the manpages in both macOS and TrueNAS. If I can find this on manpages could you please tell me where/how?
Thanks!
I'm experimenting with record size for my little VM datastore server but my first attempt didn't go so good from the looks of it.
Performance dropped, well, technically I'm just moving the VMs into place from another storage server so I've no real basis for comparison except about a month back when I was using FreeNAS (v11 not 12, same hardware, same VMs) for the same purpose but over iSCSI and it was ridiculously fast and that was without metadata VDEV unlike now. The only problem with that is that VMDKs were being corrupted, I learned this is a thing on VMDK virtual disks over iSCSI so I had to switch to NFS.
I'm trying to find the right size for the records size but so far it's not that easy. Using this command to calculate a record sizes, once the special_small_blocks were set now yields a buttload of stuff:
Code:
vmbp:~ v$ ssh zx1 Last login: Thu Nov 5 01:07:51 2020 FreeBSD 12.2-PRERELEASE 4912790fb32(HEAD) TRUENAS TrueNAS (c) 2009-2020, iXsystems, Inc. All rights reserved. TrueNAS code is released under the modified BSD license with some files copyrighted by (c) iXsystems, Inc. For more information, documentation, help or support, go here: http://truenas.com Welcome to TrueNAS Warning: settings changed through the CLI are not written to the configuration database and will be reset on reboot. root@zx1[~]# zdb -LbbbA -U /data/zfs/zpool.cache z Traversing all blocks ... 81.3G completed (28249MB/s) estimated time remaining: 0hr 00min 00sec bp count: 4290680 ganged count: 0 bp logical: 202460729344 avg: 47186 bp physical: 94470026752 avg: 22017 compression: 2.14 bp allocated: 94835040256 avg: 22102 compression: 2.13 bp deduped: 0 ref>1: 0 deduplication: 1.00 Normal class: 79443218432 used: 2.66% Special class 15074242560 used: 3.16% additional, non-pointer bps of type 0: 14577 number of (compressed) bytes: number of bps 17: 3 * 18: 6 * 19: 7 * 20: 8 * 21: 0 22: 3 * 23: 1 * 24: 2 * 25: 9 * 26: 3 * 27: 1 * 28: 32 * 29: 36 * 30: 0 31: 1 * 32: 106 * 33: 39 * 34: 0 35: 0 36: 0 37: 4 * 38: 2 * 39: 2 * 40: 2 * 41: 8 * 42: 133 * 43: 0 44: 0 45: 1 * 46: 1 * 47: 1 * 48: 4 * 49: 2 * 50: 1 * 51: 2 * 52: 10 * 53: 15 * 54: 13 * 55: 11 * 56: 23 * 57: 15 * 58: 13 * 59: 11 * 60: 25 * 61: 17 * 62: 8 * 63: 7 * 64: 4 * 65: 16 * 66: 13 * 67: 17 * 68: 765 ***** 69: 16 * 70: 56 * 71: 168 ** 72: 15 * 73: 30 * 74: 53 * 75: 310 ** 76: 4 * 77: 17 * 78: 7 * 79: 6440 **************************************** 80: 127 * 81: 611 **** 82: 565 **** 83: 101 * 84: 69 * 85: 73 * 86: 522 **** 87: 134 * 88: 90 * 89: 97 * 90: 484 **** 91: 273 ** 92: 197 ** 93: 111 * 94: 149 * 95: 726 ***** 96: 74 * 97: 170 ** 98: 316 ** 99: 99 * 100: 173 ** 101: 66 * 102: 62 * 103: 57 * 104: 100 * 105: 38 * 106: 58 * 107: 44 * 108: 44 * 109: 31 * 110: 46 * 111: 100 * 112: 251 ** Dittoed blocks on same vdev: 25559 Blocks LSIZE PSIZE ASIZE avg comp %Total Type - - - - - - - unallocated 2 32K 8K 24K 12K 4.00 0.00 object directory 5 2.50K 2.50K 60K 12K 1.00 0.00 object array 1 16K 4K 12K 12K 4.00 0.00 packed nvlist - - - - - - - packed nvlist size - - - - - - - bpobj - - - - - - - bpobj header - - - - - - - SPA space map header 283 4.42M 1.11M 3.32M 12K 4.00 0.00 L1 SPA space map 1.02K 130M 56.3M 169M 166K 2.32 0.19 L0 SPA space map 1.30K 135M 57.4M 172M 133K 2.35 0.19 SPA space map 6 96K 96K 96K 16K 1.00 0.00 ZIL intent log 15 1.88M 60K 120K 8K 32.00 0.00 L5 DMU dnode 15 1.88M 60K 120K 8K 32.00 0.00 L4 DMU dnode 15 1.88M 60K 120K 8K 32.00 0.00 L3 DMU dnode 16 2M 64K 132K 8.25K 32.00 0.00 L2 DMU dnode 28 3.50M 200K 452K 16.1K 17.92 0.00 L1 DMU dnode 1.11K 17.8M 4.44M 9.77M 8.80K 4.00 0.01 L0 DMU dnode 1.20K 28.9M 4.88M 10.7M 8.93K 5.93 0.01 DMU dnode 16 64K 64K 132K 8.25K 1.00 0.00 DMU objset - - - - - - - DSL directory 18 9.50K 1.50K 24K 1.33K 6.33 0.00 DSL directory child map - - - - - - - DSL dataset snap map 33 482K 120K 360K 10.9K 4.01 0.00 DSL props - - - - - - - DSL dataset - - - - - - - ZFS znode - - - - - - - ZFS V0 ACL 18 576K 72K 144K 8K 8.00 0.00 L3 ZFS plain file 167 5.22M 1.42M 2.84M 17.4K 3.68 0.00 L2 ZFS plain file 21.9K 700M 218M 436M 19.9K 3.21 0.48 L1 ZFS plain file 4.07M 188G 87.7G 87.7G 21.6K 2.14 99.31 L0 ZFS plain file 4.09M 188G 87.9G 88.1G 21.6K 2.14 99.79 ZFS plain file 15 480K 60K 120K 8K 8.00 0.00 L1 ZFS directory 908 1.72M 652K 2.36M 2.66K 2.70 0.00 L0 ZFS directory 923 2.19M 712K 2.48M 2.75K 3.15 0.00 ZFS directory 15 15K 15K 120K 8K 1.00 0.00 ZFS master node - - - - - - - ZFS delete queue - - - - - - - zvol object - - - - - - - zvol prop - - - - - - - other uint8[] - - - - - - - other uint64[] - - - - - - - other ZAP - - - - - - - persistent error log 1 128K 8K 24K 24K 16.00 0.00 SPA history - - - - - - - SPA history offsets - - - - - - - Pool properties - - - - - - - DSL permissions - - - - - - - ZFS ACL - - - - - - - ZFS SYSACL - - - - - - - FUID table - - - - - - - FUID table size 1 1K 1K 12K 12K 1.00 0.00 DSL dataset next clones - - - - - - - scan work queue 45 25K 4.50K 32K 728 5.56 0.00 ZFS user/group/project used - - - - - - - ZFS user/group/project quota - - - - - - - snapshot refcount tags - - - - - - - DDT ZAP algorithm - - - - - - - DDT statistics - - - - - - - System attributes - - - - - - - SA master node 15 22.5K 22.5K 120K 8K 1.00 0.00 SA attr registration 30 480K 120K 240K 8K 4.00 0.00 SA attr layouts - - - - - - - scan translations - - - - - - - deduplicated block - - - - - - - DSL deadlist map - - - - - - - DSL deadlist map hdr 1 1K 1K 12K 12K 1.00 0.00 DSL dir clones - - - - - - - bpobj subobj - - - - - - - deferred free - - - - - - - dedup ditto 31 354K 37K 132K 4.26K 9.55 0.00 other 15 1.88M 60K 120K 8K 32.00 0.00 L5 Total 15 1.88M 60K 120K 8K 32.00 0.00 L4 Total 33 2.44M 132K 264K 8K 18.91 0.00 L3 Total 183 7.22M 1.48M 2.96M 16.6K 4.88 0.00 L2 Total 22.2K 709M 219M 440M 19.8K 3.23 0.49 L1 Total 4.07M 188G 87.8G 87.9G 21.6K 2.14 99.51 L0 Total 4.09M 189G 88.0G 88.3G 21.6K 2.14 100.00 Total Block Size Histogram block psize lsize asize size Count Size Cum. Count Size Cum. Count Size Cum. 512: 755 378K 378K 755 378K 378K 0 0 0 1K: 620 724K 1.08M 620 724K 1.08M 0 0 0 2K: 684 1.87M 2.95M 684 1.87M 2.95M 0 0 0 4K: 599K 2.34G 2.34G 398 2.00M 4.94M 593K 2.32G 2.32G 8K: 1.39M 13.8G 16.1G 660 6.39M 11.3M 1.39M 13.6G 16.0G 16K: 1.34M 25.4G 41.5G 1.33M 21.3G 21.3G 1.36M 25.8G 41.7G 32K: 476K 17.4G 59.0G 1.92M 61.3G 82.7G 477K 17.5G 59.2G 64K: 192K 15.8G 74.7G 177 15.5M 82.7G 192K 15.7G 74.9G 128K: 106K 13.3G 88.0G 845K 106G 188G 106K 13.3G 88.2G 256K: 0 0 88.0G 0 0 188G 345 98.0M 88.3G 512K: 0 0 88.0G 0 0 188G 0 0 88.3G 1M: 0 0 88.0G 0 0 188G 0 0 88.3G 2M: 0 0 88.0G 0 0 188G 0 0 88.3G 4M: 0 0 88.0G 0 0 188G 0 0 88.3G 8M: 0 0 88.0G 0 0 188G 0 0 88.3G 16M: 0 0 88.0G 0 0 188G 0 0 88.3G
That seems like it's super helpful if I knew what things mean. I took me forever just to find LSIZE, PSIZE, ASIZE which I already forgot but I do remember my the first results I got were for catwomen clothing sizes--not costume, clothing. You cannot forget that…as if catwomen roamed the streets and these kittens needed their fashion fix. Purr against or scratch a mannequin, IDK.
Anyway, my attention went immediately to the "compression bps":
79: 6440 ****************************************
I had not finished pretending I knew what it meant when below it was:
Dittoed blocks on same vdev: 25559
Going all the way up there's:
Special class 15074242560 used: 3.16%
Back down another catwomen table starts, one I had not seen before and packed with information like all the Ls, if this were networking that would be layers but it's not so it must be levels, then boobjobs and DSLs, I know about DSL, but it's definitely not this one. No idea what any of those mean. Then lastly the first catwoman table reappears, AKA the "Block Size Histogram", the one I used to select the 16K record size (despite being recommended 32K.)These are the resources I've found so far:
- The FreeBSD Handbook / The Z File System / 19.8. ZFS Features and Terminology
- FreeNAS® 11.3-U5 User Guide / 27. ZFS Primer - 27.1 ZFS Feature Flags (several helpful links): here I found that boobjobs is just a product of my dyslexia, what this actually are relates to snapshots, so for the time being it doesn't affect me. "bpobj" is the word (?). I had to read it carefully. :)
27. ZFS Primer — FreeNAS®11.3-U5 User Guide Table of Contents
I also found several other pages but they basically repeat what's on the FreeNAS documentation but less targeted, so a little less helpful too.Is this info by chance included in something like manpages? Or where can I find what these things mean? (Please don't say "RFC#####"… )
I got ZFS for macOS to try things without messing up the array and realized the versions are vastly different while reading one of the manpages in both macOS and TrueNAS. If I can find this on manpages could you please tell me where/how?
Thanks!