Você não pode limitar o "ritmo" de consumir memória, mas pode limitar o uso total de memória por meio de vários mecanismos diferentes.
1) limites de segurança Limite o uso de memória para o usuário executando o processo via /etc/security/limits.conf. Isso pode não funcionar no seu caso se você estiver executando esse processo como o mesmo usuário trabalhando em coisas diferentes.
Exemplo:
username hard as 1000000
2) Grupos de controle Você pode - com cgroups, criar um grupo e também limitar o uso da memória. Basta criar o cgroup, assim:
# cat >> /etc/cgconfig.conf << EOF
group memlimit {
memory {
memory.limit_in_bytes = 1073741824;
}
}
EOF
# cat >> /etc/cgrules.conf <<EOF
username memory memlimit/
EOF
Claro - em ambos os casos, você tem que desenvolver seu programa para que ele possa se recuperar da falta de alocação de mais memória.
Caso não seja possível, basta adicionar mais memória ao sistema, para evitar a troca. Uma vez que a troca comece, ela está nas mãos do kernel, e você não pode - por exemplo - diminuir a prioridade do kswapd, e mesmo se você puder - isso não garante que alguns dos programas que você usa ainda não sejam trocados para fora, causando assim uma resposta do sistema ainda mais lenta. Apenas não vá lá.