Comment analyser rapidement le goulot d'étranglement du processeur du système où? (Vous ne connaissez pas les connaissances)

Auteur | Ni Pengfei (Microsoft, un ingénieur senior, Kubernetes responsable du projet)

les performances du processeur tant, outil d'analyse des performances du processeur pour saisir beaucoup, et remplacé par les scénarios de travail réels, en observant ce que l'indice, quels outils choisir la performance?

Ne vous inquiétez pas, l'expérience I aujourd'hui pour optimiser les performances pendant de nombreuses années, a mis au point un « rapide et précise » routine de positionnement de goulot d'étranglement, pour vous dire dans différents scénarios, comment choisir l'outil d'index, comment trouver les goulots d'étranglement.

 Les performances du processeur

Après avoir examiné le cas, décrit les performances du processeur de ce que sont. Vous pouvez trouver quelqu'un de votre propre morceau de papier, de la mémoire à écrire, ou ouvrir un précédent article, son résumé.

Tout d'abord, Il devrait être les plus susceptibles de penser à l'utilisation du processeur Il est également l'environnement réel de la plupart des indicateurs de performance communs.

pourcentage d'utilisation du processeur de temps non-ralenti décrit le temps CPU total, en fonction de la CPU pour exécuter la tâche, a été divisé en CPU utilisateur, la CPU système, en attente pour CPU d'entrée / sortie, interruption d'interruption dure et douce.

  • l'utilisation du processeur utilisateur, l'état d'utilisation du processeur, y compris l'utilisateur (l'utilisateur) et un mode faible utilisateur prioritaire l'utilisation du processeur (Nice), indique le pourcentage de temps CPU en fonctionnement en mode utilisateur. L'utilisateur taux d'utilisation du processeur, indique généralement il y a une application occupée.

  • l'utilisation du processeur système, représente le pourcentage du temps CPU en mode noyau de fonctionnement (sans interruption). L'utilisation du processeur du système est élevée, ce qui indique que le noyau est occupé.

  • En attendant d'E / S, l'utilisation du processeur, aussi communément appelé iowait, il représente l'attente / O est le pourcentage de temps I. iowait haute, les systèmes décrits de manière générale et le matériel d'E / S interaction temps.

  • Doux et l'utilisation de la rupture du processeur d'interruption dur, respectivement les gestionnaires d'interruption d'appel du noyau doux, le pourcentage de matériel de temps d'interruption gestionnaire. Leur utilisation est élevée, indique généralement l'apparition d'un grand nombre d'interruption du système.

  • En plus de ce qui précède, ainsi que dans un environnement virtualisé sera utilisé pour voler l'utilisation du processeur (voler) et l'utilisation du processeur client (invité), respectivement, sont occupés par d'autres pourcentage de machines virtuelles de temps CPU, et exécuter la CPU de la machine virtuelle client pourcentage de temps.

Le second est plus facile de penser, il devrait être la charge moyenne (charge moyenne) , Quel est le nombre moyen de processus actifs du système. Elle reflète la charge globale du système, y compris trois valeurs, reportez-vous à la dernière minute, cinq minutes et la charge moyenne au cours des 15 dernières minutes.

Idéalement, la charge moyenne est égale au nombre de processeur logique, ce qui signifie que chaque CPU se trouve être pleinement utilisée. Si la charge est supérieur au nombre moyen de CPU logique, cela signifie une charge lourde.

Le troisième, également dans la colonne avant d'étudier des estimations moins susceptibles de remarquer, changement de contexte de processus Y compris:

  • Impossible d'obtenir des ressources résultant du changement de contexte volontaire;

  • contexte est Involontaire systèmes prévu entraînent la commutation forcée.

la commutation de contexte, elle-même une caractéristique essentielle de Linux est d'assurer un fonctionnement normal. Mais le changement de contexte excessif, le temps CPU exécutera le processus original, consommé en sauvegarde et la restauration des registres, la pile du noyau et de la mémoire virtuelle et d'autres données, raccourcir le temps de lancer un processus réel, devenir un goulot d'étranglement.

En plus de ce qui précède plusieurs, Un autre indicateur, le cache du processeur taux de succès . Comme la vitesse du développement du processeur beaucoup plus rapide que le développement de la mémoire, la vitesse de traitement du processeur beaucoup plus rapide que la vitesse d'accès à la mémoire. De cette façon, CPU lors de l'accès mémoire, la mémoire aura inévitablement à attendre une réponse. Afin de coordonner les deux énormes écarts de performance, le cache du processeur (généralement un cache multi-niveaux) est apparu.

Comme l'affichage de l'image ci-dessus, la mémoire cache de la vitesse du CPU entre la CPU et la mémoire de données de cache est chaud. Les données chaud ascendant, qui est divisé en différentes tailles en fonction de la mémoire cache L1, L2, L3 et trois autres cache, dans lequel L1 et L2 sont utilisés dans un seul noyau, L3 sont utilisés dans plusieurs curs.

De L1 à L3, successivement trois augmenter la taille du cache, correspondant, de la performance successivement inférieure (mémoire ou meilleure que, bien sûr). Et leur taux de succès, une mesure de la réutilisation du cache du processeur, plus le taux de succès, meilleures sont les performances.

Ces indicateurs sont utiles, nous avons besoin de maître, alors je suis devenu un tableau récapitulatif pour vous aider à classer et de la mémoire.

 Outils de performance

Maître performances du processeur, nous avons aussi besoin de savoir comment obtenir ces indicateurs, ce qui est l'utilisation d'outils.

Vous souvenez-vous tous les cas précédents avec quel outil? Ici, nous regardons également de retour avec des outils de performance du processeur.

Tout d'abord, la charge moyenne des cas. Nous avons d'abord avec une disponibilité, voir la charge moyenne sur le système, et l'augmentation de la charge moyenne, mais aussi avec mpstat et pidstat, observé l'utilisation du processeur de chaque processus et chaque CPU, ce qui conduit à une charge moyenne accrue identifiée le processus, qui est notre stress outil de mesure de la pression.

Le deuxième cas de changement de contexte. LET vmstat de l'utilisation, pour voir le nombre de changements de contexte et les interruptions du système, puis pidstat, a observé le processus de la situation de changement de contexte changement de contexte volontaire et involontaire, enfin pidstat, la situation de changement de contexte de fil observé pour connaître le contexte commutation augmentation du nombre de causes profondes, ce qui est notre outil d'analyse comparative sysbench.

En troisième lieu, le processus augmente les cas d'utilisation du CPU. Nous avons d'abord avec haut, de voir l'utilisation du processeur des systèmes et des processus, l'utilisation du processeur trouvé processus élevé est php-FPM, puis perf haut, observer la chaîne d'appel php-FPM, et, finalement, identifier les causes profondes de la CPU élevée, Autrement dit, la fonction de bibliothèque sqrt ().

L'utilisation quatrième, CPU du système augmente les cas. Nous avons observé d'abord le système avec la CPU supérieur a augmenté, mais par le haut et pidstat, mais n'a pas pu trouver le processus d'utilisation élevée du processeur. Donc, nous réévaluons la sortie de haut, et de l'utilisation du processeur n'est pas élevé, mais le processus est dans l'état en cours pour commencer à trouver le suspect, éventuellement par perf enregistrer et perf rapport, a constaté que l'original est un processus court dans le mal.

En outre, un processus à court terme, j'ai également introduit un execsnoop outil spécial, il peut surveiller le processus en temps réel appel de commande externe.

Cinquièmement, ne pas interrompre le cas du processus et zombie. Nous avons d'abord observé le problème avec haut iowait élevée, et on a trouvé un grand nombre de processus non interruptible et processus zombie, dstat nous trouvons que cela est causé par le disque lu, il a donc trouvé des processus liés par pidstat. Mais nous voyons les appels système avec le processus strace a échoué, et éventuellement avec perf processus d'analyse appelle la chaîne, pour trouver les mensonges de cause racine dans le disque directement I / O.

Le dernier, le cas d'interruption logicielle. Nous avons observé par le haut, les interruptions douces l'utilisation du processeur du système augmente, puis voir / proc / softirqs, a trouvé plusieurs taux de changement rapide de l'interruption logicielle, puis commande sar se trouve au problème du paquet de réseau, puis la finale tcpdump, pour identifier le type et la source des trames réseau pour déterminer une cause d'attaque SYN FLOOD.

Ici, on estime que vous avez perdu connaissance, avait quelques cas, nous avons utilisé une douzaine d'outils de performance CPU, et chaque outil est également adapté pour la scène différente elle! Autant d'outils comment le distinguer? Dans l'analyse de la performance réelle, comment devriez-vous choisir?

Mon expérience est, de deux dimensions différentes pour les comprendre, n'apprendre et à utiliser.

 Apprendre et utiliser, les indicateurs de performance et des outils de performance lien

La première dimension, de la performance de la CPU. Autrement dit, si vous voulez voir un spectacle, d'être bien conscient de ce que les outils peuvent le faire.

En fonction des indicateurs de performance, les indicateurs de performance pour fournir des outils pour classer et comprendre. Ainsi, lorsque les problèmes de performance de dépannage réels, vous pouvez savoir clairement quels outils peuvent fournir des mesures que vous voulez, au lieu d'un par un pour essayer sans fondement, la chance a frappé.

En fait, je suis en face de l'affaire a été utilisée à plusieurs reprises cette idée. Par exemple, avec le haut trouvé la douce interruption du taux d'utilisation du processeur, l'étape suivante a naturellement voulu connaître le type spécifique d'interruption logicielle. Nous pouvons observer le fonctionnement de différents types de doux interruption où? Bien sûr, le système de fichiers proc / proc / softirqs ce document.

Ensuite, par exemple, nous trouvons le type d'interruption douce de réseau pour recevoir, il faudrait continuer à réfléchir sur le réseau pour recevoir des directives. Réseau reçoit le système est quoi? Quels outils peuvent être trouvés dans le réseau reçoit la situation? Dans notre cas, il est dstat utilisation.

Bien que vous n'avez pas besoin de tous les outils pour reculer, mais si nous pouvons comprendre les caractéristiques de chaque indicateur outils correspondant doit être plus efficace et une utilisation plus flexible. Ici, je vous propose des outils de performance CPU faire un tableau, vous permettant de trier les relations et la compréhension de la mémoire, bien sûr, vous pouvez également travailler comme lignes directrices « outil indicateur « à utiliser.

Ci-dessous, nous examinons la deuxième dimension.

La deuxième dimension, à partir de l'outil. C'est quand vous avez déjà un outil pour installer, vous savez ce que cet outil peut fournir des indicateurs . Il est également très important dans l'environnement réel, en particulier l'environnement de production, parce que dans de nombreux cas, vous n'êtes pas autorisé à installer un nouveau kit, ne peut maximiser l'utilisation des bons systèmes déjà installés l'outil, ce qui vous oblige à les nous avons une compréhension suffisante.

Spécifique à utiliser chaque outil, généralement soutenir une multitude d'options de configuration. Mais ne vous inquiétez pas, avec ces options de configuration ne le font pas vers le bas. Vous avez juste besoin de savoir quels outils, ainsi que les fonctions de base de ces outils est ce qui est suffisant. Pour utiliser le temps réel, grâce à la commande man, consultez leur manuel sur elle.

De même, j'ai aussi utilisé ces outils deviendront un tableau récapitulatif, vous permettant d'identifier et de comprendre, naturellement, vous pouvez également la fonction comme « cibles d'outils » Guide d'utilisation, vous pouvez table de consultation en cas de besoin.

 Comment analyser rapidement les goulots d'étranglement du CPU

Je crois que cette étape, votre performance sur le CPU est déjà très familier avec chacun des indicateurs de performance ont également été clair quels outils peuvent être utilisés pour obtenir.

Cela ne veut pas dire que chaque CPU problèmes de performance de rencontre, vous devez mettre ces outils avant tout RAN à nouveau, puis mettre toutes les performances du processeur sur une analyse complète de celui-ci?

Vous estimez que cette façon simple de trouver, comme la recherche stupide. Cependant, ne riez pas, parce que la première fois que je l'ai fait. Tous les indicateurs sont vérifiés à nouveau l'analyse unifiée, bien sûr, il est également susceptible de trouver un goulets d'étranglement potentiels.

Mais l'efficacité de cette méthode est vraiment trop faible! Beaucoup de temps et ne pas dire en face d'un système indicateur énorme, vous pourriez accidentellement oublié un détail, ce qui dans un blanc sec. J'ai mangé plusieurs fois si amer.

Par conséquent, dans l'environnement de production réel, nous voulons souvent de localiser les goulets d'étranglement dans le système le plus rapidement possible, puis d'optimiser les performances le plus rapidement possible, qui est, pour résoudre rapidement et avec précision les problèmes de performance.

Y at-il une méthode qui permet d'identifier rapidement et avec précision les goulots d'étranglement du système il? La réponse est oui.

Bien que les performances plus de CPU, mais vous savez, puisque les performances du processeur du système sont décrits, ils ne seront pas complètement isolés, il y a une certaine corrélation entre les nombreux indicateurs. Essayer de comprendre la pertinence des indicateurs de performance, il est nécessaire pour chaque indicateur de performance de principe compétents de travail . Voilà pourquoi je présente chaque performance, le système doit être intercalés expliquer les principes liés à, je l'espère, vous vous en souvenez.

Par exemple, le taux d'utilisation du processeur utilisateur, nous devrions aller à Dépanner mode utilisateur plutôt que les processus en mode noyau. Parce que l'utilisation du processeur de l'utilisation du processeur utilisateur se reflète en mode utilisateur et le mode noyau utilisation du processeur ne se traduira que sur l'utilisation du processeur du système.

Vous voyez, il y a une compréhension de base, nous pouvons limiter la gamme, un gain de temps et d'efforts.

Par conséquent, Pour limiter la plage, je vais d'abord habituellement courir quelques indicateurs d'outils de soutien, tels que haut, vmstat et pidstat . Pourquoi ces trois outils? Un examen plus attentif cette image ci-dessous, vous sera clair.

Cette image, j'ai énuméré indicateur important de la partie supérieure du processeur, vmstat et pidstat sont fournis, et est représenté par une relation correspond à la ligne en pointillé à une analyse de la performance de la direction suivante.

Par cette image vous pouvez voir, ces trois commandes, comprend presque tous les principaux indicateurs de performance du processeur, telles que:

  • Vous pouvez obtenir toutes sortes d'informations, ainsi que l'utilisation du processeur et la charge moyenne, processus, etc. zombie à partir du haut de la sortie.

  • Peut être obtenu à partir de la sortie des commutateurs de contexte vmstat, les interruptions, l'état d'interruption et un état de non fonctionnement du nombre de processus.

  • Le processus peut être obtenu à partir de la pidstat de sortie utilisation du processeur utilisateur, système d'utilisation du processeur, ainsi que la situation de changement de contexte changement de contexte volontaire et involontaire.

En outre, de nombreux indicateurs de la sortie de ces trois outils sont reliés entre eux, donc, j'ai aussi dit leur relation avec des lignes en pointillés, quelques exemples vous pouvez être plus facile à comprendre.

Le premier exemple, la sortie pidstat augmenté l'utilisation du processeur du processus utilisateur, parce que l'utilisation du processeur de l'utilisateur en haut de sortie augmente. Ainsi, lorsque les utilisateurs découvrent sortie haut de problème d'utilisation du processeur, vous pouvez le faire par rapport à la pidstat de sortie, et observer si le problème est causé par un processus.

Le processus pour trouver la cause des problèmes de performance, nous devons analyser le comportement des outils pour analyser le processus avec le processus, tels que les appels de cas d'utilisation des systèmes d'analyse de strace, et l'utilisation de la performance perf fonctions d'analyse de la chaîne d'appel à tous les niveaux.

Le deuxième exemple, la sortie supérieure de charge moyenne augmente l'état de fonctionnement peut être sortie avec vmstat et le nombre de processus qui ne font pas état d'interruption de contraste, l'observation est le processus qui a conduit à l'augmentation de la charge.

  • Si le processus ne soit pas interrompue augmentation du nombre, alors vous devez faire l'analyse des E / S, qui est, avec une égale dstat ou un outil sar, une analyse plus approfondie de de l'E / S.

  • Si vous utilisez l'Etat a augmenté le nombre de processus, il faudrait revenir en haut et pidstat, afin d'identifier ceux-ci en service à la fin est ce processus, et ensuite utiliser des outils d'analyse de processus pour une analyse plus poussée.

Le dernier exemple, lors de la recherche de la sortie de capote d'interruption augmente l'utilisation du processeur, vous pouvez visualiser les modifications dans les différents types de mou interruption / proc / fichier softirqs, à la fin de déterminer quel type d'interruption logicielle de la question. Par exemple, il a été constaté que le réseau reçoit des perturbations causées par, vous pouvez aller de l'avant avec un outil d'analyse de réseau pour analyser sar et tcpdump.

Notez que j'ai énuméré dans cette figure, seul le noyau de plusieurs outils de performance, et tous ne sont pas répertoriés. Pour ce faire, d'une part, vous ne voulez pas vous faire peur avec beaucoup de liste d'outils. Au début de l'étude ou l'accès à tous les outils de niche de base, il est pas nécessairement une bonne chose. D'autre part, est l'espoir que vous allez mettre l'accent sur l'outil de base, après tout, familier avec eux, vous pouvez résoudre la plupart des problèmes.

Ainsi, vous pouvez enregistrer cette image, les schémas de pensée que l'analyse des performances du processeur. À partir du noyau de ces outils, à travers ces cas, je me suis offert dans une pratique réelle de l'environnement, ils gagnent.

En tant que programmeur, l'optimisation des performances est d'éviter pas les choses, le travail est aussi l'un des système de logiciel est le plus difficile, mais tous les besoins d'ingénieur à maîtriser les compétences de base. La colonne la plus caractéristique exceptionnelle: Auteur de nombreuses années d'expérience pratique, des idées conduit cas, les indicateurs de base expliquent la performance Linux pour vous, les outils et l'observation correspondante, l'analyse et la méthode de mise au point, après l'école peut appliquer immédiatement au travail dans leur propre optimisation dans.

Fun tensorflow? Vous devez savoir qui comprend 30
Précédent
Kiko Mizuhara tels que top model est venu à l'aide! Alexander Wang série 2018 printemps et en été dans les coulisses!
Prochain
3 à 0, c9 balayées Afreeca! Amérique du Nord demi-finales
Matin lecture | Ethiopie a annoncé le 11 e jour de deuil national | insulte publique de l'hôtel au numéro de l'article des femmes vivent des excuses Hua Groupe
Samsung ridiculiser encore une fois d'Apple: non seulement bangs laid, aussi vers le bas
vitesse MTD jusqu'à la construction de l'initiative intelligente de la ville, la mise en place du partage de l'information pour promouvoir la transformation numérique | Smart City Weekly
Dake Amis classique d'animation étrangère "Akira" va tirer version live-action! « Quake 3 » dirigé par le directeur
Plus de 60 grandes jambes à venir bientôt Mordor, le PW avec top model était, en fait, pas la difficulté
Ce qui a duré plus de cinq heures, porte IG de LCK, vaincu KT!
Pour prouver la sécurité de classe mondiale! West University officiellement approuvé!
Linux, trouver un résumé complet de l'utilisation de la commande, il n'y a pas de lecture ne sera pas utiliser!
2019 film oscarisé « escalade » débuts au Festival du film du Nord qualité de chef-d'uvre de la première ascension du regard du pays avant le grand écran détoner
Acheter acheter acheter | original en mesure de commencer Nigo, Nishiyama Toru Takahashi produit?
LOL le roi de gloire comme les cinq premiers héros, amis: même les noms sont les mêmes que la dernière