ZFS - sempre sem memória

6

Eu li que o ZFS foi configurado para usar toda a memória física, exceto 1 GB em sistemas com 4 GB ou mais. Como tenho máquinas virtuais executando meu home-server que está executando o sistema de arquivos ZFS, eu queria reduzi-lo manualmente para que minhas VMs alocassem espaço, e tenho espaço para futuras implantações de KVM.

Eu entendi que definir a seguinte linha no arquivo /etc/modprobe.d/zfs.conf limitaria o ZFS a usar apenas 4 GB.

options zfs zfs_arc_max=4294967296

Após a reinicialização, htop mostra que uma parte significativa da minha RAM foi alocada, mas há muito espaço não utilizado.

No entanto, após um período de tempo, a utilização da RAM aumentará até começarmos a trocar, conforme mostrado abaixo:

Htop do Home Server com tarefas ordenadas pelo uso do RES

Pergunta

Eu configurei algo incorretamente ou há algo mais que eu também precise definir para reduzir a pegada do ZFS? Talvez não seja o ZFS, mas há algo mais comendo minha memória RAM que eu não conheço?

Informações extras

A saída de cat /proc/spl/kstat/zfs/arcstats é a seguinte:

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

Atualizar

Eu executei a ferramenta ps-mem para executar um detalhamento da memória sendo utilizada por todos os applcations, e ela chega a apenas 8,3 GB. Isso combinado com o 4294834528 bytes (4GiB) que o ZFS ARC aparentemente só deve ter 12 GiB, mas você pode ver claramente que eu estou excedendo isso por aproximadamente 3-4 GiB. Talvez o ARC não esteja liberando RAM corretamente ou algo do tipo?

Atualização de 5 de maio de 2015 - Solução temporária

A execução do seguinte comando aparece para limpar o uso de memória como demonstrado neste vídeo do youtube .

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

Mais informações sobre este comando .

    
por Programster 26.03.2015 / 12:22

1 resposta

2

O ZFS também usa muito espaço SLAB no kernel. Você pode verificar quanto SLAB está usando verificando /proc/meminfo ou instalando nmon .

Informações mais detalhadas sobre o uso de placas podem ser encontradas em /proc/slabinfo e /proc/spl/kmem/slab

Vale a pena ler este para entender mais sobre o uso de memória do ZFS. p>     

por Torge 14.10.2016 / 10:45

Tags