2010-09-14 4 views
6

Au cours des tests de performance, j'ai trouvé que les valeurs de Process(w3wp)\% Processor Time sont supérieures à 100. Certaines valeurs sontperformances .net contre - Process (w3wp) % Temps processeur

237.1436486 
312.5338052 
341.2373994 
264.4097661 
191.6237736 

Je pensais que cette valeur représente l'utilisation du processeur par le processus w3wp. Je ne comprends pas pourquoi la valeur est supérieure à 100%.

Répondre

6

Si vous avez plusieurs noyaux, il peut aller plus de 100, il est la somme de l'utilisation du processeur pour chaque processeur (noyau, ou noyau virtuel) si plus de 100 est normal (100*numberOfCores est le nax).

Utilisez la version Process(w3wp_Total) du compteur si vous voulez que le% dans l'ensemble du processeur, ce plafonne à 100.

+0

Salut, merci. Cela a du sens, je vais chercher le compteur que vous avez mentionné – testuser

+0

Y a-t-il un tel compteur? Le seul que je connaisse, autre que "Process (w3wp)" serait "Process (_Total)", qui est bien sûr la somme de tous les processus. Personnellement, j'ai simplement fait un ("Process (w3wp) \% Processor Time"/Environment.ProcessorCount) en ayant ce problème. –

+0

Je n'ai pas trouvé de compteur Processus (w3wp_Total) mais j'ai envisagé de faire la même chose ("Process (w3wp) \% temps processeur"/Environment.ProcessorCount) Merci! – testuser

5

Comme Nick Craver déjà dit, il est la valeur combinée de tous les processeurs (logiques ou physiques). Pour obtenir une valeur comprise entre 0% et 100%, il suffit de la diviser par le nombre de processeurs (par exemple, Environment.ProcessorCount, en supposant que vous souhaitiez le faire en code .NET).