Configuração do Servidor:
- Ram física - 16Gb
- Memória de Troca - 27Gb
- SO - Solaris 10
- Memória Física Grátis - 598 Mb
- Memória de troca usada - ~ 26Gb
- 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
- 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"
- Aumentar Memória Física
Preciso de ajuda nos seguintes pontos:
- Qual é o equivalente solaris de swapoff e swapon?
- A opção 1 funcionará para limpar o swap usado?
Obrigado um milhão !!!
Respostas:
7 para resposta № 1Primeiro, 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