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

Re: Impedir escalar frecuencia a un determinado proceso



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.

Gracias por todo!

>>
>> --
>> To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
>> with a subject of "unsubscribe". Trouble? Contact
>> listmaster@lists.debian.org
>> Archive: [🔎] jl6g79$4ti$1@dough.gmane.org">http://lists.debian.org/[🔎] jl6g79$4ti$1@dough.gmane.org
>>


Reply to: