Se o seu objetivo é atender à demanda durante os horários de pico que você menciona, eu consideraria, se possível, executar o programa do servidor nas duas máquinas que você tem agora e colocá-las atrás de um balanceador de carga, como haproxy.
Por outro lado, se o seu objetivo é reduzir o consumo de CPU do seu programa de servidor, você tem algumas opções.
Você pode diminuir a prioridade do seu processo para que o kernel agende seu tempo de CPU de maneira que ele não domine sua CPU. Isso pode ser feito usando os comandos nice
ou renice
. No Debian, os valores de prioridade variam de -20 a +19, e o valor padrão (iniciando um processo sem usar legal) é 0. Quanto maior o valor, menor a prioridade. Torna-se fácil lembrar se você pensar nisso como "o mais agradável um processo, mais ele está disposto a desistir de seu tempo de CPU para outros processos".
Inicie seu programa assim usando valores diferentes de gentileza:
nice -n +12 /path/to/your/program
Se o seu programa já está em execução, você pode usar renice
com seu pid:
#first find the pid
pgrep your_program_name
#or
ps aux | grep your_program_name
#now use the pid here
renice -n +12 pid_of_your_program
#or if you are comfortable combining these
renice -n +12 $(pgrep your_program_name)
Outra opção é usar uma ferramenta chamada cpulimit
. Ele permite que você execute um programa e defina a porcentagem máxima da CPU que você deseja permitir.
#install the package
apt-get install cpulimit
#run your program, for example limiting to 25%
cpulimit -l 25 /path/to/your/program