Làm cách nào tôi có thể xác định kích thước hiện tại của ARC trong ZFS và làm thế nào ARC liên quan đến bộ nhớ trống hoặc bộ nhớ cache?


17

ZFS sử dụng ARC (bộ đệm thay thế thích ứng) không được tính trong việc sử dụng bộ nhớ "bộ đệm" Linux truyền thống. Làm cách nào tôi có thể xác định kích thước hiện tại cũng như ranh giới kích thước của ARC ZFS và làm thế nào để chúng liên quan đến dung lượng bộ nhớ trống hoặc bộ nhớ cache được báo cáo chẳng hạn free?

Câu trả lời:


20

Mã ZFS báo cáo các số liệu thống kê khác nhau thông qua Procfs. Để xác định kích thước của ARC, hãy xem /proc/spl/kstat/zfs/arcstats(giả sử các Procfs được gắn trên / Proc, theo thông lệ), cụ thể là các giá trị cho c, c_maxsize. (Xem thêm bài đăng này trên diễn đàn Cộng đồng Oracle . Bản sao Lưu trữ Internet thay thế trong trường hợp trang web Oracle không khả dụng.)

  • ckích thước đích của ARC tính bằng byte
  • c_maxkích thước tối đa của ARC tính bằng byte
  • sizekích thước hiện tại của ARC tính bằng byte

Kích thước tối đa của ARC có thể được điều chỉnh bằng cách chuyển zfs_arc_max=Ntham số cho zfsmô-đun (thông qua modprobe), trong đó Nkích thước ARC tối đa tính bằng byte hoặc nhanh chóng bằng cách ghi kích thước tối đa mới theo byte /sys/module/zfs/parameters/zfs_arc_max.

Do cách ZFS trên Linux được triển khai, bộ nhớ ARC hoạt động giống như bộ nhớ đệm (ví dụ, nó bị trục xuất nếu hệ thống chịu áp lực bộ nhớ), nhưng được tổng hợp bởi nhân như phân bổ bộ nhớ thông thường. Điều này có thể dẫn đến sự nhầm lẫn vì hệ thống dường như có bộ nhớ trống ít hơn nhiều so với dự kiến ​​với khối lượng công việc hiện tại của hệ thống, nhưng là bình thường.

Để có được kích thước ARC tính bằng megabyte, bạn có thể sử dụng một cái gì đó như awk '/^size/ { print $1 " " $3 / 1048576 }' < /proc/spl/kstat/zfs/arcstats. (1,048,576 là số byte cho megabyte.)

Ví dụ: hệ thống của tôi (sử dụng ZFS gần như độc quyền) có thể báo cáo

$ 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
$

điều đó có nghĩa là mức sử dụng bộ nhớ thực tế của các quy trình lưu trú hiện tại là khoảng 8.669 MB (giảm 16.808 MB giảm 8.139 MB).


13

Để xây dựng dựa trên câu trả lời của Michael Kjorling, bạn cũng có thể sử dụng arc_summary.py .

Tại đây bạn có thể thấy ARC đang sử dụng một nửa bộ nhớ máy tính để bàn của tôi như thế nào:

root @ host: ~ # free -g
             tổng số bộ đệm chia sẻ miễn phí được sử dụng lưu trữ
Mem: 62 56 6 1 1 5
- / + bộ đệm / bộ đệm: 49 13
Hoán đổi: 7 0 7

root @ host: ~ # arc_summary.py
-------------------------------------------------- ----------------------
Báo cáo hệ thống con ZFS Thứ Sáu ngày 24 tháng 2 19:44:20 2017
Tóm tắt ARC: (SỨC KHỎE)
        Bộ đếm bướm ga: 0

Linh tinh ARC:
        Đã xóa: 1,33m
        Hoa hậu Mutex: 99
        Bỏ qua: 99

Kích thước ARC: 98,13% 30,80 GiB
        Kích thước mục tiêu: (Thích nghi) 100,00% 31,39 GiB
        Kích thước tối thiểu (Giới hạn cứng): 0,10% 32,00 MiB
        Kích thước tối đa (Nước cao): 1004: 1 31,39 GiB

Phân tích kích thước ARC:
        Kích thước bộ đệm được sử dụng gần đây: 84,25% 26,45 GiB
        Kích thước bộ đệm thường được sử dụng: 15,75% 4,95 GiB

Phân tích băm ARC:
        Các yếu tố tối đa: 1,11m
        Các yếu tố hiện tại: 53,48% 592,56k
        Va chạm: 763,42k
        Chuỗi tối đa: 4
        Chuỗi: 19,62k

