web-dev-qa-db-ja.com

ZFS-常にメモリ不足

ZFSは、4GB以上のシステムで1GBを除くすべての物理メモリを使用するように設定されていることを読みました。 ZFSファイルシステムを実行しているホームサーバーを実行している仮想マシンがあるので、これを手動で減らしてVMにスペースを割り当て、将来のKVM展開のための余裕を持たせたいと思いました。

/etc/modprobe.d/zfs.confファイルに次の行を設定すると、ZFSが4GBのみを使用するように制限されることを理解しました。

options zfs zfs_arc_max=4294967296

再起動後、htopはRAMのかなりの部分が割り当てられていることを示していますが、未使用の領域がたくさんあります。

ただし、一定期間後、RAM使用率は、次に示すようにスワップに入るまで増加します。

enter image description here RES使用率でソートされたタスクを含むホームサーバーのHtop

質問

何かを間違って設定しましたか、またはZFSのフットプリントを減らすために設定する必要がある何か他のものがありますか?おそらくZFSではありませんが、私のRAMを食べている他の何かがありますか?

追加情報

cat /proc/spl/kstat/zfs/arcstatsの出力は次のとおりです。

5 1 0x01 85 4080 4981548270 615775159747876
name                            type data
hits                            4    46287364
misses                          4    2610021
demand_data_hits                4    30804990
demand_data_misses              4    578061
demand_metadata_hits            4    9829556
demand_metadata_misses          4    357556
prefetch_data_hits              4    2489500
prefetch_data_misses            4    1569248
prefetch_metadata_hits          4    3163318
prefetch_metadata_misses        4    105156
mru_hits                        4    12907488
mru_ghost_hits                  4    114469
mfu_hits                        4    27727068
mfu_ghost_hits                  4    464039
deleted                         4    2749215
recycle_miss                    4    8133
mutex_miss                      4    740
evict_skip                      4    62122
evict_l2_cached                 4    0
evict_l2_eligible               4    270710646272
evict_l2_ineligible             4    122732333056
hash_elements                   4    268203
hash_elements_max               4    268941
hash_collisions                 4    7490083
hash_chains                     4    71651
hash_chain_max                  4    9
p                               4    1982394368
c                               4    4294967296
c_min                           4    4194304
c_max                           4    4294967296
size                            4    4294834528
hdr_size                        4    86552992
data_size                       4    3125542912
meta_size                       4    526384640
other_size                      4    556353984
anon_size                       4    540672
anon_evict_data                 4    0
anon_evict_metadata             4    0
mru_size                        4    1985674752
mru_evict_data                  4    1692532736
mru_evict_metadata              4    124579328
mru_ghost_size                  4    2308680192
mru_ghost_evict_data            4    1841692672
mru_ghost_evict_metadata        4    466987520
mfu_size                        4    1665712128
mfu_evict_data                  4    1432485888
mfu_evict_metadata              4    56686592
mfu_ghost_size                  4    1953543680
mfu_ghost_evict_data            4    1462370304
mfu_ghost_evict_metadata        4    491173376
l2_hits                         4    0
l2_misses                       4    0
l2_feeds                        4    0
l2_rw_clash                     4    0
l2_read_bytes                   4    0
l2_write_bytes                  4    0
l2_writes_sent                  4    0
l2_writes_done                  4    0
l2_writes_error                 4    0
l2_writes_hdr_miss              4    0
l2_evict_lock_retry             4    0
l2_evict_reading                4    0
l2_free_on_write                4    0
l2_abort_lowmem                 4    0
l2_cksum_bad                    4    0
l2_io_error                     4    0
l2_size                         4    0
l2_asize                        4    0
l2_hdr_size                     4    0
l2_compress_successes           4    0
l2_compress_zeros               4    0
l2_compress_failures            4    0
memory_throttle_count           4    0
duplicate_buffers               4    0
duplicate_buffers_size          4    0
duplicate_reads                 4    0
memory_direct_count             4    2561
memory_indirect_count           4    36032
arc_no_grow                     4    0
arc_tempreserve                 4    0
arc_loaned_bytes                4    0
arc_Prune                       4    0
arc_meta_used                   4    1169291616
arc_meta_limit                  4    3221225472
arc_meta_max                    4    1490740400

更新

ps-memツール を実行して、すべてのアプリケーションで使用されているメモリの内訳を実行しましたが、わずか8.3 GBになりました。これは、ZFS ARCが明らかに12 GiBに達するはずの4294834528バイト(4GiB)と組み合わされていますが、約3-4 GiBだけそれを超えていることがはっきりとわかります。おそらくARCはRAMまたは何かを適切に解放していないのでしょうか?


2015年5月5日更新-一時的な回避策

次のコマンドを実行すると、メモリ使用量が このyoutubeビデオで示されている として消去されます。

sync; echo 2 | Sudo tee /proc/sys/vm/drop_caches

このコマンドの詳細

7
Programster

ZFSは、カーネルで多くの SLAB スペースも使用します。 /proc/meminfoを確認するか、nmonをインストールすることで、使用しているスラブの量を確認できます。

スラブの使用に関する詳細情報は、/proc/slabinfoおよび/proc/spl/kmem/slabにあります。

ZFSのメモリ使用量についてさらに理解するには、 this を読む価値があります。

2
Torge