web-dev-qa-db-fra.com

Puis-je limiter la fréquence du processeur?

  • Comment puis-je limiter ma fréquence CPU par une valeur?

  • cpufreq offre de fixer la fréquence à une valeur constante, au lieu de la laisser varier dans une plage.

  • Il propose également des solutions conservatrices, à la demande, économiques et performantes. Je ne sais pas ce qu'ils veulent dire. mais ils ne limitent pas la fréquence non plus. Que signifient réellement les quatre paramètres? En d'autres termes, quelles sont leurs politiques?

3
Tim

Question 2: Pour le pilote acpi cpufreq:

Le mode conservateur a une courbe de réponse charge-processeur-fréquence plus lente, ce qui signifie qu'il faut un peu plus de charge sur le processeur pour que la fréquence du processeur augmente.

Le mode ondemand a une courbe de réponse charge-processeur-fréquence plus rapide, ce qui signifie qu'un peu moins de charge sur le processeur est nécessaire pour que la fréquence du processeur augmente.

Le pilote utilise l'hystérésis. Par conséquent, les courbes de charge croissantes entre la charge et le processeur ne sont pas les mêmes.

Le mode d'économie d'énergie verrouille l'état p demandé à la valeur la plus basse pour le processeur. Le résultat est que le processeur est toujours à la fréquence d'horloge la plus basse.

le mode performance verrouille le pstate cible à la valeur la plus élevée pour le processeur. Cependant, notez que certains processeurs peuvent faire marche arrière sans charge. Pour plus de simplicité, imaginez que le processeur est toujours à la fréquence la plus élevée.

Question 1: Oui, vous pouvez limiter la fréquence supérieure.

Commencez par obtenir une liste des fréquences disponibles (par exemple depuis mon ordinateur):

doug@s15:~/temp$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
3401000 3400000 3300000 3100000 3000000 2900000 2800000 2600000 2500000 2400000 2200000 2100000 2000000 1900000 1700000 1600000

Puis, déterminez la fréquence maximale que vous souhaitez, en notant qu’elle doit figurer dans la liste. Puis définissez-le:

echo 2600000 | Sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

Et répétez pour tous les processeurs.

Une version de script peut être préférable, exécuté en tant que Sudo:

#! /bin/bash
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq
for file in /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq; do echo "2900000" > $file; done
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq
5
Doug Smythies