Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Jul 2020 05:04:54 +0000
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        mike tancsa <mike@sentex.net>, Ronald Klop <ronald-lists@klop.ws>, FreeBSD-STABLE Mailing List <freebsd-stable@freebsd.org>
Subject:   Re: zfs meta data slowness
Message-ID:  <QB1PR01MB3364420AA4C45D2BDD089C0DDD790@QB1PR01MB3364.CANPRD01.PROD.OUTLOOK.COM>
In-Reply-To: <975657af-ccac-bbd1-e22b-86270c624226@sentex.net>
References:  <b6d670e6-6e35-a1f7-7daf-76b458f26e30@sentex.net> <1949194763.1.1595250243575@localhost>, <975657af-ccac-bbd1-e22b-86270c624226@sentex.net>

next in thread | previous in thread | raw e-mail | index | archive | help
mike tancsa wrote:=0A=
>Hi,=0A=
>    Thanks for the response. Reply in line=0A=
>=0A=
>On 7/20/2020 9:04 AM, Ronald Klop wrote:=0A=
>> Hi,=0A=
>>=0A=
>> My first suggestion would be to remove a lot of snapshots. But that my=
=0A=
>> not match your business case.=0A=
>=0A=
>As its a backup server, its sort of the point to have all those snapshots.=
=0A=
I'm the last guy who should be commenting on ZFS, since I never use it.=0A=
However, it is my understanding that ZFS "pseudo automounts" each=0A=
snapshot when you go there, so I think that might be what is taking=0A=
so long (ie. not really meta data).=0A=
=0A=
Of course I have no idea what might speed that up. I would be=0A=
tempted to look in ZFS for the "snapshot mounting code", in=0A=
case I could find an obvious problem...=0A=
=0A=
rick=0A=
=0A=
=0A=
> Maybe you can provide more information about your setup:=0A=
> Amount of RAM, CPU?=0A=
64G, Xeon(R) CPU E3-1240 v6 @ 3.70GHz=0A=
> output of "zpool status"=0A=
# zpool status -x=0A=
=0A=
all pools are healthy=0A=
=0A=
=0A=
> output of "zfs list" if possible to share=0A=
=0A=
its a big list=0A=
=0A=
# zfs list | wc=0A=
     824    4120  107511=0A=
=0A=
=0A=
> Type of disks/ssds?=0A=
old school Device Model:     WDC WD80EFAX-68KNBN0=0A=
> What is the load of the system? I/O per second, etc.=0A=
its not cpu bound, disks are sometimes running at 100% based on gstat,=0A=
but not always=0A=
> Do you use dedup, GELI?=0A=
=0A=
no and no=0A=
=0A=
=0A=
> Something else special about the setup.=0A=
> output of "top -b"=0A=
>=0A=
=0A=
ports are right now being built in a VM, but the problem (zrepl hanging)=0A=
and zfs list -t snapshots taking forever happens regardless=0A=
=0A=
  PID USERNAME    THR PRI NICE   SIZE    RES STATE    C   TIME    WCPU=0A=
COMMAND=0A=
 4439 root         12  40   20  6167M  5762M kqread   3 535:13 200.00% bhyv=
e=0A=
98783 root          2  21    0    16M  5136K hdr->b   4   0:01   1.95% zfs=
=0A=
76489 root         21  23    0   738M    54M uwait    1   2:18   0.88% zrep=
l=0A=
98784 root          1  21    0    13M  3832K piperd   3   0:01   0.59% zfs=
=0A=
99563 root          1  20    0    13M  4136K zio->i   4   0:00   0.39% zfs=
=0A=
16136 root         18  25    0   705M    56M uwait    3  29:58   0.00%=0A=
zrepl-freebsd-amd64=0A=
 1845 root          1  20    0    12M  3772K nanslp   7   5:54   0.00%=0A=
ossec-syscheckd=0A=
 1567 root          1  20    0    11M  2744K select   0   2:22   0.00%=0A=
syslogd=0A=
 1737 root         32  20    0    11M  2844K rpcsvc   6   1:40   0.00% nfsd=
=0A=
 1660 root          1 -52   r0    11M    11M nanslp   5   1:18   0.00%=0A=
watchdogd=0A=
 1434 root          1  20    0  9988K   988K select   3   0:27   0.00% devd=
=0A=
 2435 mdtancsa      1  20    0    20M  8008K select   0   0:21   0.00% sshd=
=0A=
 1754 root          3  20    0    18M  3556K select   1   0:11   0.00%=0A=
apcupsd=0A=
 5917 root          1  20    0    11M  2672K select   2   0:06   0.00%=0A=
