


Explication détaillée du problème de charge moyenne de Linux
Le contenu de cet article est une explication détaillée du problème de charge moyenne de Linux. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Dans une interview, l'intervieweur a posé une question. L'utilisation du processeur n'est pas élevée, mais la charge (charge moyenne) est très élevée. Comment trouvez-vous le problème ?
Je n'ai pas compris la signification de Load à l'époque. L'intervieweur a expliqué que cet indicateur reflète davantage de processus dans un état ininterrompu. Sur la base de mon expérience passée en matière de développement back-end, j'ai répondu qu'il pouvait y avoir davantage de blocages d'E/S dans le système, ce qui se produit principalement lors de problèmes d'E/S réseau. Utilisez la commande netstat -tnp pour voir s'il y a beaucoup de statut time_wait dans la connexion TCP. ..
Je sais. Ma réponse était très unilatérale, alors j'ai révisé et pris des notes par la suite.
Qu'est-ce que la moyenne de charge ?
Ceux qui connaissent Linux savent que vous pouvez utiliser la commande top uptime pour afficher l'indicateur de charge moyenne.
Utiliser la disponibilité humaine pour afficher la charge moyenne Explication :
La charge moyenne du système est le nombre moyen de processus qui sont dans un état exécutable ou ininterrompu. Un processus dans un état exécutable utilise le. CPU ou en attente d'utilisation du CPU. Un processus dans un état ininterrompu attend un accès aux E/S, par exemple en attente d'un disque. Les moyennes sont prises sur les trois intervalles de temps. Les moyennes de charge ne sont pas normalisées pour le nombre de CPU dans un système. , donc une charge moyenne de 1 signifie qu'un système à un seul processeur est chargé tout le temps tandis que sur un système à 4 processeurs, cela signifie qu'il était inactif 75 % du temps.
Comprenez le point clé, la charge moyenne fait référence à l'unité Au cours d'une certaine période de temps, le nombre moyen de processus dans le système qui sont dans l'état exécutable et dans l'état ininterruptible est appelé nombre moyen de processus actifs. Il est à noter que cela n'est pas directement lié à l'utilisation du processeur.
Utilisez la commande ps aux pour afficher l'état du processus, comme indiqué dans cet article :
Statut R, statut exécutable ( Running / Runnable), l'état D du processus qui utilise le CPU ou attend le CPU, l'état sans interruption (Uninterrupttitle Sleep, également connu sous le nom de Disk Sleep), le processus qui est dans le processus critique de l'état du noyau, et est ininterrompu.
Pourquoi l'état D ne peut-il pas être interrompu ? Par exemple, le système appelle la réponse d'E/S du périphérique matériel afin d'assurer la cohérence des données, avant que le périphérique disque ne renvoie les données. il ne peut pas interrompre d'autres processus ou les interruptions sont interrompues, il est facile de provoquer une incohérence entre les données du disque et les données du processus. Par conséquent, l’état ininterruptible (D) est un mécanisme de protection du système pour les processus et les périphériques matériels.
Le nombre moyen de processus actifs, à proprement parler, c'est la moyenne décroissante exponentielle du nombre de processus actifs (le taux de déclin d'une certaine quantité est proportionnel à sa valeur). Habituellement, il peut être compris comme le nombre de processus actifs par unité de temps.
Utilisation du processeur et charge équilibrée
Du point de vue du processeur, la charge moyenne reflète uniquement le nombre de processus occupant le processeur par unité de temps, et l'utilisation du processeur n'est pas directement liée au nombre de processus. Nous pouvons utiliser la commande top vmstat pour vérifier l'utilisation du CPU. Il existe les indicateurs suivants :
%us : indique l'utilisation du processeur du programme de l'espace utilisateur (non planifié par nice) %sy : indique l'utilisation du processeur. de l'espace système, principalement des programmes du noyau. %ni : indique l'utilisation du processeur par les programmes dans l'espace utilisateur et planifiée via nice. %id : processeur inactif %wa : le temps pendant lequel le processeur attend io lors de l'exécution %hi : le nombre d'interruptions matérielles traitées par le processeur %si : le nombre d'interruptions logicielles traitées par le processeur %st : processeur volé par le virtuel machine
Comment mesurer une charge moyenne raisonnable
De manière générale, si la charge moyenne est inférieure au nombre de processeurs, les performances de la machine répondent aux exigences du service. Peu importe si elle le dépasse. le nombre. La charge moyenne ne représente pas directement l'utilisation du processeur, et cela peut être dû à davantage de blocages d'E/S. Lorsque la charge moyenne est supérieure à 70 % du nombre de processeurs, le processus peut répondre lentement, affectant ainsi le fonctionnement normal du service.
Du point de vue des changements historiques
De manière générale, la durée de disponibilité fournit des indicateurs de charge moyenne à trois moments, à savoir : 1 minute, 5 minutes et 15 minutes. Cela reflète la récente tendance au changement d’état du système. Dans l'environnement de production réel, nous devons établir des enregistrements de surveillance à long terme. S'il y a des changements numériques anormaux, par exemple si la charge moyenne est deux fois supérieure à celle du processeur, le problème doit être analysé et étudié.
Analyse complète des différences entre les deux indicateurs
à partir des deux indicateurs de charge équilibrée et d'utilisation du processeur, les situations possibles suivantes sont combinées :
La charge moyenne est élevée, CPU Si l'utilisation est élevée, soit des processus (threads) gourmands en CPU sont en cours d'exécution, soit un grand nombre de processus (threads) attendent que le CPU soit planifié. La charge moyenne est élevée, et si l'utilisation du CPU est faible, elle est gourmande en E/S. les processus sont en cours d'exécution. Les deux sont relativement faibles et la charge moyenne normale est faible. Utilisation élevée du processeur, cela n'existe pas
Cas et outils de simulation
Comment pouvons-nous analyser des cas avec différentes combinaisons de processus. deux indicateurs de charge équilibrée et d'utilisation du processeur, et trouver la source des changements d'indicateur ?
L'environnement suivant est Linux Arch 4.19 / 4 CPU / 8G Memory
Liste d'outils
outil de test de stress du système de stress
package d'outils d'analyse des performances sysstat :
Outil d'analyse des performances du processeur multicœur mpstat, mp signifie outil d'analyse des performances des processus pidstat multi-processeurs (multi-processeurs), pid signifie ID de processus. Il est utilisé pour visualiser les indicateurs de CPU, de mémoire, d'E/S et de changement de contexte du processus
Scénarios de simulation
L'utilisation du stress peut simuler les scénarios suivants
CPU gourmand processus
# 模拟一个进程, 对 cpu 使用率 100%,限时 600s stress --cpu 1 --timeout 600
Processus gourmands en IO
option -i de stress, génère N travailleurs tournant sur sync()
# 模拟一个进程不停的执行 sync stress -i 1 --timeout 600
# 模拟16个进程, 对 cpu 使用率 100%,限时 600s stress --cpu 16 --timeout 600
Indicateurs d'outils
mpstat -P ALL 5 surveille tous les processeurs et génère un ensemble de données toutes les 5 secondes. Faites attention aux indicateurs d'utilisation %usr et %iowait IO block time From. ceci, vous pouvez juger qu'il est gourmand en CPU. Est-ce toujours gourmand en E/S pidstat -u 5 1. Dans l'intervalle statistique de 5 secondes, les données des processus qui ont utilisé le CPU Faites attention aux indicateurs %usr. taux d'utilisation et % du temps d'attente pour utiliser le CPU. À partir de là, vous pouvez juger s'il y a trop de processus (threads)
.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Vs Code Système Exigences: Système d'exploitation: Windows 10 et supérieur, MacOS 10.12 et supérieur, processeur de distribution Linux: minimum 1,6 GHz, recommandé 2,0 GHz et au-dessus de la mémoire: minimum 512 Mo, recommandée 4 Go et plus d'espace de stockage: Minimum 250 Mo, recommandée 1 Go et plus d'autres exigences: connexion du réseau stable, xorg / wayland (Linux) recommandé et recommandée et plus

