GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je déterminer la taille actuelle de l'ARC dans ZFS, et comment l'ARC est-il lié à la mémoire libre ou cache ?

Le code ZFS rapporte diverses statistiques via procfs. Pour déterminer la taille de l'ARC, regardez /proc/spl/kstat/zfs/arcstats (en supposant que procfs soit monté sur /proc, comme d'habitude), en particulier les valeurs de c , c_max et size . (Voir aussi cet article sur le forum de la communauté Oracle. Copie d'archive Internet alternative au cas où le site Oracle deviendrait indisponible.)

  • c est la taille cible de l'ARC en octets
  • c_max est la taille maximale de l'ARC en octets
  • size est la taille actuelle de l'ARC en octets

La taille maximale de l'ARC peut être ajustée soit en passant un zfs_arc_max=N paramètre au zfs module (via modprobe), où N est la taille maximale de l'ARC en octets, ou à la volée en écrivant la nouvelle taille maximale en octets dans /sys/module/zfs/parameters/zfs_arc_max .

En raison de la façon dont ZFS sur Linux est implémenté, la mémoire ARC se comporte comme la mémoire cache (par exemple, elle est évincée si le système subit une pression de mémoire), mais est agrégé par le noyau comme des allocations de mémoire ordinaires. Cela peut prêter à confusion car le système semble avoir beaucoup moins de mémoire libre que ce à quoi on pourrait s'attendre compte tenu de la charge de travail actuelle du système, mais c'est normal.

Pour obtenir la taille de l'ARC en mégaoctets, vous pouvez utiliser quelque chose comme awk '/^size/ { print $1 " " $3 / 1048576 }' < /proc/spl/kstat/zfs/arcstats . (1 048 576 est le nombre d'octets par mégaoctet.)

Par exemple, mon système (qui utilise presque exclusivement ZFS) peut signaler

$ free -m
             total       used       free     shared    buffers     cached
Mem:         32194      17948      14245          0        158        982
-/+ buffers/cache:      16808      15386
Swap:        49152          0      49152
$ awk '/^size/ { print $1 " " $3 / 1048576 }' < /proc/spl/kstat/zfs/arcstats
size 8138.73
$

ce qui signifie que le réel l'utilisation de la mémoire par les processus actuellement résidents est d'environ 8 669 Mo (16 808 Mo réduits de 8 139 Mo).


Pour vous appuyer sur la réponse de Michael Kjörling, vous pouvez également utiliser arc_summary.py.

Ici, vous pouvez voir comment l'ARC utilise la moitié de la mémoire de mon bureau :

[email protected]:~# free -g
             total       used       free     shared    buffers     cached
Mem:            62         56          6          1          1          5
-/+ buffers/cache:         49         13
Swap:            7          0          7

[email protected]:~# arc_summary.py
------------------------------------------------------------------------
ZFS Subsystem Report                            Fri Feb 24 19:44:20 2017
ARC Summary: (HEALTHY)
        Memory Throttle Count:                  0

ARC Misc:
        Deleted:                                1.33m
        Mutex Misses:                           99
        Evict Skips:                            99

ARC Size:                               98.13%  30.80   GiB
        Target Size: (Adaptive)         100.00% 31.39   GiB
        Min Size (Hard Limit):          0.10%   32.00   MiB
        Max Size (High Water):          1004:1  31.39   GiB

ARC Size Breakdown:
        Recently Used Cache Size:       84.25%  26.45   GiB
        Frequently Used Cache Size:     15.75%  4.95    GiB

ARC Hash Breakdown:
        Elements Max:                           1.11m
        Elements Current:               53.48%  592.56k
        Collisions:                             763.42k
        Chain Max:                              4
        Chains:                                 19.62k

