O VIRT
reflete a quantidade de Memória Virtual alocada por um processo, não um real. O espaço de endereçamento de um processo pode conter certas áreas mapeadas para arquivos correspondentes que não estão localizados na RAM.
Pelo menos as bibliotecas executáveis e compartilhadas do programa são mapeadas para o espaço de endereço virtual de um processo. Durante a execução do programa, o processo pode mapear outros arquivos para seu espaço de endereçamento e, às vezes, seu tamanho pode ser grande (imagens, filmes, bancos de dados) - ainda maior do que a quantidade disponível de RAM - é limitado pela quantidade total de memória endereçável. arquitetura do processador.
O Linux também usa a estratégia de alocação de memória otimista. Isso significa que, mesmo se um processo chamar malloc()
, a alocação de memória física poderá ser adiada até que a página seja usada. Isso significa que o processo pode alocar mais RAM do que o disponível.
O Linux também pode dispersar páginas idênticas na memória. Se dois processos usarem as mesmas páginas na memória, o kernel pode mapear a página virtual em uma real (e liberar a segunda).
Então, sim, é normal quando um processo aloca mais memória virtual do que a quantidade de memória física disponível.