Isso é no Centos 5, Linux 2.6.33.3-xenU # 1 SMP qua 05 de maio 00:49:22 UTC 2010 i686 i686 i386 GNU / Linux
Eu tenho um processo do servidor java que eu normalmente executo com a seguinte configuração
-Xmx700m -Xms500m -XX:PermSize=128m -noclassgc
E é como um campeão. Mas, com o tempo, à medida que meus dados de aplicativo crescem, isso não será suficiente para operações normais.
Recentemente, adicionei mais memória ao meu VPS e tentei estender a memória:
-Xmx1024m -Xms1024m -XX:PermSize=256m -noclassgc
E o que acontece é que, quando inicializa o aplicativo, ele consome toda a "memória baixa" e o meu aplicativo trava (e geralmente há uma mensagem de rastreamento de pilha do kernel, mas não um pânico ou bug)
E nesse momento, eu estou torrado - o processo defunto parece possuir toda a memória fraca, e o assassino de oom começa a matar tudo. Eu tenho que reiniciar para corrigi-lo.
Mas quando eu volto para 700 meg, ele roda como um campeão novamente, e não usa muita "memória baixa" - (eu quero dizer, há cerca de 690 meg de memória baixa alocada, e apenas 140 meg é usado)
[]$ free -lm
total used free shared buffers cached
Mem: 2700 1334 1365 0 100 274
Low: 689 140 548
High: 2011 1194 816
-/+ buffers/cache: 959 1740
Swap: 714 0 714
Java é o 1.6:
java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Server VM (build 1.6.0-b105, mixed mode)
Alguém sabe por que isso está acontecendo? Estou planejando atualizar o java, mas se houver outro problema conhecido para esse cenário, eu adoraria ouvi-lo. Alterar o kernel pode ser problemático, mas se houver alguma alteração na configuração local do servidor, eu poderia usar memória alta em vez de pouca memória.