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.
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!
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.
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).
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).
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.
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.