Como evitar a troca?

3

Temos uma aplicação crítica que usa praticamente a nossa memória RAM. Na maior parte do tempo, o aplicativo permanece na RAM, no entanto, há alguma situação (por exemplo, quando alguns outros aplicativos e deamons começam a usar mais RAM), o que faz com que o SWAP comece a responder muito lentamente.

Existe alguma maneira de impedir que nosso aplicativo seja direcionado para o SWAP?

Obrigado pessoal!

    
por Jakub 27.07.2011 / 09:18

5 respostas

6

Desativar troca ou usar mlockall () para evitar que a memória do processo seja trocada. Existem limites de processo e de sistema, apesar de quantas páginas poderem ser bloqueadas, o que pode precisar ser ajustado para seus propósitos.

    
por 27.07.2011 / 09:32
2

Dê uma olhada aqui . Ao ecoar um valor entre 0 e 100 para /proc/sys/vm/swappiness , você pode controlar a ânsia de troca (0 não está muito ansioso, enquanto 100 está muito ansioso).

    
por 27.07.2011 / 09:32
1

Você precisa consertar o motivo subjacente para trocar em primeiro lugar. Isso significa ajustar seu aplicativo ou adicionar RAM. Trocar é o sintoma, não o problema - o problema é o tamanho incorreto do hardware do seu aplicativo (ou de um aplicativo mal ajustado / arquitetado).

    
por 25.08.2011 / 03:38
1

Trocar não é sempre um aplicativo ou uma falha de RAM, se você estiver no padrão da maioria das distros, e seu aplicativo tiver muitas páginas inativas, quando o sistema começar a carregar arquivos, o cache crescerá e manterá "arquivos" "na memória como cache para tentar evitar mais IO, mas isso não significa que o sistema está sendo inteligente para as suas necessidades, como um backup de um sistema de arquivos que acontece à noite e gera um cache muito grande de dados desnecessários. para o disco.

    
por 20.09.2013 / 17:20
0

Evitar que sua aplicação troque provavelmente fará com que ela responda mais lentamente. O sistema operacional está apenas trocando seu aplicativo porque não tem escolha. Se você impedir que isso aconteça, a carga total de E / S no sistema aumentará à medida que os outros processos precisarem alternar mais e mais, porque você está sobrecarregando toda a memória física. Isso também diminuirá sua E / S e o resultado será um desastre.

Se uma máquina não tiver memória física suficiente para sua carga de trabalho, ela será lenta. Mais memória física ou menos carga de trabalho é a solução. Brute tuning, como você está sugerindo, tenderá a tornar tudo pior.

    
por 25.08.2011 / 01:34