Ubuntu y detección de velocidad del procesador

12

Tengo una computadora portátil más antigua que utilizo como centro de medios en mi televisor y generalmente estoy instalando / reinstalando / desinstalando diferentes sistemas operativos y aplicaciones para que funcione de la manera más fluida posible.

Una cosa que noté fue muy extraña. Mi laptop es una HP Pavilion G62 que tiene un procesador AMD de triple núcleo que funciona a 1800mhz. Cuando ejecuto XBMC desde Windows 7 y miro las velocidades del procesador, dice claramente 1800mhz. Sin embargo, cuando lo ejecuto desde Ubuntu, ya sea desde el iniciador o como una sesión, dice que el procesador solo tiene 800 mhz.

Quería investigar más a fondo, así que cargué DXDIAG en Windows para ver cuál era la velocidad. Efectivamente, indica que son 1800mhz. Sin embargo, al iniciar HardInfo en Ubuntu, me dice que la velocidad de cada núcleo es la siguiente: 1500mhz, 1500mhz y 800mhz.

¿Significa esto que tanto la velocidad de procesador anunciada como la velocidad detectada por Windows son mentiras o redondeadas? ¿O hay algún problema con Ubuntu al detectar las velocidades de mi procesador y mi sistema no funciona tan bien como debería? Me inclinaría a decir lo último ... principalmente porque parece que Windows se ejecuta mucho mejor que Ubuntu.

Scotty_80
fuente
44
Por favor, publique la salida de cpufreq-info. Es posible que deba instalarlo sudo apt-get install cpufrequtilsprimero.
terdon
2
"Cuando lo ejecuto desde Ubuntu, ya sea desde el iniciador o como una sesión, dice que el procesador solo tiene 800 mhz". podrías tomar una captura de pantalla?
Braiam

Respuestas:

11

Por defecto, Ubuntu usa el regulador de frecuencia bajo demanda . Para verificar / cambiar gobernadores, instale el cpufrequtilspaquete de esta manera:

sudo apt-get install cpufrequtils

Para verificar la velocidad / gobernadores actuales de cada corrida central:

cpufreq-info

Puede configurar todos los núcleos para un rendimiento como este:

sudo cpufreq-set -r -g performance

Puede confirmar que todos los núcleos ahora se están ejecutando a su frecuencia máxima de esta manera:

grep MHz /proc/cpuinfo

Nota : este cambio es temporal. Una vez que reinicie, volverá a la demanda .

Sylvain Pineau
fuente
1
Gracias por la info! Ejecuté los comandos que enumeró, y superó el primer núcleo de la CPU hasta 1800mhz, pero el resto fue a 800mhz. Esto, según la excelente y detallada respuesta de Sergey a continuación, es muy probable que sea normal para mi sistema.
Scotty_80
Se editó la respuesta para incluir el parámetro -c, que indica qué frecuencia de la CPU debe establecerse. No pude encontrar una manera de especificar todos los números de CPU a la vez. También estoy tratando de escribir una secuencia de comandos para habilitar el modo de rendimiento con alimentación de CA y el modo bajo demanda con batería. Si alguien ya tiene una solución para esto, agregue aquí. Gracias.
Sri
1
Para configurar el rendimiento de todos los cpus de una vez, primero cambie al modo de superusuario con sudo su y luego use esto: for ((i = 0; i <$ (nproc); i ++)); hacer cpufreq-set -c $ i -r -g rendimiento; hecho
Sri
10

Antecedentes teóricos: en una computadora típica, la CPU está inactiva la mayor parte del tiempo. Para ahorrar energía, las CPU modernas implementan el escalado de frecuencia , es decir, el sistema operativo puede indicarle a la CPU que cambie a una frecuencia más baja cuando la carga es baja. La tecnología se llama SpeedStep en procesadores Intel y Cool'n'Quiet en procesadores AMD.

En Linux cpufreq, la infraestructura implementa el escalado de frecuencia del núcleo , que utiliza un concepto de "gobernadores" para controlar la frecuencia.

El gobernador predeterminado es "ondemand", que aumenta la frecuencia una vez que la utilización del procesador supera el 95%. Esto permite que la CPU ahorre algo de energía mientras está inactiva pero que cambie al rendimiento completo cuando hay cosas que hacer. Hay una latencia de transición, medida en milisegundos, por lo que cuando una CPU inactiva recibe una gran carga de repente, continúa disminuyendo a baja frecuencia durante unos milisegundos antes de cambiar a plena potencia, por lo que en ciertas situaciones esto puede resultar en un rendimiento ligeramente menor que cuando siempre corriendo a toda velocidad.

Hay otros gobernadores , incluido el "rendimiento" que siempre ejecuta la CPU a su frecuencia completa. Esto elimina la latencia de conmutación, pero puede aumentar el consumo de energía.

Puede experimentar con diferentes gobernadores como se sugiere en otra respuesta, pero dudo que produzca resultados dramáticos. No lo convertirían en un valor predeterminado a menos que tuviera sentido en el 99% de los casos :)

Sin embargo, volviendo a su pregunta: lo más probable es que Windows le muestre la frecuencia de CPU máxima posible (la que anuncian en la caja de la CPU), mientras que Ubuntu le muestra la frecuencia real con la que se ejecuta cada uno de los núcleos de CPU en este momento en particular. No significa que la CPU funcione más lentamente en Ubuntu. Si parece que Ubuntu funciona lento en su computadora portátil, lo más probable es que sea causado por algo más, por ejemplo, poca RAM, disco duro lento, etc. Ubuntu moderno ciertamente requiere más recursos que, por ejemplo, Windows XP, que es probable que encuentre en Una laptop más vieja.

Más lectura técnica:

Sergey
fuente
¡Esto definitivamente lo explica! Sin embargo, si tuviera que configurar el gobernador en Rendimiento, ¿no deberían funcionar todos mis núcleos de CPU a 1800 mhz? Actualmente, cuando cambio la configuración, solo establece CPU1 a 1800mhz. Los otros 2 son solo a 800mhz. Supongo que esto podría atribuirse a una limitación de la CPU ...
Scotty_80