Creo que el problema del hipo no es necesariamente causado por el intercambio. Si un programa está reproduciendo algo, Linux debería notar esto y no cambiarlo. Los programas que no hacen mucho son los primeros que se intercambian. Puede verificar si el programa realmente se está intercambiando mirando el campo RSS/ RESdesde ps o arriba . RSSes el tamaño del conjunto residente, la memoria física no intercambiada que utiliza una tarea (en kiloBytes).
Creo que su problema probablemente se deba a una programación inadecuada de CPU y E / S y un poco de ineficiencia de Rhythmbox que lo hace sensible a las altas cargas del sistema. La prioridad de la CPU se puede cambiar con los comandos nice y renice . La prioridad de E / S se puede cambiar con el comando ionice . Solo el superusuario puede usar altas prioridades. También debe saber que los chicos del kernel de Linux están tratando de mejorar la capacidad de respuesta de los sistemas de escritorio con varios parches de baja latencia, por lo que podría considerar usarlos. Uno de ellos es un parche de ~ 200 líneas escrito por Mike Galbraith que ha impresionado incluso a Linus. La alternativa a este parche es el truco cgroups de Lennart Poettering que creo que será el predeterminado en Fedora 15.
De todos modos, sin esos parches hay dos opciones: iniciar el programa con alta prioridad o cambiarlo después. Para la primera opción, podría usar un script de envoltura alrededor de Rhythmbox:
#!/bin/sh
# Run Rhytmbox with high CPU and I/O priorities
nice -n -10 ionice -c 1 -n 1 su -l -c rhythmbox alexei
Deberá ejecutarlo como root. Si no desea iniciar sesión como root solo para comenzar esto, puede usar cualquiera suo sudo.
En cuanto a cambiar la prioridad después, si eres demasiado flojo para iniciar sesión como root para cambiarlo, puedes intentar usar un trabajo cron que se ejecute cada 5 minutos y establezca la prioridad del rhythmboxproceso, pero no recomendaría hacerlo:
#!/bin/sh
renice -n -10 -p `pidof rhythmbox`
ionice -c 1 -n 1 -p `pidof rhythmbox`