Nota: Esta solución solo funciona con el planificador cfq, como se explica aquí . Debe verificar cuál se utiliza emitiendo
cat /sys/block/sda/queue/scheduler
y cámbielo si es necesario.
Si entendí correctamente, desea ionice
que se aplique alguna configuración cada vez que inicie un comando. Puedes hacerlo de esta manera:
echo 'ionice -c 3 /usr/bin/VirtualBox "$@"' > VirtualBox
chmod a+x VirtualBox
sudo mv VirtualBox /usr/local/bin/
El primer comando crea un archivo VirtualBox
con el texto entre comillas simples como su contenido. Esto debería tener la ruta completa al programa, porque si uno solo lo especifica VirtualBox
puede interpretarlo como el archivo que acabamos de crear y crear un "bucle".
El segundo comando lo hace ejecutable, y el tercero mueve este nuevo archivo en una carpeta que se encuentra frente a la carpeta bin del "sistema" /usr/bin
, por lo que nuestro nuevo archivo se ejecuta en lugar del original. La parte "$ @" contiene todos los argumentos con los que se invocó el comando, por lo que se reenvían al comando VirtualBox real.
Según la respuesta ("sí") a esta pregunta de Superusuario ¿Los procesos de los niños heredan las prioridades de sus padres? ¿Cómo se verifica la prioridad IO de un proceso en ejecución? , debería ser suficiente para ionice
el proceso padre, así:
ionice -c 3 VirtualBox
Desde la ionice
página de manual , están disponibles los siguientes valores de clase de programación de E / S:
- 0 para ninguno
- 1 para tiempo real
- 2 para el mejor esfuerzo
- 3 para inactivo (usado en el ejemplo anterior)
Se puede usar un número o nombre de clase.
Además, la -n level
opción es aplicable para clases en tiempo real y de mejor esfuerzo, con 0-7 como datos válidos (niveles de prioridad).