ARC Total accesses:                                     36.34m
        Cache Hit Ratio:                87.02%  31.62m
        Cache Miss Ratio:               12.98%  4.72m
        Actual Hit Ratio:               84.78%  30.81m

        Data Demand Efficiency:         93.49%  24.22m
        Data Prefetch Efficiency:       2.57%   819.12k

        CACHE HITS BY CACHE LIST:
          Anonymously Used:             2.27%   716.60k
          Most Recently Used:           17.26%  5.46m
          Most Frequently Used:         80.17%  25.35m
          Most Recently Used Ghost:     0.19%   60.25k
          Most Frequently Used Ghost:   0.11%   35.37k

        CACHE HITS BY DATA TYPE:
          Demand Data:                  71.60%  22.64m
          Prefetch Data:                0.07%   21.04k
          Demand Metadata:              25.82%  8.16m
          Prefetch Metadata:            2.51%   794.39k

        CACHE MISSES BY DATA TYPE:
          Demand Data:                  33.44%  1.58m
          Prefetch Data:                16.92%  798.09k
          Demand Metadata:              48.90%  2.31m
          Prefetch Metadata:            0.75%   35.27k


DMU Prefetch Efficiency:                                        173.06m
        Hit Ratio:                      86.14%  149.07m
        Miss Ratio:                     13.86%  23.99m



