Ubuntu et détection de la vitesse du processeur


12

J'ai un ordinateur portable plus ancien que j'utilise comme centre multimédia sur mon téléviseur et j'installe / réinstalle / désinstalle généralement différents systèmes d'exploitation et applications pour le faire fonctionner aussi facilement que possible.

Une chose que j'ai remarquée était très étrange. Mon ordinateur portable est un HP Pavilion G62 qui possède un processeur AMD triple cœur fonctionnant à 1800 MHz. Lorsque je lance XBMC à partir de Windows 7 et que je regarde les vitesses du processeur, cela indique clairement 1800 MHz. Cependant, lorsque je le lance depuis Ubuntu depuis le lanceur ou en tant que session, il indique que le processeur n'est que de 800 MHz.

Je voulais enquêter davantage, alors j'ai chargé DXDIAG dans Windows pour voir quelle était la vitesse. Effectivement, cela indique que c'est 1800mhz. Cependant, lors du lancement de HardInfo dans Ubuntu, il me dit que la vitesse de chaque cœur est la suivante: 1500 mhz, 1500 mhz et 800 mhz.

Est-ce à dire que la vitesse du processeur annoncée et la vitesse détectée par Windows sont à la fois allongées ou arrondies? Ou y a-t-il un problème avec Ubuntu qui détecte les vitesses de mon processeur et mon système ne fonctionne pas de manière aussi optimale qu'il le devrait? Je serais enclin à dire ce dernier ... principalement parce qu'il semble que Windows fonctionne beaucoup plus facilement qu'Ubuntu.


4
Veuillez publier la sortie de cpufreq-info. Vous devrez peut-être l'installer avec d' sudo apt-get install cpufrequtilsabord.
terdon

2
"Quand je le lance depuis Ubuntu depuis le lanceur ou en tant que session, il indique que le processeur n'est que de 800 MHz." pourriez-vous prendre une capture d'écran?
Braiam

Réponses:


11

Par défaut, Ubuntu utilise le gouverneur de fréquence à la demande . Pour vérifier / changer les gouverneurs, installez le cpufrequtilspackage comme ceci:

sudo apt-get install cpufrequtils

Pour vérifier la vitesse / les gouverneurs actuels de chaque cycle principal:

cpufreq-info

Vous pouvez définir tous les cœurs à des performances comme celle-ci:

sudo cpufreq-set -r -g performance

Vous pouvez confirmer que tous les cœurs fonctionnent maintenant à leur fréquence maximale comme ceci:

grep MHz /proc/cpuinfo

Remarque : ce changement est temporaire. Une fois que vous redémarrez, ce sera de retour à la demande .


1
Merci pour l'info! J'ai exécuté les commandes que vous avez répertoriées, et il a fait passer le premier cœur de processeur à 1800 MHz, mais le reste était à 800 MHz. Selon la réponse très détaillée de Sergey ci-dessous, cela est probablement normal pour mon système.
Scotty_80

Modification de la réponse pour inclure le paramètre -c, qui indique la fréquence du numéro de processeur à définir. Je ne pouvais pas trouver un moyen de spécifier tous les numéros de processeur à la fois. J'essaie également d'écrire un script pour activer le mode de performance sur secteur et le mode sur demande sur batterie. Si quelqu'un a déjà une solution pour cela, veuillez l'ajouter ici. Merci.
Sri

1
Pour définir les performances de tous les processeurs en une seule fois, passez d'abord en mode super-utilisateur avec sudo su, puis utilisez ceci: for ((i = 0; i <$ (nproc); i ++)); faire cpufreq-set -c $ i -r -g performance; fait
Sri

10

Contexte théorique: Dans un ordinateur typique, le CPU est inactif la plupart du temps. Pour économiser de l'énergie, les processeurs modernes implémentent une mise à l'échelle des fréquences - c'est-à-dire que le système d'exploitation peut dire au processeur de passer à une fréquence plus basse lorsque la charge est faible. La technologie est appelée SpeedStep dans les processeurs Intel et Cool'n'Quiet dans les processeurs AMD.

Sous Linux, la mise à l'échelle des fréquences du noyau est mise en œuvre par l' cpufreqinfrastructure, qui utilise un concept de "gouverneurs" pour contrôler la fréquence.

Le gouverneur par défaut est "ondemand", ce qui augmente la fréquence une fois que l'utilisation du processeur dépasse 95%. Cela permet au processeur d'économiser de l'énergie lorsqu'il est inactif, mais de passer à des performances complètes lorsqu'il y a des choses à faire. Il y a une latence de transition, mesurée en millisecondes, donc quand un processeur inactif reçoit soudainement une grosse charge, il continue de chug à basse fréquence pendant quelques millisecondes avant de passer à pleine puissance, donc dans certaines situations, cela peut entraîner des performances légèrement inférieures à celles lorsque toujours à pleine vitesse.

Il existe d' autres gouverneurs , dont le gouverneur "performance" qui exécute toujours le CPU à sa fréquence complète. Cela élimine la latence de commutation, mais peut augmenter la consommation d'énergie.

Vous pouvez expérimenter avec différents gouverneurs comme suggéré dans une autre réponse, mais je doute que cela produise des résultats spectaculaires. Ils n'en feraient pas un défaut sauf si cela avait du sens dans 99% des cas :)

Mais revenons à votre question: très probablement, Windows vous montre la fréquence maximale possible du processeur (celle qu'ils annoncent sur la boîte du processeur), tandis qu'Ubuntu vous montre la fréquence réelle avec laquelle chacun des cœurs du processeur s'exécute à ce moment particulier. Cela ne signifie pas que le CPU tourne plus lentement dans Ubuntu. S'il semble qu'Ubuntu fonctionne lentement sur votre ordinateur portable, cela est probablement dû à autre chose - par exemple, une faible RAM, un disque dur lent, etc. Ubuntu moderne nécessite certainement plus de ressources que, par exemple, Windows XP que vous trouverez probablement sur un ordinateur portable plus ancien.

Lecture plus technique:


Cela l'explique certainement! Cependant, si je devais régler le gouverneur sur Performance, tous mes cœurs de processeur ne devraient-ils pas fonctionner à 1800 MHz? Actuellement, lorsque je modifie le paramètre, il ne définit que CPU1 sur 1800 MHz. Les 2 autres ne sont qu'à 800 MHz. Je suppose que cela pourrait simplement être attribué à une limitation du processeur ...
Scotty_80
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.