ZFS no Linux + KVM rouba memória

2

Estou tendo um problema com um servidor do CentOS 7 em que tenho um único pool do ZFS criado junto com (atualmente) uma única VM do KVM em execução (convidado do CentOS 6). Top está relatando que a VM está usando cerca de 50% da memória do meu sistema (o que é correto - eu configuro para 16 GB de um total de 32 GB), mas o free reporta que minha memória ativa está em torno de 26 GB. Há um extra de 10 GB de RAM em uso em algum lugar que eu simplesmente não consigo encontrar, embora eu tenha restringido o ZFS a usar apenas 4 GB para o ARC. Top não mostra mais nada usando memória:

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
10928 qemu      20   0 20.773g 0.015t    680 S  55.8 50.7  12148:34 qemu-kvm
  530 root      20   0   59376   7940   7796 S   0.0  0.0   1:52.59 systemd-journal
 1913 root      20   0 1063816   5820   3120 S   0.0  0.0   0:01.36 libvirtd
 9005 root      20   0  135612   5344   4092 S   0.0  0.0   0:01.69 sshd
 8637 root      20   0  135612   5336   4092 S   0.0  0.0   0:00.42 sshd
    1 root      20   0   50960   4360   2152 S   0.0  0.0   0:12.09 systemd
11597 postfix   20   0   91636   3892   2892 S   0.0  0.0   0:00.00 pickup
 1400 root      20   0  378052   3168   2076 S   0.0  0.0   0:04.18 NetworkManager
 8651 root      20   0  115452   2140   1672 S   0.0  0.0   0:00.13 bash
 9020 root      20   0  115352   2056   1632 S   0.0  0.0   0:00.00 bash

O Free não tem boas informações sobre onde está a RAM (não, não é cache do sistema de arquivos, é relatado como ativamente em uso):

             total       used       free     shared    buffers     cached
Mem:         31974      26534       5439         13          0         90
-/+ buffers/cache:      26444       5530
Swap:         1999        925       1074

Minhas estatísticas do ZFS estão relatando que o ARC está dentro dos limites normais:

5 1 0x01 85 4080 3000154942 1126206978029170
name                            type data
hits                            4    626600066
misses                          4    531647209
demand_data_hits                4    324930179
demand_data_misses              4    239380938
demand_metadata_hits            4    246080774
demand_metadata_misses          4    33168747
prefetch_data_hits              4    55239743
prefetch_data_misses            4    256749089
prefetch_metadata_hits          4    349370
prefetch_metadata_misses        4    2348435
mru_hits                        4    170996240
mru_ghost_hits                  4    146648139
mfu_hits                        4    412479249
mfu_ghost_hits                  4    55201631
deleted                         4    522830695
recycle_miss                    4    688200803
mutex_miss                      4    5494038
evict_skip                      4    263172839174
evict_l2_cached                 4    2293824808448
evict_l2_eligible               4    3235679258112
evict_l2_ineligible             4    711594439680
hash_elements                   4    1003039
hash_elements_max               4    31494585
hash_collisions                 4    453192154
hash_chains                     4    298915
hash_chain_max                  4    105
p                               4    1899257344
c                               4    4294967296
c_min                           4    4194304
c_max                           4    4294967296
size                            4    4294703744
hdr_size                        4    428382448
data_size                       4    3463036928
meta_size                       4    268575232
other_size                      4    101467000
anon_size                       4    2181120
anon_evict_data                 4    0
anon_evict_metadata             4    0
mru_size                        4    1823588352
mru_evict_data                  4    1620893696
mru_evict_metadata              4    92227584
mru_ghost_size                  4    2367817728
mru_ghost_evict_data            4    1721548800
mru_ghost_evict_metadata        4    646268928
mfu_size                        4    1905842688
mfu_evict_data                  4    1840373760
mfu_evict_metadata              4    17820160
mfu_ghost_size                  4    1927131648
mfu_ghost_evict_data            4    1881784320
mfu_ghost_evict_metadata        4    45347328
l2_hits                         4    124320745
l2_misses                       4    404820103
l2_feeds                        4    1128427
l2_rw_clash                     4    52038
l2_read_bytes                   4    474159669248
l2_write_bytes                  4    246928839168
l2_writes_sent                  4    541747
l2_writes_done                  4    541747
l2_writes_error                 4    0
l2_writes_hdr_miss              4    6389
l2_evict_lock_retry             4    1037
l2_evict_reading                4    3
l2_free_on_write                4    3709466
l2_abort_lowmem                 4    1752
l2_cksum_bad                    4    0
l2_io_error                     4    0
l2_size                         4    2306560512
l2_asize                        4    2249048064
l2_hdr_size                     4    33242136
l2_compress_successes           4    45560845
l2_compress_zeros               4    0
l2_compress_failures            4    7074167
memory_throttle_count           4    0
duplicate_buffers               4    0
duplicate_buffers_size          4    0
duplicate_reads                 4    0
memory_direct_count             4    140693
memory_indirect_count           4    222279
arc_no_grow                     4    0
arc_tempreserve                 4    0
arc_loaned_bytes                4    0
arc_prune                       4    36031794
arc_meta_used                   4    831666816
arc_meta_limit                  4    3221225472
arc_meta_max                    4    10590063600

Aqui está a configuração atual do ZFS:

  pool: pool
 state: ONLINE
  scan: scrub repaired 0 in 1h33m with 0 errors on Sat Dec  6 02:33:48 2014
config:

        NAME                                                  STATE     READ WRITE CKSUM
        pool                                                  ONLINE       0     0     0
          mirror-0                                            ONLINE       0     0     0
            sda                                               ONLINE       0     0     0
            sdb                                               ONLINE       0     0     0
          mirror-1                                            ONLINE       0     0     0
            sdc                                               ONLINE       0     0     0
            sdd                                               ONLINE       0     0     0
        logs
          mirror-2                                            ONLINE       0     0     0
            ata-INTEL_SSDSA2CW120G3_BTPR13600113120LGN-part3  ONLINE       0     0     0
            ata-INTEL_SSDSA2CW120G3_BTPR152503LQ120LGN-part3  ONLINE       0     0     0
        cache
          ata-INTEL_SSDSA2CW120G3_BTPR13600113120LGN-part4    ONLINE       0     0     0
          ata-INTEL_SSDSA2CW120G3_BTPR152503LQ120LGN-part4    ONLINE       0     0     0

errors: No known data errors

Parece que tenho mais de 6 GB de memória que acabaram de sumir do sistema, e não tenho certeza do que está acontecendo aqui. Alguém pode lançar alguma luz sobre isso?

Obrigado.

    
por Ghan 13.12.2014 / 08:55

1 resposta

2

Você tem muito L2ARC ... mais do que deveria. Isso não é tudo mágico ... Há algumas práticas recomendadas do ZFS que devem fazer parte do design.

L2ARC precisa ser mapeado em real RAM. A melhor prática que me lembro é ~ 1GB de RAM por 5GB de L2ARC. Então você tem 172 GB de L2ARC ... O sistema precisaria ser dimensionado para ~ 34,5 GB de RAM para o ZFS. Tomar um grande pedaço disso para uma VM obviamente impacta isso.

Tente usar este sistema sem L2ARC ou usando uma quantidade muito menor dele.

Nos meus ambientes, eu otimizar RAM wayyyy antes de adicionar um dispositivo L2ARC. Alguns dizem que você não deve nem seguir esse caminho até ter 64 GB de RAM ou mais. Se você tiver SSDs extras e quiser usá-los, crie um pool de SSDs.

    
por 13.12.2014 / 15:32