Tổng số lượt truy cập ARC: 36,34m
        Tỷ lệ truy cập bộ nhớ cache: 87,02% 31,62m
        Tỷ lệ Miss Miss: 12,98% 4,72m
        Tỷ lệ trúng thực tế: 84,78% 30,81m

        Hiệu quả nhu cầu dữ liệu: 93,49% 24,22m
        Hiệu quả tìm nạp trước dữ liệu: 2,57% 819,12k

        DANH SÁCH CACHE THEO DANH SÁCH CACHE:
          Được sử dụng ẩn danh: 2,27% 716,60k
          Được sử dụng gần đây nhất: 17,26% 5,46m
          Được sử dụng thường xuyên nhất: 80,17% 25,35m
          Con ma được sử dụng gần đây nhất: 0,19% 60,25k
          Con ma được sử dụng thường xuyên nhất: 0,11% 35,37k

        CACHE HITS B TYNG LOẠI DỮ LIỆU:
          Dữ liệu nhu cầu: 71,60% 22,64m
          Tải trước dữ liệu: 0,07% 21,04k
          Siêu dữ liệu nhu cầu: 25,82% 8,16m
          Tải trước siêu dữ liệu: 2,51% 794,39k

        NHIỆM VỤ B BYNG CÁCH LOẠI DỮ LIỆU:
          Dữ liệu nhu cầu: 33,44% 1,58m
          Tải trước dữ liệu: 16,92% 798,09k
          Siêu dữ liệu nhu cầu: 48,90% 2,31m
          Tải trước siêu dữ liệu: 0,75% 35,27k


Hiệu quả tìm nạp trước DMU: 173.06m
        Tỷ lệ trúng: 86,14% 149,07m
        Tỷ lệ hoa hậu: 13,86% 23,99m



Điều chỉnh ZFS:
        metaslab_debug_load 0
        zfs_arc_min_prefetch_lifespan 0
        zfetch_max_streams 8
        zfs_nopwrite_enables 1
        zfetch_min_sec_reap 2
        zfs_dbgmsg_enable 0
        zfs_denty_data_max_max_percent 25
        zfs_arc_p_agTHERive_disable 1
        spa_load_verify_data 1
        zfs_zevent_cols 80
        zfs_denty_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_denty_percent 30
        metaslab_debug_unload 0
        zfs_read_history 0
        zvol_max_discard_blocks 16384
        zfs_recover 0
        l2arc_head 2
        zfs_deadman_synctime_ms 1000000
        zfs_scan_idle 50
        zfs_free_min_time_ms 1000
        zfs_denty_data_max 6741298790
        zfs_vdev_async_read_min_active 1
        zfs_mg_noalloc_thr Ngưỡng 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_enables 1
        zfs_mg_frag sắc_thrưỡng 85
        l2arc_feed_again 1
        zfs_zevent_console 0
        zfs_im Ngay_write_sz 32768
        zfs_dbgmsg_maxsize 4194304
        zfs_free_leak_on_eio 0
        zfs_deadman_enables 1
        metaslab_bias_enables 1
        zfs_arc_p_dampener_disable 1
        zfs_object_mutex_size 64
        zfs_metaslab_frag sắc_thrưỡng 70
        zfs_no_scrub_io 0
        metaslabs_per_vdev 200
        zfs_dbuf_state_index 0
        zfs_vdev_sync_read_min_active 10
        metaslab_frag sắc_factor_enables 1
        zvol_inhibit_dev 0
        zfs_vdev_async_write_active_max_denty_percent 60
        zfs_vdev_cache_size 0
        zfs_vdev_mirror_switch_us 10000
        zfs_denty_data_sync 67108864
        spa_config_path /etc/zfs/zpool.cache
        zfs_denty_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_strargety 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_enables 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_denty_percent 60
        zfs_free_max_blocks 100000
        zfs_vdev_cache_max 16384
        zio_delay_max 30000
        zfs_top_maxinflight 32
        bỏ qua_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_Exire_snapshot 300
        zfs_sync_pass_rewrite 2
        zil numplay_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_alusive_blocksize 8192
        zfetch_array_rd_sz 1048576
        zfs_autoimport_disable 1
        zfs_arc_p_min_shift 0
        zio numqueue_io_start_cut_in_line 1
        zfs_vdev_sync_read_max_active 10
        zfs_mdcomp_disable 0
        zfs_arc_num_sublists_per_state 8

Tôi tự hỏi ý nghĩa của tỷ lệ được báo cáo cho Kích thước tối đa (Nước cao) có nghĩa là gì.
CMCDragonkai

Đối với người dùng Ubuntu: arc_summarykhông có.py
tải vào
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.