Dans la page Wikipedia pour le temps CPU , il est dit
Le temps CPU est mesuré en ticks d'horloge ou en secondes. Souvent, il est utile de mesurer le temps processeur en pourcentage de la capacité du processeur, ce qui est appelé l'utilisation du processeur.
Je ne comprends pas comment une durée peut être remplacée par un pourcentage. Quand je regarde top
, ne me %CPU
dit pas que j'utilise MATLAB
2.17 de mes cœurs?
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18118 jasl 20 0 9248400 261528 78676 S 217.2 0.1 8:14.75 MATLAB
Question
Afin de mieux comprendre l'utilisation du processeur, comment puis-je calculer moi-même l'utilisation du processeur?
linux
performance
central-processing-unit
cpu-usage
Jasmine Lognnes
la source
la source
1
).Réponses:
Le temps CPU est alloué en tranches de temps discrètes (ticks). Pour un certain nombre de tranches de temps, le CPU est occupé, d'autres fois ce n'est pas le cas (ce qui est représenté par le processus inactif). Dans l'image ci-dessous, le CPU est occupé pour 6 des 10 tranches de CPU. 6/10 = 0,60 = 60% du temps occupé (et il y aurait donc 40% de temps inactif).
Un pourcentage est défini comme "un nombre ou un taux qui est exprimé comme un certain nombre de parties de quelque chose divisé en 100 parties". Donc, dans ce cas, ces parties sont des tranches de temps discrètes et quelque chose est des tranches de temps occupé par rapport aux tranches de temps inactif - le taux de tranches de temps occupé à inactif.
Étant donné que les processeurs fonctionnent en GHz (milliards de cycles par seconde). Le système d'exploitation découpe ce temps en unités plus petites appelées ticks. Ils ne font pas vraiment 1/10 de seconde. Le taux de tick dans Windows est de 10 millions de ticks en une seconde et sous Linux, il est
sysconf(_SC_CLK_TCK)
(généralement 100 ticks par seconde).Dans quelque chose comme
top
, les cycles CPU occupés sont ensuite encore décomposés en pourcentages de choses comme le temps utilisateur et le temps système. Soustop
Linux et perfmon sous Windows, vous obtiendrez souvent un affichage qui dépasse 100%, car le total est de 100% * the_number_of_cpu_cores.Dans un système d'exploitation, c'est le travail du planificateur d'allouer ces précieuses tranches aux processus, c'est donc le planificateur qui le signale.
la source
Le temps CPU est le temps que le processus utilise le CPU - la conversion en pourcentage se fait en divisant par la quantité de temps réel écoulé.
Donc, si j'ai un processus qui utilise 1 seconde de temps CPU sur une période de 2 secondes, il utilise 50% d'un CPU.
Dans le cas de votre processus MATLAB, 217% indique qu'il a utilisé 2,17 secondes de temps processeur par seconde au cours du dernier intervalle d'échantillonnage - en fait, monopoliser 2 cœurs de processeur et en prendre un tiers.
la source