Pergunta de interpretação de uso de memória sobre um processo Java no Ubuntu LTS 14.04

0

Eu estava seguindo este artigo Verificando o tamanho do Ram para meu aplicativo Java de fundição em nuvem em execução no Ubuntu LTS 14.04. Pelo que entendi a memória física da instância executando meu processo Java é 32g. Para o aplicativo Java, eu especifiquei o tamanho do heap como 1g. Quando eu olho para a saída do comando top , vejo que ele tem 3.221.372 KiB, que é 3g.

Existe uma explicação lógica de

  • Por que o processo Java está usando a memória do 3g virt quando há memória física adequada e

  • Por que o processo Java está usando mais memória do que 1g, eu especifiquei?

Resultado de grep MemTotal /proc/meminfo | awk '{print $2 / 1024}'

32170.2

Resultado da saída do comando top :

Tasks:   5 total,   1 running,   4 sleeping,   0 stopped,   0 zombie
%Cpu(s): 46.2 us, 43.2 sy,  0.0 ni,  1.7 id,  0.3 wa,  0.0 hi,  8.5 si,  0.2 st
KiB Mem:  32942284 total, 27706852 used,  5235432 free,   357028 buffers
KiB Swap: 32949308 total,  2546016 used, 30403292 free.  6546428 cached Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                  
      7 vcap      10 -10 3221372 108524  11936 S   1.7  0.3   1:31.17 java               

Resultado de free -g

             total       used       free     shared    buffers     cached
Mem:            31         26          4          0          0          6
-/+ buffers/cache:         19         11
Swap:           31          2         28
    
por randominstanceOfLivingThing 30.11.2017 / 21:13

0 respostas