Les raisons de l'installation des extensions de code vs peuvent être: l'instabilité du réseau, les autorisations insuffisantes, les problèmes de compatibilité système, la version de code vs est trop ancienne, un logiciel antivirus ou des interférences de pare-feu. En vérifiant les connexions réseau, les autorisations, les fichiers journaux, la mise à jour vs du code, la désactivation des logiciels de sécurité et le redémarrage du code ou des ordinateurs, vous pouvez progressivement dépanner et résoudre les problèmes.

Bien que le bloc-notes ne puisse pas exécuter directement le code Java, il peut être réalisé en utilisant d'autres outils: à l'aide du compilateur de ligne de commande (Javac) pour générer un fichier bytecode (filename.class). Utilisez l'interpréteur Java (Java) pour interpréter ByteCode, exécuter le code et sortir le résultat.

VS Code est le code Visual Studio Nom complet, qui est un éditeur de code multiplateforme gratuit et open source et un environnement de développement développé par Microsoft. Il prend en charge un large éventail de langages de programmation et fournit une mise en surbrillance de syntaxe, une complétion automatique du code, des extraits de code et des invites intelligentes pour améliorer l'efficacité de développement. Grâce à un écosystème d'extension riche, les utilisateurs peuvent ajouter des extensions à des besoins et des langues spécifiques, tels que les débogueurs, les outils de mise en forme de code et les intégrations GIT. VS Code comprend également un débogueur intuitif qui aide à trouver et à résoudre rapidement les bogues dans votre code.

VS Code est disponible sur Mac. Il a des extensions puissantes, l'intégration GIT, le terminal et le débogueur, et offre également une multitude d'options de configuration. Cependant, pour des projets particulièrement importants ou un développement hautement professionnel, le code vs peut avoir des performances ou des limitations fonctionnelles.

Visual Studio Code (VSCODE) est un éditeur de code Open Source, Open Source et gratuit développé par Microsoft. Il est connu pour son léger, l'évolutivité et le support pour une large gamme de langages de programmation. Pour installer VScode, veuillez visiter le site officiel pour télécharger et exécuter l'installateur. Lorsque vous utilisez VSCODE, vous pouvez créer de nouveaux projets, modifier le code, déboguer le code, naviguer dans les projets, développer VSCODE et gérer les paramètres. VScode est disponible pour Windows, MacOS et Linux, prend en charge plusieurs langages de programmation et fournit diverses extensions via Marketplace. Ses avantages incluent le léger, l'évolutivité, le support linguistique étendu, les fonctionnalités riches et la version

Les principales utilisations de Linux comprennent: 1. Système d'exploitation du serveur, 2. Système intégré, 3. Système d'exploitation de bureau, 4. Environnement de développement et de test. Linux excelle dans ces domaines, offrant des outils de stabilité, de sécurité et de développement efficaces.

Pour afficher l'adresse du référentiel GIT, effectuez les étapes suivantes: 1. Ouvrez la ligne de commande et accédez au répertoire du référentiel; 2. Exécutez la commande "git Remote -v"; 3. Affichez le nom du référentiel dans la sortie et son adresse correspondante.
