Até onde eu sei, isso não é um problema específico do Linux, é o modo como o SWAP (ou memória virtual) funciona. Se o sistema operacional precisar pesquisar dados no disco rígido, em vez da RAM, isso diminuirá a velocidade. Nada que você possa fazer sobre isso, acessar o disco é muito mais lento do que acessar a RAM.
Você não poderá definir a prioridade com a qual os processos são trocados, isto é determinado pelo kernel que tentará maximizar a eficiência, você não será capaz de fazer melhor. O que você pode fazer é definir a prioridade da CPU de um processo e isso pode ajudar. Seu sistema está sendo reduzido por causa do tempo que leva para ler de / para SWAP, isso significa que a CPU terá que esperar que os dados relevantes sejam recuperados pelo processo solicitando-o antes que ele possa continuar. Se você definir o seu DE para ter uma prioridade mais alta para o acesso da CPU, isso deve empurrar suas operações para o topo e acelerar um pouco as coisas.
Portanto, a prioridade da CPU é definida com os comandos nice
e renice
:
Renice alters the scheduling priority of one or more running processes.
The following who parameters are interpreted as process ID's, process
group ID's, or user names. Renice'ing a process group causes all pro‐
cesses in the process group to have their scheduling priority altered.
Renice'ing a user causes all processes owned by the user to have their
scheduling priority altered. By default, the processes to be affected
are specified by their process ID's.
As prioridades vão de -20 (prioridade mais alta) a 20 (prioridade mais baixa). Para alterar a prioridade de um processo em execução, você poderia fazer:
renice -15 $PID
onde $PID
é o PID do processo cuja prioridade você deseja aumentar. Você pode usar pgrep
para descobrir qual é. Por exemplo:
renice -15 $(pgrep gnome-session)
A outra opção seria definir o 'swappiness' do sistema que determina quando ele iniciará a troca . Um valor de permuta de 1 significa que ele só irá trocar para evitar erros de falta de memória. Valores mais altos significa que ele começará a trocar mesmo quando ainda houver memória física disponível. Você pode definir isso como um valor relativamente baixo para fazer com que o sistema troque o mínimo possível. Adicione esta linha a /etc/sysctl.conf
:
vm.swappiness=1
CUIDADO: Isso não é uma boa idéia se você não tem muita memória RAM, o swap é uma coisa boa em geral, você precisará brincar um pouco com os valores para encontrar o equilíbrio certo para o seu sistema. / p>