Consumo de memória virtual do Linux após analisar o arquivo de log

0

Eu escrevi um analisador para ler o auth.log. Por alguma razão ao analisar auth.logRecebo que VSZé maior do que a memória física total, o que é 2GB. Dependendo do tamanho do auth.log e do tempo de execução do leitor, VSZele aumentará (às vezes até ~ 8 GB).

Quão normal é isso? Qual poderia ser o motivo desse consumo de memória?

# ps aux
USER   PID  CPU %MEM     VSZ   RSS   TTY STAT START  TIME  COMMAND
root 17547  0.7  1.4 3123744 30820 pts/2  Sl+ Jul30 11:42 ./reader auth.log

# free
             total       used       free     shared    buffers     cached
Mem:       2063568    1842232     221336          0     179084    1057680
-/+ buffers/cache:     605468    1458100
Swap:      4032504        288    4032216
Mike Darrow
fonte
Sem ver o script, o motivo mais provável é que você esteja lendo todo o log na memória ou se houver um vazamento de memória por não liberar recursos. Gostaria de adicionar o script ao post?
Paul
@Paul: Isso é verdade, por que o tamanho de seu conjunto de residentes seria tão baixo?
David Schwartz
@ Paul: Obrigado. Sim, estou lendo quase todo o log na memória. Não posso postar devido ao meu trabalho.
Mike Darrow

Respostas:

1

É normal. A memória virtual é tão barata, efetivamente livre, que não há muito sentido em tentar reduzir o consumo dela.

David Schwartz
fonte
Obrigado. Isso poderia potencialmente travar a máquina se for grande para um processo?
Mike Darrow
@MikeDarrow: Não. A memória virtual é apenas um espaço de endereçamento.
David Schwartz