Do you have any notion what if any performance penalty there is staying with 512 byte sectors?

Given the cost of high quality SSDs I am not inclined to move to larger sector sizes unless there is a real pay off. Right now, I dont see it.

j.

On 4/8/2015 5:41 PM, Matthew Ahrens wrote:
On Wed, Apr 8, 2015 at 5:12 PM, jason matthews <ja...@broken.net <mailto:ja...@broken.net>> wrote:


    cross posting to zfs

    The data seems to indicate that something strange is happening
    between the compression algorithms and  sector sizes > 512 bytes.
    ZFS reports virtually the same compression ratios for either
    ashift=9 or ashift=12 zpools,


This is a bug. The compression ratio with sector size other than 512 bytes (i.e. ashift != 9) is reported higher than it really is. I have a fix in the works.

but the number of data blocks

I think you mean amount of space allocated, e.g. as reported by the "referenced" or "used" properties. Number of data blocks should be the same.

consumed varies drastically between 9 bit and 12 bit sectors.

I think you mean 512-byte and 4KB sectors (2^9 and 2^12). 9-bit sectors sounds like something from my nightmares :-)

    Uncompressed file systems report the same disk usage so the
    problem seems tied towards the compression mechanisms. Moving to
    13 bit, as the illumos advanced sector wiki page implies, results
    in even more amplication.

    why should 4k sectors consume nearly 2x storage compressed versus
    512 byte zpools? this looks like some sort of bug to me.

This is not a bug, it's an inherent effect of sector size. Take for example a 8KB (logical size) block that compresses down to 4.12KB. With 512 byte sectors, we will allocate 4.5KB (9 sectors), vs with 4KB sectors, we must allocate 8KB (2 sectors). This effect will be more pronounced with smaller blocks (e.g. recordsize=8k), and not very noticeable with large blocks (e.g. the default of 128KB), unless the compression ratio is very high (e.g. 128KB blocks that compresses to 4.12KB)

--matt


    With Identical datasets installed on each file system we see a
almost 2x magnification in disk usage in ashift=12 versus ashift=9.

    Do you any of you big brains on the ZFS team know why this happens?
    Is this a bug? Some sort of errant behavior in the Intel DC S3700?
    If it is not a bug, why would we want to move to 4k sectors?
    Is this a case where ZFS compression isnt tuned against 4k blocks?

    should I file a ticket?

    root@dbb005:/root# zfs list -r ashift9 ashift12 |grep postgres
    ashift12/128k/lz4/postgres              355G  40.7G   355G
    /ashift12/128k/lz4/postgres
    ashift12/128k/lzjb/postgres             403G  40.7G   403G
    /ashift12/128k/lzjb/postgres
    ashift12/128k/no-compression/postgres   640G  40.7G   640G
    /ashift12/128k/no-compression/postgres
    ashift12/8k/lz4/postgres                355G  40.7G   355G
    /ashift12/8k/lz4/postgres
    ashift12/8k/lzjb/postgres               403G  40.7G   403G
    /ashift12/8k/lzjb/postgres

    ashift9/128k/lz4/postgres               224G  6.32T   224G
    /ashift9/128k/lz4/postgres
    ashift9/128k/lzjb/postgres              277G  6.32T   277G
    /ashift9/128k/lzjb/postgres
    ashift9/128k/no-compression/postgres    638G  6.32T   638G
    /ashift9/128k/no-compression/postgres
    ashift9/8k/lz4/postgres                 224G  6.32T   224G
    /ashift9/8k/lz4/postgres
    ashift9/8k/lzjb/postgres                224G  6.32T   224G
    /ashift9/8k/lzjb/postgres

    root@dbb005:/root# zfs get -r compressratio ashift9 ashift12 |
    grep postgres |grep -v @
    ashift12/128k/lz4/postgres  compressratio 2.86x  -
    ashift12/128k/lzjb/postgres compressratio 2.31x  -
    ashift12/128k/no-compression/postgres compressratio 1.00x  -
    ashift12/8k/lz4/postgres  compressratio 2.86x  -
    ashift12/8k/lzjb/postgres compressratio 2.31x  -

    ashift9/128k/lz4/postgres compressratio 2.86x  -
    ashift9/128k/lzjb/postgres  compressratio 2.31x  -
    ashift9/128k/no-compression/postgres  compressratio 1.00x  -
    ashift9/8k/lz4/postgres compressratio 2.86x  -
    ashift9/8k/lzjb/postgres  compressratio 2.86x  -



    root@dbb005:/root# zpool status ashift12 ashift9
      pool: ashift12
     state: ONLINE
      scan: none requested
    config:

            NAME                     STATE     READ WRITE CKSUM
            ashift12                 ONLINE       0     0  0
              c3t55CD2E404B63FCD9d0  ONLINE       0     0  0
              c3t55CD2E404B64033Bd0  ONLINE       0     0  0
              c3t55CD2E404B63F93Cd0  ONLINE       0     0  0

    errors: No known data errors

    root@dbb005:/root# zdb ashift12 |egrep ashift:
                    ashift: 12
                    ashift: 12
                    ashift: 12
                    ashift: 12
                    ashift: 12
                    ashift: 12



      pool: ashift9
     state: ONLINE
      scan: none requested
    config:

            NAME                     STATE     READ WRITE CKSUM
            ashift9                  ONLINE       0     0  0
              c3t55CD2E404B417CFEd0  ONLINE       0     0  0
              c3t55CD2E404B43F0C9d0  ONLINE       0     0  0
              c3t55CD2E404B640592d0  ONLINE       0     0  0
              c3t55CD2E404B43F183d0  ONLINE       0     0  0
              c3t55CD2E404B417D1Fd0  ONLINE       0     0  0
              c3t55CD2E404B43F14Cd0  ONLINE       0     0  0
              c3t55CD2E404B43EFAAd0  ONLINE       0     0  0
              c3t55CD2E404B43EFCCd0  ONLINE       0     0  0
              c3t55CD2E404B41904Ad0  ONLINE       0     0  0
              c3t50015178F3659395d0  ONLINE       0     0  0
              c3t55CD2E404B64062Fd0  ONLINE       0     0  0

    errors: No known data errors

    root@dbb005:/root# zdb ashift9 |egrep ashift:
                    ashift: 9
                    ashift: 9
                    ashift: 9
                    ashift: 9
                    ashift: 9
                    ashift: 9
                    ashift: 9
                    ashift: 9
                    ashift: 9
                    ashift: 9
                    ashift: 9
                    ashift: 9
                    ashift: 9
                    ashift: 9
                    ashift: 9
                    ashift: 9
                    ashift: 9
                    ashift: 9
                    ashift: 9
                    ashift: 9
                    ashift: 9
                    ashift: 9

    root@dbb005:/root# iostat -En
    c3t55CD2E404B417CFEd0 Soft Errors: 0 Hard Errors: 0 Transport
    Errors: 0
    Vendor: ATA      Product: INTEL SSDSC2BA80 Revision: DL04 Serial
    No: BTTV331202X3800
    Size: 800.17GB <800166076416 bytes>
    Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
    Illegal Request: 0 Predictive Failure Analysis: 0
    c3t55CD2E404B41904Ad0 Soft Errors: 0 Hard Errors: 0 Transport
    Errors: 0
    Vendor: ATA      Product: INTEL SSDSC2BA80 Revision: DL04 Serial
    No: BTTV331207RE800
    Size: 800.17GB <800166076416 bytes>
    Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
    Illegal Request: 0 Predictive Failure Analysis: 0
    c3t55CD2E404B8149FAd0 Soft Errors: 0 Hard Errors: 0 Transport
    Errors: 0
    Vendor: ATA      Product: INTEL SSDSC2CT18 Revision: 335u Serial
    No: CVKI338200ZT180
    Size: 180.05GB <180045766656 bytes>
    Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
    Illegal Request: 0 Predictive Failure Analysis: 0
    c3t55CD2E404B43EFAAd0 Soft Errors: 0 Hard Errors: 0 Transport
    Errors: 0
    Vendor: ATA      Product: INTEL SSDSC2BA80 Revision: DL04 Serial
    No: BTTV333005CU800
    Size: 800.17GB <800166076416 bytes>
    Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
    Illegal Request: 0 Predictive Failure Analysis: 0
    c3t55CD2E404B406BBCd0 Soft Errors: 0 Hard Errors: 0 Transport
    Errors: 0
    Vendor: ATA      Product: INTEL SSDSC2BA80 Revision: DL04 Serial
    No: BTTV330209W2800
    Size: 800.17GB <800166076416 bytes>
    Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
    Illegal Request: 0 Predictive Failure Analysis: 0
    c3t55CD2E404B417D1Fd0 Soft Errors: 0 Hard Errors: 0 Transport
    Errors: 0
    Vendor: ATA      Product: INTEL SSDSC2BA80 Revision: DL04 Serial
    No: BTTV331202Y3800
    Size: 800.17GB <800166076416 bytes>
    Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
    Illegal Request: 0 Predictive Failure Analysis: 0
    c3t55CD2E404B43F0C9d0 Soft Errors: 0 Hard Errors: 0 Transport
    Errors: 0
    Vendor: ATA      Product: INTEL SSDSC2BA80 Revision: DL04 Serial
    No: BTTV333005ME800
    Size: 800.17GB <800166076416 bytes>
    Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
    Illegal Request: 0 Predictive Failure Analysis: 0
    c3t55CD2E404B43EFCCd0 Soft Errors: 0 Hard Errors: 0 Transport
    Errors: 0
    Vendor: ATA      Product: INTEL SSDSC2BA80 Revision: DL04 Serial
    No: BTTV333005DU800
    Size: 800.17GB <800166076416 bytes>
    Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
    Illegal Request: 0 Predictive Failure Analysis: 0
    c3t50015178F3659395d0 Soft Errors: 0 Hard Errors: 0 Transport
    Errors: 0
    Vendor: ATA      Product: INTEL SSDSC2BA80 Revision: DL04 Serial
    No: BTTV326303UP800
    Size: 800.17GB <800166076416 bytes>
    Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
    Illegal Request: 0 Predictive Failure Analysis: 0
    c3t55CD2E404B43F14Cd0 Soft Errors: 0 Hard Errors: 0 Transport
    Errors: 0
    Vendor: ATA      Product: INTEL SSDSC2BA80 Revision: DL04 Serial
    No: BTTV333005RC800
    Size: 800.17GB <800166076416 bytes>
    Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
    Illegal Request: 0 Predictive Failure Analysis: 0
    c3t55CD2E404B43F183d0 Soft Errors: 0 Hard Errors: 0 Transport
    Errors: 0
    Vendor: ATA      Product: INTEL SSDSC2BA80 Revision: DL04 Serial
    No: BTTV333005T3800
    Size: 800.17GB <800166076416 bytes>
    Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
    Illegal Request: 0 Predictive Failure Analysis: 0
    c3t55CD2E404B63FCD9d0 Soft Errors: 0 Hard Errors: 0 Transport
    Errors: 0
    Vendor: ATA      Product: INTEL SSDSC2BA80 Revision: 0270 Serial
    No: BTTV420600LD800
    Size: 800.17GB <800166076416 bytes>
    Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
    Illegal Request: 0 Predictive Failure Analysis: 0
    c3t55CD2E404B640592d0 Soft Errors: 0 Hard Errors: 0 Transport
    Errors: 0
    Vendor: ATA      Product: INTEL SSDSC2BA80 Revision: 0270 Serial
    No: BTTV420602JK800
    Size: 800.17GB <800166076416 bytes>
    Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
    Illegal Request: 0 Predictive Failure Analysis: 0
    c3t55CD2E404B63F93Cd0 Soft Errors: 0 Hard Errors: 0 Transport
    Errors: 0
    Vendor: ATA      Product: INTEL SSDSC2BA80 Revision: 0270 Serial
    No: BTTV420505XQ800
    Size: 800.17GB <800166076416 bytes>
    Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
    Illegal Request: 0 Predictive Failure Analysis: 0
    c3t55CD2E404B64062Fd0 Soft Errors: 0 Hard Errors: 0 Transport
    Errors: 0
    Vendor: ATA      Product: INTEL SSDSC2BA80 Revision: 0270 Serial
    No: BTTV420602P6800
    Size: 800.17GB <800166076416 bytes>
    Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
    Illegal Request: 0 Predictive Failure Analysis: 0
    c3t55CD2E404B64033Bd0 Soft Errors: 0 Hard Errors: 0 Transport
    Errors: 0
    Vendor: ATA      Product: INTEL SSDSC2BA80 Revision: 0270 Serial
    No: BTTV4206020X800
    Size: 800.17GB <800166076416 bytes>
    Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
    Illegal Request: 0 Predictive Failure Analysis: 0

    All Intel DC S3700 drives used in the ashift9 and ashift12 zpools



_______________________________________________
openindiana-discuss mailing list
openindiana-discuss@openindiana.org
http://openindiana.org/mailman/listinfo/openindiana-discuss

Reply via email to