O uso de memória Java aumenta para toda a RAM ao executar o Minecraft Server

3

Quando executo o servidor Minecraft, com o passar do tempo (poucas horas a alguns dias), o uso de memória por balões Java para ocupar toda a memória disponível do computador e o desempenho do servidor prejudica: atrasos, jogadores perdem a conexão e exibições de minecraft mensagens como "[thread do servidor / WARN]: não consegue acompanhar! A hora do sistema mudou ou o servidor está sobrecarregado? Executando 3126ms para trás, pulando 62 tick (s)"

Sem parar e reiniciar o servidor do Minecraft toda vez que ele se degradar dessa maneira, existe uma maneira de evitar que isso aconteça em primeiro lugar?

Obrigado pela sua ajuda.

Histórico:

Sistema Operacional: Ubuntu 12.04.3 LTS Server

Servidor: HP ProLiant DL360 G5, 2 Xeon E5420 a 2,50 GHz, 16 GB de RAM

versão do java "1.6.0_27"

Ambiente de tempo de execução OpenJDK (IcedTea6 1.12.6) (6b27-1.12.6-1ubuntu0.12.04.4)

VM do servidor OpenJDK de 64 bits (compilação 20.0-b12, modo misto)

Para executar o Minecraft eu uso o seguinte, mas tentei diferentes limites -Xmx -Xms com o mesmo problema de desenvolvimento

java -Xmx2048M -Xms2048M -jar minecraft_server.jar nogui

Monitorando o uso de memória com o topo, ele começa com pouca carga e tudo funciona bem por um tempo:

Tasks: 139 total,   1 running, 138 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.5%us,  0.0%sy,  0.0%ni, 97.4%id,  0.1%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  16433112k total,  1420264k used, 15012848k free,    10220k buffers
Swap: 16773116k total,    51980k used, 16721136k free,   107432k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 5025 tom       20   0 5095m 1.0g  11m S   20  6.5   5:57.76 java
 5437 tom       20   0 17344 1300  952 R    0  0.0   0:00.03 top
    1 root      20   0 24332  660  112 S    0  0.0   0:01.21 init
    2 root      20   0     0    0    0 S    0  0.0   0:00.05 kthreadd

Eventualmente, é quase impossível usar quase toda a memória (97% dos 16GB), RES vai para 15g, VIRT para ~ 19g:

Tasks: 139 total,   1 running, 138 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.5%us,  0.2%sy,  0.0%ni, 97.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  16433112k total,  16284172k used, 148940k free,    1104k buffers
Swap: 16773116k total,    952160k used, 15820956k free,   33824k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 5025 tom       20   0 19.5g  15g 4292 S   20 97.1  27:20.76 java
    1 root      20   0 24332    0    0 S    0  0.0   0:01.21 init
    2 root      20   0     0    0    0 S    0  0.0   0:00.05 kthreadd
    
por Tom 07.12.2013 / 22:06

1 resposta

3

A alteração da versão padrão do Java para a versão 7 parece ter corrigido o problema; Minecraft servidor foi executado ~ um dia sem o problema de vazamento de memória Java agora. Parece que o Minecraft 1.7.2 não funciona bem com o Java versão 6. Eu havia instalado o Java 7 como sugerido por outro post neste fórum usando:

sudo apt-get install openjdk-7-jre-headless

No entanto, não percebi que isso não se tornava automaticamente a versão padrão quando o java era executado. Para alterar a versão padrão do java:

sudo update-alternatives --config java

Então;

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      auto mode
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
* 2            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      manual mode

Press enter to keep the current choice[*], or type selection number:

Eu selecionei '2', o / usr / lib / jvm / java-7-openjdk-amd64 / jre / bin / java para ser o padrão. Depois de reiniciar o servidor Minecraft, o uso de memória Java permaneceu estável em cerca de 1.1g por cerca de um dia agora com um número de jogadores usando o jogo (sem atraso, ou outras mensagens de erro no Minecraft). Anteriormente, ele teria se degradado dentro de algumas horas sob esse cenário.

    
por Tom 09.12.2013 / 03:14

Tags