Nota: Esta solução funciona apenas com o planejador cfq, conforme explicado aqui . Você deve verificar qual é usado emitindo
cat /sys/block/sda/queue/scheduler
e altere -o se necessário.
Se entendi corretamente, você deseja que alguma ionice
configuração seja aplicada toda vez que você inicia um comando. Você pode fazer assim:
echo 'ionice -c 3 /usr/bin/VirtualBox "$@"' > VirtualBox
chmod a+x VirtualBox
sudo mv VirtualBox /usr/local/bin/
O primeiro comando cria um arquivo VirtualBox
com o texto entre aspas simples como seu conteúdo. Isso deve ter o caminho completo para o programa, porque, se alguém especificar VirtualBox
, pode interpretá-lo como o arquivo que acabamos de criar e criar um "loop".
O segundo comando o torna executável e o terceiro move esse novo arquivo em uma pasta que está na frente da pasta bin "system" /usr/bin
, para que nosso novo arquivo seja executado em vez do original. A parte "$ @" contém todos os argumentos com os quais o comando foi chamado, então eles são encaminhados para o comando VirtualBox real.
De acordo com a resposta ("sim") a esta pergunta do superusuário Os processos filhos herdam as prioridades de ionícia de seus pais? Como você verifica a prioridade de E / S de um processo em execução? , deve ser suficiente para ionice
o processo pai, assim:
ionice -c 3 VirtualBox
Na ionice
página de manual , os seguintes valores da classe de planejamento de E / S estão disponíveis:
- 0 para nenhum
- 1 para tempo real
- 2 para melhor esforço
- 3 para inativo (usado no exemplo acima)
Um número ou nome de classe pode ser usado.
Além disso, a -n level
opção é aplicável a classes em tempo real e de melhor esforço, com 0 a 7 como dados válidos (níveis de prioridade).