I have a ZFS system serving many VMs. In it, we installed 12x4TB SAS disks and configured them in a mirror. We added two PCI-E SSDs (Samsung 960s with 512GB each), but they are each consumed to just over 50% rather than caching all the data they can. We have plenty of consumed storage, yet the SSDs are only filling up to about half way.
System is a CentOS 7 box with ZFS on Linux version 0.6.5.9-1.el7_3.centos.
Here is a snapshot of zpool iostat:
capacity operations bandwidth
pool alloc free read write read write
------------------------------------------------- ----- ----- ----- ----- ----- -----
stgpool 13.3T 8.46T 26 1020 482K 10.6M
mirror 2.21T 1.41T 4 165 50.5K 1.79M
S1D0 - - 3 158 52.0K 2.05M
S2D0 - - 0 158 11.2K 2.05M
mirror 2.21T 1.41T 2 184 51.7K 1.97M
S3D0 - - 2 177 47.2K 2.26M
S4D0 - - 0 177 13.6K 2.26M
mirror 2.21T 1.41T 3 170 104K 1.66M
S1D1 - - 2 169 90.4K 1.94M
S2D1 - - 1 169 21.6K 1.94M
mirror 2.21T 1.41T 5 142 129K 1.61M
S3D1 - - 3 139 109K 1.86M
S4D1 - - 1 139 32.8K 1.86M
mirror 2.21T 1.41T 4 170 93.7K 1.81M
S1D2 - - 4 162 95.2K 2.11M
S2D2 - - 0 162 11.2K 2.11M
mirror 2.21T 1.41T 4 186 54.2K 1.78M
S3D2 - - 3 175 40.0K 2.10M
S4D2 - - 0 175 27.2K 2.10M
logs - - - - - -
ata-Samsung_SSD_850_EVO_250GB_S21NNXAG918721R 0 232G 0 0 0 0
ata-Samsung_SSD_850_EVO_250GB_S21NNXAGA59337A 0 232G 0 0 0 0
ata-Samsung_SSD_850_EVO_250GB_S21NNXAGA69590F 0 232G 0 0 0 0
cache - - - - - -
nvme-Samsung_SSD_960_PRO_512GB_S3EWNCAHC01880D 266G 211G 38 81 556K 2.85M
nvme-Samsung_SSD_960__PRO_512GB_S3EWNCAHB04288W 266G 211G 37 56 416K 2.10M
------------------------------------------------- ----- ----- ----- ----- ----- -----
Zpool settings:
NAME PROPERTY VALUE SOURCE
stgpool size 21.8T -
stgpool capacity 61% -
stgpool altroot - default
stgpool health ONLINE -
stgpool guid 1784205276891874933 default
stgpool version - default
stgpool bootfs - default
stgpool delegation on default
stgpool autoreplace off default
stgpool cachefile - default
stgpool failmode wait default
stgpool listsnapshots off default
stgpool autoexpand off default
stgpool dedupditto 0 default
stgpool dedupratio 1.00x -
stgpool free 8.46T -
stgpool allocated 13.3T -
stgpool readonly off -
stgpool ashift 0 default
stgpool comment - default
stgpool expandsize - -
stgpool freeing 0 default
stgpool fragmentation 58% -
stgpool leaked 0 default
stgpool feature@async_destroy enabled local
stgpool feature@empty_bpobj active local
stgpool feature@lz4_compress active local
stgpool feature@spacemap_histogram active local
stgpool feature@enabled_txg active local
stgpool feature@hole_birth active local
stgpool feature@extensible_dataset enabled local
stgpool feature@embedded_data active local
stgpool feature@bookmarks enabled local
stgpool feature@filesystem_limits enabled local
stgpool feature@large_blocks enabled local
arcstat.py info:
time read l2read hit% hits miss% miss l2hit% l2miss% arcsz c l2size
01:44:35 2.1K 268 87 1.8K 12 268 2 97 125G 125G 778G
01:44:36 6.5K 583 91 6.0K 8 583 1 98 125G 125G 778G
01:44:37 1.1K 277 75 835 24 277 6 93 125G 125G 778G
01:44:38 1.5K 230 84 1.3K 15 230 1 98 125G 125G 778G
01:44:39 1.8K 141 91 1.6K 8 141 2 97 125G 125G 778G
01:44:40 1.4K 203 85 1.2K 14 203 19 80 125G 125G 778G
01:44:41 4.0K 291 92 3.7K 7 291 11 88 125G 125G 778G
01:44:42 1.7K 95 94 1.6K 5 95 8 91 125G 125G 778G
01:44:43 1.1K 84 92 1.0K 7 84 2 97 125G 125G 778G
I am trying to maximize my read rates and consume the 960's capacity. Any help is appreciated :)