ZFS Tunable:
        metaslab_debug_load                               0
        zfs_arc_min_prefetch_lifespan                     0
        zfetch_max_streams                                8
        zfs_nopwrite_enabled                              1
        zfetch_min_sec_reap                               2
        zfs_dbgmsg_enable                                 0
        zfs_dirty_data_max_max_percent                    25
        zfs_arc_p_aggressive_disable                      1
        spa_load_verify_data                              1
        zfs_zevent_cols                                   80
        zfs_dirty_data_max_percent                        10
        zfs_sync_pass_dont_compress                       5
        l2arc_write_max                                   8388608
        zfs_vdev_scrub_max_active                         2
        zfs_vdev_sync_write_min_active                    10
        zvol_prefetch_bytes                               131072
        metaslab_aliquot                                  524288
        zfs_no_scrub_prefetch                             0
        zfs_arc_shrink_shift                              0
        zfetch_block_cap                                  256
        zfs_txg_history                                   0
        zfs_delay_scale                                   500000
        zfs_vdev_async_write_active_min_dirty_percent     30
        metaslab_debug_unload                             0
        zfs_read_history                                  0
        zvol_max_discard_blocks                           16384
        zfs_recover                                       0
        l2arc_headroom                                    2
        zfs_deadman_synctime_ms                           1000000
        zfs_scan_idle                                     50
        zfs_free_min_time_ms                              1000
        zfs_dirty_data_max                                6741298790
        zfs_vdev_async_read_min_active                    1
        zfs_mg_noalloc_threshold                          0
        zfs_dedup_prefetch                                0
        zfs_vdev_max_active                               1000
        l2arc_write_boost                                 8388608
        zfs_resilver_min_time_ms                          3000
        zfs_vdev_async_write_max_active                   10
        zil_slog_limit                                    1048576
        zfs_prefetch_disable                              0
        zfs_resilver_delay                                2
        metaslab_lba_weighting_enabled                    1
        zfs_mg_fragmentation_threshold                    85
        l2arc_feed_again                                  1
        zfs_zevent_console                                0
        zfs_immediate_write_sz                            32768
        zfs_dbgmsg_maxsize                                4194304
        zfs_free_leak_on_eio                              0
        zfs_deadman_enabled                               1
        metaslab_bias_enabled                             1
        zfs_arc_p_dampener_disable                        1
        zfs_object_mutex_size                             64
        zfs_metaslab_fragmentation_threshold              70
        zfs_no_scrub_io                                   0
        metaslabs_per_vdev                                200
        zfs_dbuf_state_index                              0
        zfs_vdev_sync_read_min_active                     10
        metaslab_fragmentation_factor_enabled             1
        zvol_inhibit_dev                                  0
        zfs_vdev_async_write_active_max_dirty_percent     60
        zfs_vdev_cache_size                               0
        zfs_vdev_mirror_switch_us                         10000
        zfs_dirty_data_sync                               67108864
        spa_config_path                                   /etc/zfs/zpool.cache
        zfs_dirty_data_max_max                            16853246976
        zfs_arc_lotsfree_percent                          10
        zfs_zevent_len_max                                128
        zfs_scan_min_time_ms                              1000
        zfs_arc_sys_free                                  0
        zfs_arc_meta_strategy                             1
        zfs_vdev_cache_bshift                             16
        zfs_arc_meta_adjust_restarts                      4096
        zfs_max_recordsize                                1048576
        zfs_vdev_scrub_min_active                         1
        zfs_vdev_read_gap_limit                           32768
        zfs_arc_meta_limit                                0
        zfs_vdev_sync_write_max_active                    10
        l2arc_norw                                        0
        zfs_arc_meta_prune                                10000
        metaslab_preload_enabled                          1
        l2arc_nocompress                                  0
        zvol_major                                        230
        zfs_vdev_aggregation_limit                        131072
        zfs_flags                                         0
        spa_asize_inflation                               24
        zfs_admin_snapshot                                0
        l2arc_feed_secs                                   1
        zio_taskq_batch_pct                               75
        zfs_sync_pass_deferred_free                       2
        zfs_disable_dup_eviction                          0
        zfs_arc_grow_retry                                0
        zfs_read_history_hits                             0
        zfs_vdev_async_write_min_active                   1
        zfs_vdev_async_read_max_active                    3
        zfs_scrub_delay                                   4
        zfs_delay_min_dirty_percent                       60
        zfs_free_max_blocks                               100000
        zfs_vdev_cache_max                                16384
        zio_delay_max                                     30000
        zfs_top_maxinflight                               32
        ignore_hole_birth                                 1
        spa_slop_shift                                    5
        zfs_vdev_write_gap_limit                          4096
        spa_load_verify_metadata                          1
        spa_load_verify_maxinflight                       10000
        l2arc_noprefetch                                  1
        zfs_vdev_scheduler                                noop
        zfs_expire_snapshot                               300
        zfs_sync_pass_rewrite                             2
        zil_replay_disable                                0
        zfs_nocacheflush                                  0
        zfs_arc_max                                       0
        zfs_arc_min                                       0
        zfs_read_chunk_size                               1048576
        zfs_txg_timeout                                   5
        zfs_pd_bytes_max                                  52428800
        l2arc_headroom_boost                              200
        zfs_send_corrupt_data                             0
        l2arc_feed_min_ms                                 200
        zfs_arc_meta_min                                  0
        zfs_arc_average_blocksize                         8192
        zfetch_array_rd_sz                                1048576
        zfs_autoimport_disable                            1
        zfs_arc_p_min_shift                               0
        zio_requeue_io_start_cut_in_line                  1
        zfs_vdev_sync_read_max_active                     10
        zfs_mdcomp_disable                                0
        zfs_arc_num_sublists_per_state                    8

Linux
  1. Le but de .bashrc et comment ça marche ?

  2. Ny Way pour connaître la taille du cache L1, L2, L3 et Ram sous Linux?

  3. Comment vérifier la taille totale de la RAM et l'utilisation de la mémoire sous Linux

  4. Comment calculer l'utilisation de la mémoire sous Linux en utilisant sar, ps et free

  5. Comment pouvez-vous déterminer les versions installées des bibliothèques glibc ?

Comment obtenir la date et l'heure actuelles en Python

Comment la commande stat calcule-t-elle les blocs d'un fichier ?

Comment enregistrer la consommation de mémoire sous Linux ?

Comment puis-je limiter le cache utilisé par la copie afin qu'il y ait encore de la mémoire disponible pour un autre cache ?

Comment puis-je voir la taille des fichiers et des répertoires sous Linux ?

Comment dois-je déterminer l'utilisation actuelle du réseau ?