回答:
ZFSコードは、procfsを通じてさまざまな統計を報告します。ARCのサイズを決定するには、/proc/spl/kstat/zfs/arcstats
(通常、/ procにprocfsがマウントされていると仮定して)、特にc
、c_max
およびの値を確認しsize
ます。(Oracleコミュニティフォーラムのこの投稿も参照してください。Oracleサイトが利用できなくなった場合の代替インターネットアーカイブコピー。)
c
あるターゲットのサイズをバイト単位でARCのc_max
ある最大サイズをバイト単位でのARCsize
ある現在のサイズをバイト単位でARCのARCの最大サイズは、モジュールにzfs_arc_max=N
パラメーターをzfs
(modprobeを介して)渡すことで調整できます。これN
は、バイト単位の最大ARCサイズです。または、バイト単位の新しい最大サイズをに書き込むことにより、オンザフライで調整できます/sys/module/zfs/parameters/zfs_arc_max
。
そのためどのようにLinux上でZFS、ARCメモリ実装されている振る舞い(システムがメモリ圧力の下に来る場合例えば、それは追い出される)キャッシュメモリなどをしているが、集計通常のメモリ割り当てとカーネルによって。これは、システムの空きメモリが現在のシステムワークロードを想定した場合よりもはるかに少ないように見えるが、正常であるため、混乱を招く可能性があります。
ARCサイズをメガバイト単位で取得するには、のようなものを使用できますawk '/^size/ { print $1 " " $3 / 1048576 }' < /proc/spl/kstat/zfs/arcstats
。(1,048,576はメガバイトのバイト数です。)
たとえば、私のシステム(ほぼ排他的にZFSを使用している)は、
$ 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
$
つまり、現在常駐しているプロセスによる実際のメモリ使用量は約8,669 MB(16,808 MBから8,139 MB減少)になります。
MichaelKjörlingの回答に基づいて、arc_summary.pyを使用することもできます。
ここで、ARCがデスクトップのメモリの半分をどのように使用しているかを確認できます。
root @ host:〜#free -g キャッシュされた使用済み共有バッファの合計 メンバー:62 56 6 1 1 5 -/ +バッファ/キャッシュ:49 13 スワップ:7 0 7 root @ host:〜#arc_summary.py -------------------------------------------------- ---------------------- ZFSサブシステムレポート2017年2月24日金曜日19:44:20 ARCサマリー:(健康) メモリスロットルカウント:0 ARCその他: 削除済み:1.33m ミューテックスミス:99 Evict Skips:99 ARCサイズ:98.13%30.80 GiB ターゲットサイズ:(適応)100.00%31.39 GiB 最小サイズ(ハードリミット):0.10%32.00 MiB 最大サイズ(High Water):1004:1 31.39 GiB ARCサイズの内訳: 最近使用したキャッシュサイズ:84.25%26.45 GiB よく使用されるキャッシュサイズ:15.75%4.95 GiB ARCハッシュの内訳: エレメント最大:1.11m 現在の要素:53.48%592.56k 衝突:763.42k チェーン最大:4 チェーン:19.62k ARCの合計アクセス:36.34m キャッシュヒット率:87.02%31.62m キャッシュミス率:12.98%4.72m 実際のヒット率:84.78%30.81m データ需要効率:93.49%24.22m データのプリフェッチ効率:2.57%819.12k キャッシュリストによるキャッシュヒット: 匿名使用:2.27%716.60k 最近使用したもの:17.26%5.46m 最もよく使用される:80.17%25.35m 最近使用したゴースト:0.19%60.25k 最も頻繁に使用されるゴースト:0.11%35.37k データタイプ別のキャッシュヒット: 需要データ:71.60%22.64m データのプリフェッチ:0.07%21.04k 需要メタデータ:25.82%8.16m プリフェッチメタデータ:2.51%794.39k データタイプ別のキャッシュミス: 需要データ:33.44%1.58m データのプリフェッチ:16.92%798.09k 需要メタデータ:48.90%2.31m プリフェッチメタデータ:0.75%35.27k DMUプリフェッチ効率:173.06m ヒット率:86.14%149.07m ミス率:13.86%23.99m ZFS調整可能: 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
arc_summary
なし.py