Quelles requêtes WQL utiliseriez-vous pour surveiller les goulots d'étranglement typiques de Windows? Lesquelles utiliseriez-vous pour obtenir des données similaires à «top» ou «netstat»? À quel intervalle sonderiez-vous?
En voici quelques-unes que je trouve utiles.
SELECT PercentDiskTime, AvgDiskQueueLength, DiskReadBytesPerSec, DiskWriteBytesPerSec FROM Win32_PerfFormattedData_PerfDisk_PhysicalDisk
SELECT Caption, CommittedBytes, AvailableBytes, PercentCommittedBytesInUse, PagesPerSec, PageFaultsPerSec FROM Win32_PerfFormattedData_PerfOS_Memory
SELECT PercentProcessorTime FROM Win32_PerfFormattedData_PerfOS_Processor
SELECT Caption, WorkingSet, PageFaultsPerSec,IOReadBytesPerSec, IOWriteBytesPerSec, ThreadCount, HandleCount FROM Win32_PerfFormattedData_PerfProc_Process
SELECT Caption, BytesReceivedPerSec, BytesSentPerSec FROM Win32_PerfFormattedData_Tcpip_NetworkInterface
monitoring
wmi
Yancy
la source
la source
Réponses:
C'est vraiment une grande question , et c'est dommage qu'elle n'ait pas obtenu plus d'amour!
Ma théorie de base de l'analyse des goulots d'étranglement est de traiter le système comme une boîte avec 4 sortes de ressources finies: processeur, mémoire, disque et réseau . Je veux donc obtenir des chiffres de base pour chacun d'eux afin de déterminer la santé de la boîte. Je veux des chiffres faciles à interpréter: élevé est mauvais, faible est bon. 0 est le meilleur, mais jamais parfaitement réalisable (après tout, nous avons acheté l'ordinateur pour travailler , hein?). Une fois que je vois laquelle des quatre ressources est le principal goulot d'étranglement, je peux déterminer quel programme ou processus consomme toutes les ressources et prendre une décision éclairée quant à savoir si j'ai besoin d'augmenter cette ressource - ou d'ajuster le programme / processus à utiliser moins de la ressource.
Je formaterai les principaux compteurs de performances que j'utilise, à partir de cet article , en tant que requêtes WMIC, car aucun script n'est requis (bien que cela soit certainement possible!). Vous pouvez saisir chacune de ces requêtes directement dans la console cmd:
Ci-dessus se trouve la longueur de la file d'attente du processeur . Cela indique combien de threads attendent dans la file d'attente d'être traités par le CPU. Les chiffres élevés sont mauvais, les chiffres faibles sont bons. En général, je considère qu'une valeur <10 est un système sain.
Ci-dessus se trouve la mémoire, le nombre de pages entrées par seconde , la vitesse à laquelle les pages sont lues à partir du disque pour résoudre les erreurs de page matérielle. Des erreurs de page matérielle se produisent lorsqu'un processus fait référence à une page de la mémoire virtuelle qui ne se trouve pas dans la mémoire physique et doit être récupérée à partir du disque. Ce compteur fonctionne mieux dans la vue graphique de Perfmon. Sur un ordinateur sain (sans goulot d'étranglement), vous verrez des pointes occasionnelles lorsque les données sont lues du disque dans la RAM, plus vous voyez de pointes et plus elles montent, plus le système est limité en mémoire. Si le système reste souvent à une valeur non nulle pendant des périodes plus longues que, disons, cinq secondes, vous avez probablement un système goulot d'étranglement de mémoire.
Ci-dessus se trouve PhysicalDisk, la longueur moyenne de la file d'attente de disque . Je considère que cela est l'indicateur clé de la santé du système, car les goulots d'étranglement de la mémoire vont également embourber le disque en raison d'un échange excessif de fichiers d'échange - et augmenteront souvent l'utilisation du processeur. Il affichera un élément pour chaque disque monté ainsi qu'un total de tous les disques. Un disque unique performant aura cette valeur à 2 ou moins. Pour les matrices, divisez le nombre de broches par la longueur de la file d'attente (par exemple: 4 broches dans la matrice divisées par une longueur de file d'attente de 8 = 2, ce qui signifie que la matrice fonctionne bien).
Et enfin, ci-dessus, nous avons les performances de la carte réseau. Plus précisément , l'interface réseau, la longueur de la file d'attente de sortie et les erreurs de paquets reçus . Ces deux compteurs nous permettent de savoir combien de paquets attendent d'être envoyés et combien de paquets entrants ont provoqué des erreurs qui ont probablement entraîné des retransmissions. Nous voulons que les deux nombres restent à zéro. Dans cette requête, j'obtiens également la bande passante actuelle de la carte réseau qui est une information utile.
Une fois que j'ai déterminé quelle ressource est surutilisée, je dépend généralement de Process Explorer ou de l'objet de processus de Perfmon pour découvrir quel processus est le porc de ressource.
la source