[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Impedir escalar frecuencia a un determinado proceso



On Sat, Mar 31, 2012 at 4:20 PM, tahawk tahawk <ttahawk@gmail.com> wrote:
> 2012/3/31 tahawk tahawk <ttahawk@gmail.com>:
>>
>> El 31/03/2012 10:46, "Camaleón" <noelamac@gmail.com> escribió:
>>
>>
>>>
>>> El Fri, 30 Mar 2012 23:49:37 +0200, tahawk tahawk escribió:
>>>
>>> > 2012/3/30 Camaleón <noelamac@gmail.com>:
>>> >> El Fri, 30 Mar 2012 18:29:48 +0200, tahawk tahawk escribió:
>>> >>
>>> >>> Tengo un proceso el cual quiero impedir que me suba la frecuencia de
>>> >>> la CPU sin que esto afecte a los demás procesos.
>>> >>
>>> >> ¿Lo has programado tú? Si es así seguramente sí puedas implementar
>>> >> alguna función que te permita controlar esto.
>>> >>
>>> >>> Es decir, aunque este proceso trabaje al máximo quiero que la CPU siga
>>> >>> en la parte baja del escalado pero si otro proceso necesita CPU si que
>>> >>> pueda subir la frecuencia, por lo que no me sirve poner el sistema en
>>> >>> modo powesave.
>>> >>
>>> >> Bueno, eso lo debería hacer automáticamente "cpufreq-utils" con un
>>> >> perfil "ondemand":
>>> >>
>>> >> http://www.mjmwired.net/kernel/Documentation/cpu-freq/governors.txt
>>> >>
>>> >>> Alguien si sabe si esto se puede hacer?
>>> >>
>>> >> Creo que intentas "hilar" demasiado fino :-)
>>>
>>> > No es un programa que haya hecho yo. Se trata de boinc. Se trata de que
>>> > esté trabajando pero bajar la frecuencia para reducir el consumo. Igual
>>> > si que es hilar muy fino pero es que me pensaba que sería algo más
>>> > sencillo de hacer.
>>>
>>> Hay una aplicacioncilla que te permite limitar el consumo de CPU por
>>> proceso (cpulimit) pero con micros modernos multi-hilo y multi-todo no sé
>>> si te será de utilidad. De todas formas, BOINC debería integrar algún
>>> sistema de autocontrol ¿no? :-?
>>>
>>> http://boinc.berkeley.edu/wiki/Preferences#Processor_usage
>>>
>>
>> Por lo que he visto en las opciones sólo permite decirle que use un
>> porcentaje determinado de la CPU pero yo lo que busco es que use el 100%
>> pero sin incrementar la frecuencia.
>>
>>> > Creo que optaré por lo del script pero necesito alguna forma de obtener
>>> > el porcentaje de cpu que está usando el proceso. Se os ocurre algo?
>>>
>>> Además de lo que te comenta Marc, esta información suele estar bajo "/
>>> proc/$PID/", por ejemplo:
>>>
>>> sm01@stt008:~$ cat /proc/`pidof firefox`/stat
>>> 3774 (firefox) S 1 3295 3295 0 -1 4202496 590194 3475 19 0 19564 1806 2 3
>>> 20 0 23 0 172373 722755584 44489 18446744073709551615 4194304 4249308
>>> 140735253756480 18446744073709551615 139839786101718 0 0 536875008 17647
>>> 18446744073709551615 0 0 17 1 0 0 30 0 0
>>>
>>> De ese "churro" se podrá sacar algo O:-), cuestión de leerse el manual:
>>>
>>> http://www.mjmwired.net/kernel/Documentation/filesystems/proc.txt
>>>
>>> Saludos,
>>>
>>> --
>>> Camaleón
>>>
>
> He dado con la solución y es muy sencillo. Resulta que hay el
> parámetro contenido en
> /sys/devices/system/cpu/cpufreq/ondemand/ignore_nice_load que se
> encarga precisamente de eso. El valor por defecto es 0 pero si lo
> cambiamos a 1 lo que hacemos es que los procesos en los que hayamos
> modificado la prioridad de ejecucion no tendrán derecho a subir la
> frecuencia de la CPU.
>
> "ignore_nice_load - This parameter takes a value of '0' or '1'. When
> set to '0' (its default), all processes are counted towards the 'cpu
> utilization' value. When set to '1', the processes that are run with a
> 'nice' value will not count (and thus be ignored) in the overall usage
> calculation. This is useful if you are running a CPU intensive
> calculation on your laptop that you do not care how long it takes to
> complete as you can 'nice' it and prevent it from taking part in the
> deciding process of whether to increase your CPU frequency. To turn
> this on do the following."
>
> http://www.spinics.net/lists/cpufreq/msg02359.html
>
> Lo he probado y hace lo que necesito. Lo único que hay que hacer es:
>
> # echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/ignore_nice_load
>
> Ahora solo me falta encontrar la forma de que tenga un 1 por defecto.
>

muy interesante lo que cuentas,

puedes poner esa linea en /etc/rc.local para que se ejecute cada vez
que arrancas.



-- 
Marc


Reply to: