La frecuencia de la CPU siempre es mínima, incluso si el uso de la CPU es del 100%


15

No sé cuándo comenzó a ocurrir este problema, podría haber sido desde el momento en que instalé Ubuntu (16.04, nuevo). Estaba observando que Ubuntu era inusualmente lento, el entorno era entrecortado y el uso de CPU era alto incluso cuando estaba inactivo, inicialmente pensé que algún programa lo estaba ralentizando.

Después de un tiempo, descubrí qué lo estaba causando, la frecuencia de la CPU se establece en 800 MHz, sin parar, independientemente de las circunstancias. Se supone que la frecuencia máxima es de 3100 MHz con Turbo-boost y 2000 MHz por lo general. Deliberadamente configuré el uso de la CPU (de los 4 subprocesos en 2 núcleos) al 100% al hacer que Blender renderice algunas cosas en la CPU, todavía permanece a 800 MHz.

He intentado configurar el perfil de rendimiento máximo, pero sigue siendo bajo. He probado la temperatura, parece estar a 60 ° C todo el tiempo, cuando 87 ° C se considera alta y 105 ° C crítica. Estoy funcionando con corriente alterna todo el tiempo, la batería no parece recargarse desde hace algún tiempo.

Esto es lo que informa cpufreq-info:

 driver: intel_pstate
 CPUs which run at the same hardware frequency: 0
 CPUs which need to have their frequency coordinated by software: 0
 maximum transition latency: 0.97 ms.
 hardware limits: 800 MHz - 3.10 GHz
 available cpufreq governors: performance, powersave
 current policy: frequency should be within 2.00 GHz and 3.10 GHz.
                 The governor "performance" may decide which speed to use
                 within this range
 current CPU frequency is 800 MHz (asserted by call to hardware).

Es lo mismo para otras 3 unidades de CPU.

Esto es lo que informa lscpu:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 58
Model name:            Intel(R) Core(TM) i7-3537U CPU @ 2.00GHz
Stepping:              9
CPU MHz:               799.921
CPU max MHz:           3100,0000
CPU min MHz:           800,0000
BogoMIPS:              3990.99
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              4096K
NUMA node0 CPU(s):     0-3
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts

En modo ahorro de energía, se comporta de manera idéntica. Si desconecto la alimentación de CA y funciono con la batería, la frecuencia de la CPU se dispara a 2800 MHz, por lo que parece ser un problema solo con la alimentación de CA (que es todo lo contrario de lo que se supone que debe hacer).

He intentado configurar los perfiles de CPU de cambio, he intentado deshabilitar el escalado de frecuencia ( ¿Cómo puedo deshabilitar el escalado de frecuencia de la CPU y configurar el rendimiento del sistema? ), He intentado configurar scaling_min_freq en / sys / devices / system / cpu / cpu [0-3] / cpufreq a un valor más alto, pero ninguno de ellos hizo nada. La frecuencia sigue siendo mínima.

El tipo de CPU es Intel (R) Core (TM) i7-3537U CPU @ 2.00GHz, la computadora es Dell Inspiron 15z Touch.

También tengo un problema con la batería que no se carga, incluso si la computadora se alimenta del adaptador de CA.

Más diagnósticos:

$ sudo rdmsr --bitfield 15:8 -d -a 0x198
8
8
8
8
$ sudo rdmsr --bitfield 15:8 -d -a 0x199
9
8
9
9

En el caso de 0x199, los números 8 y 9 parecen estar permutados aleatoriamente entre llamadas consecutivas.


Ha habido algunos informes similares últimamente, y a menudo para CPU Modelo 58. hmmm ... ¿De qué marca es su computadora? Eche un vistazo a esto , donde algo externo al controlador de frecuencia de CPU intel_pstate mantiene la frecuencia baja. Al tiempo que destaca su CPU de carga del 100%, se puede mirar sudo rdmsr --bitfield 15:8 -d -a 0x198y sudo rdmsr --bitfield 15:8 -d -a 0x199y añadir la salida a su pregunta. El rdmsrpaquete proporciona una nota msr-toolsy requiere que el módulo msr se cargue primero a través de sudo modprobe msr.
Doug Smythies

Utilice el regulador de ahorro de energía para la prueba.
Doug Smythies

He agregado la información solicitada a la publicación inicial. En resumen, mi computadora es una Dell Inspiron 15z Touch, parece ser una instancia del Bug 118751 (porque el problema desaparece cuando funciona con batería). Usar el gobernador de ahorro de energía no cambia nada.
Dugi

Me he dado cuenta de que, al igual que con Marcin Nowak en la discusión sobre ese error, mi batería parece no estar cargándose en absoluto o extremadamente lenta (incluso si la computadora está apagada). Sin embargo, la alimentación de CA no parece ser débil de ninguna manera.
Dugi

¿Desea continuar a través del informe de error? Algo externo al controlador de frecuencia de la CPU intel_pstate mantiene las frecuencias de la CPU en sus pstates más bajos. Si arranca utilizando el controlador de frecuencia de CPU acpi_cpufreq, ¿para qué sirve cat /sys/devices/system/cpu/cpufreq/policy0/bios_limit?
Doug Smythies

Respuestas:


12

Resultó que este problema no estaba relacionado con el controlador intel_pstate, porque acpi_cpufreq, el otro controlador, informó mejores valores pero nunca los configuró. El sistema operativo probablemente no tenía control sobre esto.

Este es un problema que ocurre con ciertas computadoras portátiles Dell cuando la carga se interrumpe de una manera que la computadora portátil funciona con corriente alterna pero no está cargada. La solución del problema de hardware elimina el problema. En este caso, era una pieza de tela casi invisible en el conector de alimentación que impedía el contacto eléctrico.


1
Pero, ¿qué hacer si en este momento no puedo reemplazar el hardware (cargador)?
Vedavrat

Verificaría el conector, existe la posibilidad de que algo esté mal y se pueda arreglar manualmente. Si no, probablemente tendrá que sufrir los problemas (no fatales) con la CPU lenta. Este es un problema de hardware no relacionado con el sistema operativo o los controladores.
Dugi

Mi Dell Inspiton 15R N5110 Intel i7-2860QM estaba con una batería agonizante hasta el punto en que deja de cargarse, dejándome con 800 MHz. Abrí BIOS y deshabilité Charger Behaviory Adapter Warnings. Sacó la masa y la devolvió. También en Windows, pero puesto en Perfil de alto rendimiento. Y recuperé mi CPU y obtuve 2500 MHz. Por lo tanto, es posible superar el problema sin reemplazo.
dzmitry.lahoda

1
Para aclarar, ¿su batería no se estaba cargando? Entonces, si tengo el mismo problema que el OP, pero mi batería parece estar cargándose bien (la computadora portátil dura muchas horas con la batería), ¿entonces tengo un problema diferente?
Garrett

1
@ Garrett La batería no se estaba cargando. Si el bateador carga, entonces no es este problema. El problema fue que el BIOS entró en una situación inesperada en la que la computadora portátil funcionaba con corriente alterna, pero la batería no estaba cargada.
Dugi

3

Esto configurará su frecuencia de CPU a la velocidad máxima desde cualquier terminal:

sudo cpufreq-set -f `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq`

Edite el archivo /etc/init.d/ondemand para agregarlo permanentemente. ondemand se utiliza para modificar su frecuencia durante el inicio de sesión. El valor predeterminado es el gobernador 'ondemand'. En otras palabras, comienza a 800mhz y sube según sea necesario.


2
Ayuda. ¡Gracias! Pero luego solo cambiamos la frecuencia de la CPU de mínima (800 Mhz) a máxima (3200 MHz), y cómo configurar para ajustar (variar) la frecuencia de la CPU entre 0.8 y 3.2 GHz según sea necesario según la carga, ¿por favor? Gracias.
Vedavrat

2

Tuve el mismo problema: cpu freq se atascó en ubuntu y en windows, después de un apagado sobrecalentado en el estuche con la computadora portátil todavía encendida.

Fui al BIOS y deshabilité la administración de energía de la CPU en "energía", y puse todo lo demás a pleno rendimiento (rendimiento máximo). Reinicié, regrese a la velocidad máxima, luego regrese al BIOS, y habilite nuevamente la administración de la CPU, y corrija las otras configuraciones que cambié antes. Et voilà!

EDITAR: Resulta que es un problema de batería. Si la batería está realmente baja, la CPU no se acelerará (supongo que ahorrará energía). En mi thinkpad tengo que cargar la batería durante unos minutos, hasta que el LED de carga deje de parpadear rápidamente ANTES de encender la máquina nuevamente.


Hice lo mismo en mi XPS 15, aunque nunca volví a habilitar la administración de energía. Desde que corre rápido y constante. (La batería ahora está un poco afectada, pero eso no es demasiado importante para mí)
pandaadb

2

A veces mi computadora portátil ignora por completo la configuración de cpufreq. Encontré que esto funciona:

Desenchufe el cable de alimentación y vuelva a enchufarlo. Fijo :)

Supongo que la razón es que la máquina se confundió: cree que está funcionando con batería, y cree que la batería está baja, por lo que bloquea la CPU para ahorrar energía.

Solo tenemos que hacerle saber que en realidad está enchufado y funcionando bien.

(Computadora portátil Asus x453m aquí, Ubuntu 14.04) YouTube: ¿Has intentado apagarlo y volver a encenderlo?


Wow, sí, esto funcionó para mí!
Tim

0

Tuve el mismo problema con mi ThinkPad T520. Después de probar todas las soluciones encontradas en Internet, estaba listo para reinstalar Ubuntu. Pero luego verifiqué la frecuencia de la CPU en Windows y también la encontré limitada a 800 MHz.

Entonces parecía un problema de hardware. No era obvio que hay problemas con el enfriamiento de la CPU, porque las RPM más bajas eran bajas y la carcasa del portátil no estaba caliente ni caliente.

Como no había otras opciones, desarmé la computadora portátil y cambié la interfaz de la interfaz térmica en chips de CPU y GPU. ¿Y sabes qué? ¡Eso ayudo!

El tiempo de ejecución de las pruebas unitarias en uno de mis proyectos de Django fue de 45 minutos, ahora son 11 minutos.

Entonces, si enfrenta un problema similar, especialmente en la computadora portátil, probablemente debido a la interfaz térmica de stock seca, después de 3-5 años, a menudo deja de hacer su trabajo. Y no se deje engañar por el radiador limpio, el refrigerador silencioso y el cuerpo de la computadora portátil.


0

Solución alternativa

# Determinate CPU capabilities
MAX_CPU=$(cpupower frequency-info -l | tail -n1 | cut -d' ' -f2)

# Disable "BD PROCHOT" 
wrmsr -a 0x1FC 262238;

# Set and apply frequencies
cpupower frequency-set \
  -d $(expr $MAX_CPU / 2) \
  -u $MAX_CPU \
  -r \
  -g performance; 

0

A veces no se trata solo de configurar el regulador de escala. Las políticas de escalado a veces se establecen entre MIN_FREQ y MIN_FREQ. Tuve que escribir un guión para arreglar todo de una vez:

#!/bin/bash
echo "Setting all CPUs to " "$@"
CPUINFO_MIN_FREQ=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq)
CPUINFO_MAX_FREQ=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq)
MIN=$(echo "scale=1; $CPUINFO_MIN_FREQ / 1000000" | bc)"G"
MAX=$(echo "scale=1; $CPUINFO_MAX_FREQ / 1000000" | bc)"G"

echo "Minimum frequency: " $MIN ", Maximum frequency: " $MAX

GOVERNOR=@0
if [ $# -eq 0 ]
    then
        echo "No arguments supplied, using ONDEMAND governor"
        GOVERNOR="ondemand"
    else
        echo "Governor " $1 " supplied"
        GOVERNOR=$1
fi

for ((i=0;i<$(nproc);i++));
    do cpufreq-set -c $i -r -g $GOVERNOR  --min $MIN --max $MAX;
done
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.