Deseo realizar algunas pruebas en una variedad de dispositivos Linux para ver su consumo de energía en función de la carga actual del procesador.
Como tal, estoy buscando un programa que pueda usar para obligar a la CPU a usar X%, es decir, puedo incrementar la carga del procesador en un 10% de comprobaciones y realizar mediciones en ese punto.
He mirado paquetes como 'estrés' y 'cpuburn' pero parece que solo usan el 100%
Espero que puedas ayudar
Gracias
stress
se ejecutará en bucle sin fin, perocpulimit
lo suspenderá y reanudará periódicamente según sea necesario para lograr la carga de CPU solicitada. Entonces, en el caso que se muestra en mi respuesta, consumirá el 20% de un solo núcleo de CPU. Cuandostress
se suspende, no consume ningún ciclo de CPU. Creo que esto es lo que pidió Zac Powell. --- Cuando se necesita cargar en múltiples núcleosstress
puede generar múltiples hijos ycpulimit
puede ejecutarse en múltiples instancias, pero creo que no hay una solución fácil para forzar la distribución de los hijos individuales a los núcleos individuales.En lugar de tratar de limitar el uso de aplicaciones de la CPU, ¿por qué no intentas estrangular la CPU en sí misma, reduciendo su capacidad al porcentaje que deseas? no podrá distinguir un subproceso que, de lo contrario, se ejecutaría a la capacidad máxima para "correr más lento", a menos que esté diseñado para dormir x% del tiempo, lo que contaminaría los datos que está tratando de recopilar con la actividad del procesador para las operaciones de subprocesamiento como spin-wait / pulse.
Dependiendo de su distribución, puede usar herramientas como cpupower, granola o cpufreq
fuente
Hay stress-ng que permite definir porcentajes de carga de trabajo de una manera fácil. Por ejemplo, podría usarlo así:
Esto estresará cuatro CPU con una carga de trabajo del 50%. Si está utilizando Ubuntu, simplemente puede instalarlo desde el repositorio:
fuente
Alguien publicó un violín interesante que puede estresar todos los núcleos de la CPU al 100%.
Utiliza un trabajador web por núcleo (núcleo cuádruple predeterminado) y puede modificarse fácilmente para una tensión variable en cada núcleo.
http://jsfiddle.net/MTJ27/81/
fuente