web-dev-qa-db-fra.com

Quelle est la bonne façon d'afficher la vitesse de votre processeur sous Linux?

J'ai trouvé deux commandes pour générer des informations sur mon processeur: cat /proc/cpuinfo et lscpu. /proc/cpuinfo montre que la vitesse de mon processeur est de 2,1 Ghz, tandis que lspcu indique qu'elle est de 3167 Mhz. Laquelle est correcte?

Ceci est ma sortie exacte de cat /proc/cpuinfo sur la vitesse de mon processeur:

model name  : Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz

Et cela vient de lscpu:

CPU MHz:               3225.234

(Pour une raison quelconque, lscpu sort à chaque fois différemment, variant entre 3100 et 3300 MHz)

22
Rohan

Pour voir la vitesse actuelle de chaque cœur, je fais ceci:

watch -n.1 "cat /proc/cpuinfo | grep \"^[c]pu MHz\""

Remarque:

Si votre commande watch ne fonctionne pas avec des intervalles inférieurs à une seconde, modifiez l'intervalle comme suit:

watch -n1 "cat /proc/cpuinfo | grep \"^[c]pu MHz\""

Cela affiche le cpu speed de chaque cœur en temps réel.

En exécutant la commande suivante, une ou plusieurs fois, depuis un autre terminal, on peut voir le changement de vitesse avec la commande watch ci-dessus, en supposant que SpeedStep est activé (Cool'n'Quiet pour AMD).

echo "scale=10000; 4*a(1)" | bc -l &

(Cette commande utilise bc pour calculer pi à 10 000 emplacements.)

40
Timothy Martin

Pour les processeurs basés sur Intel i3, i5 et i7, il existe un outil dédié appelé i7z qui indique la vitesse actuelle de tous les cœurs de processeur.

Depuis la page de manuel (description):

i7z exécute le programme i7z, basé sur ncurses, sans aucune option. i7z imprimera les états C et la température pour les processeurs Core basés sur i3, i5 et i7 d'Intel (y compris Nehalems, Sandy Bridge et Ivy Bridge).

Pour les distributions basées sur Ubuntu, vous pouvez l'installer en émettant cette commande:

Sudo apt-get install i7z

puis lancez-le (l'outil doit être exécuté avec Sudo):

Sudo i7z
8

Les fréquences CPU sont conservées dans le noyau mais elles peuvent être un peu "éteintes". Vous pouvez les voir en utilisant:

$ cd /sys/devices/system/cpu
$ paste <(cat cpu*/cpufreq/affected_cpus) <(cat cpu*/cpufreq/scaling_cur_freq) | column -s $'\t' -t
0  833914
1  800021
2  800086
3  800029
4  800036
5  800460
6  800118
7  800141

Si vous n'avez pas besoin de connaître le CPU #, une méthode plus courte utilise simplement:

$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
1396354
800058
800050
800024
800005
800017
800001
1392006
4
WinEunuuchs2Unix

Le Processeur Intel Core i7-460 prend en charge technologie Turbo Boost . Il a une fréquence de base de 2,10 GHz et une fréquence turbo maximale de 3,30 GHz. Cela veut dire que,

  • Si vous désactivez le Turbo Boost (dans le menu de configuration du BIOS), le CPU fonctionnera à 2.10GHz tout le temps.
  • Lorsque Turbo Boost est activé et qu'un seul des cœurs fonctionne, le processeur fonctionne à un maximum de 3,30 GHz.
  • Si Turbo Boost est activé et que tous les cœurs fonctionnent, le processeur fonctionnera à 2,10 GHz.

Obtention de la fréquence actuelle

Pour déterminer si le Turbo Boost est activé et quelle est la fréquence actuelle, vous pouvez utiliser cpupower frequency-info. Par exemple, pour un ancien Intel Core i5-660 avec Turbo Boost activé, vous obtiendrez les éléments suivants.

$ cpupower frequency-info
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 1.20 GHz - 3.47 GHz
  available frequency steps: 3.47 GHz, 3.33 GHz, 2.53 GHz, 1.87 GHz, 1.20 GHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 1.20 GHz and 3.47 GHz.
              The governor "ondemand" may decide which speed to use
              within this range.
  current CPU frequency is 1.87 GHz.
  cpufreq stats: 3.47 GHz:82,67%, 3.33 GHz:0,00%, 2.53 GHz:0,00%, 1.87 GHz:0,06%, 1.20 GHz:17,28%  (3)
  boost state support:
    Supported: yes
    Active: yes
    25500 MHz max turbo 4 active cores
    25500 MHz max turbo 3 active cores
    25500 MHz max turbo 2 active cores
    25500 MHz max turbo 1 active cores

Notez que les informations indiquent les limites matérielles (1.20 GHz - 3.47 GHz), les fréquences possibles (3.47 GHz, 3.33 GHz, 2.53 GHz, 1.87 GHz, 1.20 GHz) et la fréquence actuelle (1.87 GHz). Vous pouvez trouver les informations techniques de ces fréquences sur le site Web d'Intel .

Fréquence lorsque TurboBoost est désactivé

Notez la différence lorsque vous exécutez la même commande avec Turbo Boost désactivé: Dans le boost state support, les valeurs de Supported et Active sont no. Ici, le CPU sera toujours à la valeur nominale/minimale (1,20 GHz).

$ cpupower frequency-info
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 1.20 GHz - 3.47 GHz
  available frequency steps: 3.47 GHz, 3.33 GHz, 2.53 GHz, 1.87 GHz, 1.20 GHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 1.20 GHz and 3.47 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 1.20 GHz.
  cpufreq stats: 3.47 GHz:40,86%, 3.33 GHz:0,01%, 2.53 GHz:0,06%, 1.87 GHz:0,22%, 1.20 GHz:58,85%  (493)
  boost state support:
    Supported: no
    Active: no
    25500 MHz max turbo 4 active cores
    25500 MHz max turbo 3 active cores
    25500 MHz max turbo 2 active cores
    25500 MHz max turbo 1 active cores

Vous pouvez désactiver le Turbo Boost en utilisant le BIOS ou certains options/commandes Linux . support du noya peut être activé/désactivé en utilisant le /sys/devices/system/cpu/cpufreq/boost fichier.

4
Jaime

Pour obtenir des informations sur votre CPU, tapez la commande suivante:

dmidecode -t 4
3
GAD3R

Cela dépend de la raison pour laquelle vous utilisez les informations; la ligne de sortie de cat/proc/cpuinfo` est la vitesse "annoncée", la vitesse dans la brochure, etc. Si vous comparez le serveur A au serveur B, cela peut être suffisant. Si vous surveillez les charges de travail sur le système, les commentaires à votre question et la réponse de @ gad3r seraient ce qu'il faudrait regarder.

0
Mark Stewart