Ubuntu: Não é possível relacionar a saída livre -lh com a saída de comando superior [duplicado]

1

Estou verificando meu uso de RAM usando o comando free -lh e ele mostra os resultados abaixo.

             total       used       free     shared    buffers     cached
Mem:           62G        29G        33G       278M       335M        19G
Low:           62G        29G        33G
High:           0B         0B         0B
-/+ buffers/cache:       9.1G        53G
Swap:          15G         0B        15G

Como eu posso ver o RAM usado é de 29GB e o RAM disponível é de 33GB, mas quando eu verifico o mesmo usando o comando top ele me mostra a saída abaixo.

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
23555 glassfi+  20   0 19.896g  5.270g  55092 S   0.0  8.4 121:16.24 java
 2457 hg+       20   0 20.294g  981344  20588 S   0.0  1.5   6:00.18 java
 2615 hg+       20   0 20.294g  950520  20560 S   0.0  1.4   0:22.18 java
 1992 tomcat6   20   0 5783768  518860  20976 S   0.0  0.8   8:05.15 java
.................................................

Do resultado acima eu posso ver glassfish está usando 19GB de RAM e hg + está usando 20GB Ram, isso significa mais de 39 GB de RAM é usado.

Minha pergunta é, então, por que o comando free -lh está mostrando apenas 29GB de RAM usado

    
por user254266 05.10.2017 / 17:55

1 resposta

2

A coluna "VIRT" mostra a quantidade de memória que os processos têm alocado , e não o quanto eles estão realmente usando. Processos podem alocar mais memória do que eles usam; isso é particularmente verdadeiro nos processos Java, que tendem a alocar grandes pilhas, mas não usam necessariamente tudo. A coluna "RES" mostra quanto eles estão usando: pouco mais de 5GiB para o processo glassfish , pouco menos de 1GiB cada para os processos hg .

    
por 05.10.2017 / 17:59