Você pode tentar jogar com o parâmetro sysctl "swappiness" ... IIRC quanto maior o valor, mais "provável a troca" é. Dê uma olhada aqui
Eu corro um processo que consome memória ( mkcromfs
) que consome mais memória do que eu tenho em meu latop, então é paginação e swappin e thrashing o tempo todo e loadavg é cerca de 2 ( compcache
já está em uso com a habitual partição swap também), mas avançando lentamente (embora eu tenha medo que ele finalmente tente alocar > 2GB e travar a drenagem de 2 dias de thrashing).
Quando quero usar o laptop para outra coisa, paro o processo, inicio o servidor X, o firefox e outros programas. O problema é que quando eu inicio o Firefox o loadavg pula para 10 e o sistema quase não responde (tempo para ligar / desligar o caps lock, atualizações lentas da posição do cursor do mouse, mudança lenta do servidor X para o console Linux, login lento) .
O mkcromfs
parado ainda possui muita memória (464,8 MiB e cai lentamente) e o move para trocar somente quando mais memória é necessária para algum outro programa, o que resulta em uma grande lentidão.
Como dizer ao Linux para trocar este processo inteiramente (por exemplo, eu não pretendo resumi-lo em curto prazo), possivelmente despertando do swap de outros dados? Também será útil poder especificar o dispositivo de troca exato para trocar o processo dado (por exemplo, a memória de mkcromfs
é inútil em ramzswap).
Atualização: agora só escrevo 400 a 600 milhões de dados de /dev/erandom
para tmpfs
e isso faz com que mkcromfs
diminua. Existe uma maneira mais adequada?
Você pode tentar jogar com o parâmetro sysctl "swappiness" ... IIRC quanto maior o valor, mais "provável a troca" é. Dê uma olhada aqui
Tags swap linux virtual-memory