script=0A=
 1449 _pflogd       1  20    0    12M  3572K bpf      3   0:05   0.00%=0A=
pflogd=0A=
=0A=
    ---Mike=0A=
=0A=
> That kind of information.=0A=
>=0A=
> Regards,=0A=
> Ronald.=0A=
>=0A=
>=0A=
> Van: mike tancsa <mike@sentex.net>=0A=
> Datum: zondag, 19 juli 2020 16:17=0A=
> Aan: FreeBSD-STABLE Mailing List <freebsd-stable@freebsd.org>=0A=
> Onderwerp: zfs meta data slowness=0A=
>>=0A=
>> Are there any tweaks that can be done to speed up or improve zfs=0A=
>> metadata performance ? I have a backup server with a lot of snapshots=0A=
>> (40,000)  and just doing a listing can take a great deal of time.  Best=
=0A=
>> case scenario is about 24 seconds, worst case, I have seen it up to 15=
=0A=
>> minutes.  (FreeBSD 12.1-STABLE r363078)=0A=
>>=0A=
>>=0A=
>> ARC Efficiency:                                 79.33b=0A=
>>         Cache Hit Ratio:                92.81%  73.62b=0A=
>>         Cache Miss Ratio:               7.19%   5.71b=0A=
>>         Actual Hit Ratio:               92.78%  73.60b=0A=
>>=0A=
>>         Data Demand Efficiency:         96.47%  461.91m=0A=
>>         Data Prefetch Efficiency:       1.00%   262.73m=0A=
>>=0A=
>>         CACHE HITS BY CACHE LIST:=0A=
>>           Anonymously Used:             0.01%   3.86m=0A=
>>           Most Recently Used:           3.91%   2.88b=0A=
>>           Most Frequently Used:         96.06%  70.72b=0A=
>>           Most Recently Used Ghost:     0.01%   5.31m=0A=
>>           Most Frequently Used Ghost:   0.01%   10.47m=0A=
>>=0A=
>>         CACHE HITS BY DATA TYPE:=0A=
>>           Demand Data:                  0.61%   445.60m=0A=
>>           Prefetch Data:                0.00%   2.63m=0A=
>>           Demand Metadata:              99.36%  73.15b=0A=
>>           Prefetch Metadata:            0.03%   21.00m=0A=
>>=0A=
>>         CACHE MISSES BY DATA TYPE:=0A=
>>           Demand Data:                  0.29%   16.31m=0A=
>>           Prefetch Data:                4.56%   260.10m=0A=
>>           Demand Metadata:              95.02%  5.42b=0A=
>>           Prefetch Metadata:            0.14%   7.75m=0A=
>>=0A=
>>=0A=
>> Other than increase the metadata max, I havent really changed any=0A=
>> tuneables=0A=
>>=0A=
>>=0A=
>> ZFS Tunables (sysctl):=0A=
>>         kern.maxusers                           4416=0A=
>>         vm.kmem_size                            66691842048=0A=
>>         vm.kmem_size_scale                      1=0A=
>>         vm.kmem_size_min                        0=0A=
>>         vm.kmem_size_max                        1319413950874=0A=
>>         vfs.zfs.trim.max_interval               1=0A=
>>         vfs.zfs.trim.timeout                    30=0A=
>>         vfs.zfs.trim.txg_delay                  32=0A=
>>         vfs.zfs.trim.enabled                    1=0A=
>>         vfs.zfs.vol.immediate_write_sz          32768=0A=
>>         vfs.zfs.vol.unmap_sync_enabled          0=0A=
>>         vfs.zfs.vol.unmap_enabled               1=0A=
>>         vfs.zfs.vol.recursive                   0=0A=
>>         vfs.zfs.vol.mode                        1=0A=
>>         vfs.zfs.version.zpl                     5=0A=
>>         vfs.zfs.version.spa                     5000=0A=
>>         vfs.zfs.version.acl                     1=0A=
>>         vfs.zfs.version.ioctl                   7=0A=
>>         vfs.zfs.debug                           0=0A=
>>         vfs.zfs.super_owner                     0=0A=
>>         vfs.zfs.immediate_write_sz              32768=0A=
>>         vfs.zfs.sync_pass_rewrite               2=0A=
>>         vfs.zfs.sync_pass_dont_compress         5=0A=
>>         vfs.zfs.sync_pass_deferred_free         2=0A=
>>         vfs.zfs.zio.dva_throttle_enabled        1=0A=
>>         vfs.zfs.zio.exclude_metadata            0=0A=
>>         vfs.zfs.zio.use_uma                     1=0A=
>>         vfs.zfs.zio.taskq_batch_pct             75=0A=
>>         vfs.zfs.zil_maxblocksize                131072=0A=
>>         vfs.zfs.zil_slog_bulk                   786432=0A=
>>         vfs.zfs.zil_nocacheflush                0=0A=
>>         vfs.zfs.zil_replay_disable              0=0A=
>>         vfs.zfs.cache_flush_disable             0=0A=
>>         vfs.zfs.standard_sm_blksz               131072=0A=
>>         vfs.zfs.dtl_sm_blksz                    4096=0A=
>>         vfs.zfs.min_auto_ashift                 9=0A=
>>         vfs.zfs.max_auto_ashift                 13=0A=
>>         vfs.zfs.vdev.trim_max_pending           10000=0A=
>>         vfs.zfs.vdev.bio_delete_disable         0=0A=
>>         vfs.zfs.vdev.bio_flush_disable          0=0A=
>>         vfs.zfs.vdev.def_queue_depth            32=0A=
>>         vfs.zfs.vdev.queue_depth_pct            1000=0A=
>>         vfs.zfs.vdev.write_gap_limit            4096=0A=
>>         vfs.zfs.vdev.read_gap_limit             32768=0A=
>>         vfs.zfs.vdev.aggregation_limit_non_rotating131072=0A=
>>         vfs.zfs.vdev.aggregation_limit          1048576=0A=
>>         vfs.zfs.vdev.initializing_max_active    1=0A=
>>         vfs.zfs.vdev.initializing_min_active    1=0A=
>>         vfs.zfs.vdev.removal_max_active         2=0A=
>>         vfs.zfs.vdev.removal_min_active         1=0A=
>>         vfs.zfs.vdev.trim_max_active            64=0A=
>>         vfs.zfs.vdev.trim_min_active            1=0A=
>>         vfs.zfs.vdev.scrub_max_active           2=0A=
>>         vfs.zfs.vdev.scrub_min_active           1=0A=
>>         vfs.zfs.vdev.async_write_max_active     10=0A=
>>         vfs.zfs.vdev.async_write_min_active     1=0A=
>>         vfs.zfs.vdev.async_read_max_active      3=0A=
>>         vfs.zfs.vdev.async_read_min_active      1=0A=
>>         vfs.zfs.vdev.sync_write_max_active      10=0A=
>>         vfs.zfs.vdev.sync_write_min_active      10=0A=
>>         vfs.zfs.vdev.sync_read_max_active       10=0A=
>>         vfs.zfs.vdev.sync_read_min_active       10=0A=
>>         vfs.zfs.vdev.max_active                 1000=0A=
>>         vfs.zfs.vdev.async_write_active_max_dirty_percent60=0A=
>>         vfs.zfs.vdev.async_write_active_min_dirty_percent30=0A=
>>         vfs.zfs.vdev.mirror.non_rotating_seek_inc1=0A=
>>         vfs.zfs.vdev.mirror.non_rotating_inc    0=0A=
>>         vfs.zfs.vdev.mirror.rotating_seek_offset1048576=0A=
>>         vfs.zfs.vdev.mirror.rotating_seek_inc   5=0A=
>>         vfs.zfs.vdev.mirror.rotating_inc        0=0A=
>>         vfs.zfs.vdev.trim_on_init               1=0A=
>>         vfs.zfs.vdev.cache.bshift               16=0A=
>>         vfs.zfs.vdev.cache.size                 0=0A=
>>         vfs.zfs.vdev.cache.max                  16384=0A=
>>         vfs.zfs.vdev.validate_skip              0=0A=
>>         vfs.zfs.vdev.max_ms_shift               34=0A=
>>         vfs.zfs.vdev.default_ms_shift           29=0A=
>>         vfs.zfs.vdev.max_ms_count_limit         131072=0A=
>>         vfs.zfs.vdev.min_ms_count               16=0A=
>>         vfs.zfs.vdev.default_ms_count           200=0A=
>>         vfs.zfs.txg.timeout                     5=0A=
>>         vfs.zfs.space_map_ibs                   14=0A=
>>         vfs.zfs.special_class_metadata_reserve_pct25=0A=
>>         vfs.zfs.user_indirect_is_special        1=0A=
>>         vfs.zfs.ddt_data_is_special             1=0A=
>>         vfs.zfs.spa_allocators                  4=0A=
>>         vfs.zfs.spa_min_slop                    134217728=0A=
>>         vfs.zfs.spa_slop_shift                  5=0A=
>>         vfs.zfs.spa_asize_inflation             24=0A=
>>         vfs.zfs.deadman_enabled                 1=0A=
>>         vfs.zfs.deadman_checktime_ms            5000=0A=
>>         vfs.zfs.deadman_synctime_ms             1000000=0A=
>>         vfs.zfs.debugflags                      0=0A=
>>         vfs.zfs.recover                         0=0A=
>>         vfs.zfs.spa_load_verify_data            1=0A=
>>         vfs.zfs.spa_load_verify_metadata        1=0A=
>>         vfs.zfs.spa_load_verify_maxinflight     10000=0A=
>>         vfs.zfs.max_missing_tvds_scan           0=0A=
>>         vfs.zfs.max_missing_tvds_cachefile      2=0A=
>>         vfs.zfs.max_missing_tvds                0=0A=
>>         vfs.zfs.spa_load_print_vdev_tree        0=0A=
>>         vfs.zfs.ccw_retry_interval              300=0A=
>>         vfs.zfs.check_hostid                    1=0A=
>>         vfs.zfs.multihost_fail_intervals        10=0A=
>>         vfs.zfs.multihost_import_intervals      20=0A=
>>         vfs.zfs.multihost_interval              1000=0A=
>>         vfs.zfs.mg_fragmentation_threshold      85=0A=
>>         vfs.zfs.mg_noalloc_threshold            0=0A=
>>         vfs.zfs.condense_pct                    200=0A=
>>         vfs.zfs.metaslab_sm_blksz               4096=0A=
>>         vfs.zfs.metaslab.bias_enabled           1=0A=
>>         vfs.zfs.metaslab.lba_weighting_enabled  1=0A=
>>         vfs.zfs.metaslab.fragmentation_factor_enabled1=0A=
>>         vfs.zfs.metaslab.preload_enabled        1=0A=
>>         vfs.zfs.metaslab.preload_limit          3=0A=
>>         vfs.zfs.metaslab.unload_delay           8=0A=
>>         vfs.zfs.metaslab.load_pct               50=0A=
>>         vfs.zfs.metaslab.min_alloc_size         33554432=0A=
>>         vfs.zfs.metaslab.df_free_pct            4=0A=
>>         vfs.zfs.metaslab.df_alloc_threshold     131072=0A=
>>         vfs.zfs.metaslab.debug_unload           0=0A=
>>         vfs.zfs.metaslab.debug_load             0=0A=
>>         vfs.zfs.metaslab.fragmentation_threshold70=0A=
>>         vfs.zfs.metaslab.force_ganging          16777217=0A=
>>         vfs.zfs.free_bpobj_enabled              1=0A=
>>         vfs.zfs.free_max_blocks                 -1=0A=
>>         vfs.zfs.zfs_scan_checkpoint_interval    7200=0A=
>>         vfs.zfs.zfs_scan_legacy                 0=0A=
>>         vfs.zfs.no_scrub_prefetch               0=0A=
>>         vfs.zfs.no_scrub_io                     0=0A=
>>         vfs.zfs.resilver_min_time_ms            3000=0A=
>>         vfs.zfs.free_min_time_ms                1000=0A=
>>         vfs.zfs.scan_min_time_ms                1000=0A=
>>         vfs.zfs.scan_idle                       50=0A=
>>         vfs.zfs.scrub_delay                     4=0A=
>>         vfs.zfs.resilver_delay                  2=0A=
>>         vfs.zfs.zfetch.array_rd_sz              1048576=0A=
>>         vfs.zfs.zfetch.max_idistance            67108864=0A=
>>         vfs.zfs.zfetch.max_distance             8388608=0A=
>>         vfs.zfs.zfetch.min_sec_reap             2=0A=
>>         vfs.zfs.zfetch.max_streams              8=0A=
>>         vfs.zfs.prefetch_disable                0=0A=
>>         vfs.zfs.delay_scale                     500000=0A=
>>         vfs.zfs.delay_min_dirty_percent         60=0A=
>>         vfs.zfs.dirty_data_sync_pct             20=0A=
>>         vfs.zfs.dirty_data_max_percent          10=0A=
>>         vfs.zfs.dirty_data_max_max              4294967296=0A=
>>         vfs.zfs.dirty_data_max                  4294967296=0A=
>>         vfs.zfs.max_recordsize                  1048576=0A=
>>         vfs.zfs.default_ibs                     17=0A=
>>         vfs.zfs.default_bs                      9=0A=
>>         vfs.zfs.send_holes_without_birth_time   1=0A=
>>         vfs.zfs.mdcomp_disable                  0=0A=
>>         vfs.zfs.per_txg_dirty_frees_percent     5=0A=
>>         vfs.zfs.nopwrite_enabled                1=0A=
>>         vfs.zfs.dedup.prefetch                  1=0A=
>>         vfs.zfs.dbuf_cache_lowater_pct          10=0A=
>>         vfs.zfs.dbuf_cache_hiwater_pct          10=0A=
>>         vfs.zfs.dbuf_metadata_cache_overflow    0=0A=
>>         vfs.zfs.dbuf_metadata_cache_shift       6=0A=
>>         vfs.zfs.dbuf_cache_shift                5=0A=
>>         vfs.zfs.dbuf_metadata_cache_max_bytes   1025282816=0A=
>>         vfs.zfs.dbuf_cache_max_bytes            2050565632=0A=
>>         vfs.zfs.arc_min_prescient_prefetch_ms   6=0A=
>>         vfs.zfs.arc_min_prefetch_ms             1=0A=
>>         vfs.zfs.l2c_only_size                   0=0A=
>>         vfs.zfs.mfu_ghost_data_esize            7778263552=0A=
>>         vfs.zfs.mfu_ghost_metadata_esize        16851792896=0A=
>>         vfs.zfs.mfu_ghost_size                  24630056448=0A=
>>         vfs.zfs.mfu_data_esize                  3059418112=0A=
>>         vfs.zfs.mfu_metadata_esize              28641792=0A=
>>         vfs.zfs.mfu_size                        6399023104=0A=
>>         vfs.zfs.mru_ghost_data_esize            2199812096=0A=
>>         vfs.zfs.mru_ghost_metadata_esize        6289682432=0A=
>>         vfs.zfs.mru_ghost_size                  8489494528=0A=
>>         vfs.zfs.mru_data_esize                  22781456384=0A=
>>         vfs.zfs.mru_metadata_esize              309155840=0A=
>>         vfs.zfs.mru_size                        23847875584=0A=
>>         vfs.zfs.anon_data_esize                 0=0A=
>>         vfs.zfs.anon_metadata_esize             0=0A=
>>         vfs.zfs.anon_size                       8556544=0A=
>>         vfs.zfs.l2arc_norw                      1=0A=
>>         vfs.zfs.l2arc_feed_again                1=0A=
>>         vfs.zfs.l2arc_noprefetch                1=0A=
>>         vfs.zfs.l2arc_feed_min_ms               200=0A=
>>         vfs.zfs.l2arc_feed_secs                 1=0A=
>>         vfs.zfs.l2arc_headroom                  2=0A=
>>         vfs.zfs.l2arc_write_boost               8388608=0A=
>>         vfs.zfs.l2arc_write_max                 8388608=0A=
>>         vfs.zfs.arc_meta_strategy               1=0A=
>>         vfs.zfs.arc_meta_limit                  15833624576=0A=
>>         vfs.zfs.arc_free_target                 346902=0A=
>>         vfs.zfs.arc_kmem_cache_reap_retry_ms    1000=0A=
>>         vfs.zfs.compressed_arc_enabled          1=0A=
>>         vfs.zfs.arc_grow_retry                  60=0A=
>>         vfs.zfs.arc_shrink_shift                7=0A=
>>         vfs.zfs.arc_average_blocksize           8192=0A=
>>         vfs.zfs.arc_no_grow_shift               5=0A=
>>         vfs.zfs.arc_min                         8202262528=0A=
>>         vfs.zfs.arc_max                         39334498304=0A=
>>         vfs.zfs.abd_chunk_size                  4096=0A=
>>         vfs.zfs.abd_scatter_enabled             1=0A=
>>=0A=
>> _______________________________________________=0A=
>> freebsd-stable@freebsd.org mailing list=0A=
>> https://lists.freebsd.org/mailman/listinfo/freebsd-stable=0A=
>> To unsubscribe, send any mail to=0A=
>> "freebsd-stable-unsubscribe@freebsd.org"=0A=
>>=0A=
>>=0A=
>>=0A=
> _______________________________________________=0A=
> freebsd-stable@freebsd.org mailing list=0A=
> https://lists.freebsd.org/mailman/listinfo/freebsd-stable=0A=
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org"=
=0A=
>=0A=
_______________________________________________=0A=
freebsd-stable@freebsd.org mailing list=0A=
https://lists.freebsd.org/mailman/listinfo/freebsd-stable=0A=
To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org"=
=0A=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?QB1PR01MB3364420AA4C45D2BDD089C0DDD790>