Los cgroups se crearon exactamente por este motivo.
http://www.kernel.org/doc/Documentation/cgroups/
http://www.serverwatch.com/tutorials/article.php/3921001/Setting-Up-Linux-Cgroups.htm
Se necesita un poco de tiempo para familiarizarse con ellos, y creo que necesita acceso root para configurarlos, pero todo puede ser programado. Los nuevos Ubuntus tienen un archivo .conf para que no tenga que escribir su propio script. No estoy seguro acerca de 10.10.
Un buen lugar para comenzar es en esta respuesta:
https://askubuntu.com/a/94743/170177
Tenga en cuenta que cgroups todavía está en desarrollo activo, por lo que algunas características pueden no estar disponibles en su núcleo actual.
Usar cpu.shares de cgroups no hace nada que un buen valor no haría. Parece que realmente quiere acelerar los procesos, lo que definitivamente se puede hacer.
Necesitará usar un script o dos, y / o editar /etc/cgconfig.conf para definir los parámetros que desea.
Específicamente, desea editar los valores cpu.cfs_period_us y cpu.cfs_quota_us . El proceso podrá ejecutarse para cpu.cfs_quota_us microsegundos por cpu.cfs_period_us microsegundos.
Por ejemplo:
Si cpu.cfs_period_us = 50000 y cpu.cfs_quota_us = 10000 , el proceso recibirá el 20% del tiempo máximo de CPU, sin importar qué más esté sucediendo.
En esta captura de pantalla le he dado al proceso el 2% del tiempo de CPU:
En lo que respecta al proceso, se está ejecutando al 100%.
La configuración cpu.shares, por otro lado, puede y seguirá utilizando el 100% del tiempo de inactividad de la CPU.
En este ejemplo similar, he dado el proceso cpu.shares = 100 (de 1024):
Como puede ver, el proceso todavía consume todo el tiempo de inactividad de la CPU.
Referencias
http://manpages.ubuntu.com/manpages/precise/man5/cgconfig.conf.5.html
http://kennystechtalk.blogspot.co.uk/2015/04/throttling-cpu-usage-with-linux-cgroups .html