/ / alta utilização de memória de troca - java, java-ee, solaris

alta utilização de memória de troca - java, java-ee, solaris

Configuração do Servidor:

  1. Ram física - 16Gb
  2. Memória de Troca - 27Gb
  3. SO - Solaris 10
  4. Memória Física Grátis - 598 Mb
  5. Memória de troca usada - ~ 26Gb
  6. Versão Java - VM do servidor HotSpot (TM) Java - 1.6.0_17-b04

Minha tarefa é reduzir a memória swap usada: - Soluções que tenho embora

  1. Pare todos os aplicativos java e espere até o físicomemória está suficientemente liberada. então execute o comando "swapoff -a" (Ainda assim, para descobrir o equivalente do Solaris a este comando) ... aguarde até que a memória swap usada seja reduzida a zero. então execute o comando "swapon -a"
  2. Aumentar Memória Física

Preciso de ajuda nos seguintes pontos:

  1. Qual é o equivalente solaris de swapoff e swapon?
  2. A opção 1 funcionará para limpar o swap usado?

Obrigado um milhão !!!

Respostas:

7 para resposta № 1

Primeiro, Java e swap não se misturam. Se o seu aplicativo java está trocando, você está simplesmente condenado. Poucas coisas matam uma máquina como um processo java trocado. GC e swap são apenas um pesadelo.

Então, dado que, se você maquina com o processo java está trocando - essa máquina é muito pequena. Obtenha mais memória ou reduza a carga na máquina (incluindo o heap do processo java, se possível).

O fato de sua máquina não possuir memória física (600 Mb) e nenhum espaço de troca livre (1ish Gb) é outro indicador de que a máquina está sobrecarregada.

Todos os tipos de coisas podem estar criticando seu processo Java quando os recursos estão esgotados.

Matar o processo Java irá "tirá-lo deswap ", uma vez que o processo não existe, ele não pode estar em swap. Mesmo para todos os outros processos." Swap memory "pode ​​não cair instantaneamente, mas se um processo não existir - ele pode" t swap (exceto o uso de buffers de memória compartilhada persistente que têm a infelicidade de serem trocados, e Java normalmente não os utiliza.)

Não é realmente uma boa maneira que eu saiba para dizer ao sistema operacional para bloquear um programa específico para a RAM física e impedir que ele seja paginado. E, francamente, você não quer.

O que quer que esteja tirando toda a sua memória RAM, você precisaconsidere seriamente reduzir sua pegada (s), ou mover o processo Java para fora desta máquina. Você está simplesmente correndo para limites difíceis, e não há mais sangue nesta pedra.


0 para resposta № 2

Não está claro para mim o que você está perguntando -parar aplicativos que consomem memória deve liberar memória (e trocar espaço potencialmente). Não está claro a partir de sua descrição que o Java está tomando toda a memória em sua caixa - geralmente não há razões para executar a JVM alocando mais memória que a memória física na caixa. Verifique como você inicia a JVM e quanta memória está alocada.

Aqui está como gerenciar o swap no Solaris:

http://www.aspdeveloper.net/tiki-index.php?page=SolarisSwap