Table des matières
3.3.3 Analyse des performances d'utilisation : limitée
3.4 Diagnostic des problèmes intermittents
3.4.1 Problème de requête unique ou problème de service
Utilisez SHOW GLOBAL STATUS
Utilisez SHOW PROCESSLIST [Référence] Afficher quels threads sont en cours d'exécution
Maison base de données tutoriel mysql [Base de données MySQL] Interprétation du chapitre 3 : Analyse des performances du serveur (Partie 2)

[Base de données MySQL] Interprétation du chapitre 3 : Analyse des performances du serveur (Partie 2)

Aug 07, 2018 pm 01:43 PM
mysql

Laissez-moi soupirer d'émotion : DBA n'est vraiment pas couvert

3.3.3 Analyse des performances d'utilisation : limitée

3.4 Diagnostic des problèmes intermittents

Si le système s'arrête occasionnellement, ralentit les requêtes ou provoque des problèmes d'observation, essayez de ne pas recourir aux essais et aux erreurs pour résoudre le problème : le risque est élevé

3.4.1 Problème de requête unique ou problème de service

Utilisez SHOW GLOBAL STATUS

Fréquence plus élevée : 1 s/heure Exécutez cette commande pour obtenir des données. Le problème se produit via le compteur

Utilisez SHOW PROCESSLIST [Référence] Afficher quels threads sont en cours d'exécution

[Base de données MySQL] Interprétation du chapitre 3 : Analyse des performances du serveur (Partie 2)

Utilisez le journal des requêtes

pour activer les requêtes lentes, définissez le long_query_time global = 0 et confirmez que toutes les connexions adoptent les nouveaux paramètres (vous devrez peut-être réinitialiser toutes les connexions prennent effet)

Faites attention aux journaux pendant la période où le débit chute soudainement. La requête est écrite dans le journal des requêtes lentes pendant la phase d'achèvement

Les bons outils obtiennent deux fois plus. résultat avec moitié moins d'effort : tcpdump, pt-query-digest, Percona Server

Comprendre les problèmes rencontrés

Visualiser les données : gnuplot /R (outil de dessin)

gnuplot :

Installation Quelques commandes : Conseils courants Tutoriel de démarrage 2 Visualisation des données Gnuplot

Recommandation : Utilisez d'abord les deux premières méthodes, qui sont peu coûteuses et collectent des données de manière interactive via de simples scripts shell ou exécutées à plusieurs reprises requêtes

3.4.2 Obtenir des données de diagnostic

Problème intermittent, essayez de collecter autant de données que possible (pas seulement lorsque le problème survient)

Clair : 1. Il y a façons de distinguer quand des problèmes surviennent : déclencheurs ; 2. Outils de collecte de données de diagnostic

Déclencheur de diagnostic

Erreur : De nombreuses données de diagnostic sont collectées pendant la période où aucun problème ne se produit, ce qui est un perte de temps (cela n'est pas incompatible avec le précédent, lisez-le attentivement)

Détection manquée : Lorsque le problème survient Aucune donnée n'a été capturée, une opportunité a été manquée, assurez-vous que le déclencheur peut véritablement identifier le problème avant démarrage de la collecte

Bons déclencheurs :

Trouvez-en qui fonctionnent bien avec les horaires normaux Comparez les indicateurs avec les seuils

Choisissez un seuil approprié : assez élevé (pas déclenché lorsque c'est normal), pas trop élevé (à ne pas manquer lorsque des problèmes surviennent)

Outil recommandé pt-stalk【 Référence] [2] Déclencheur, réglé sur une certaine condition pour enregistrer la fréquence de vérification du seuil des variables à surveillé et configuré

Quel type de données sont collectées

Délai d'exécution : Temps de travail et temps d'attente

Collecter toutes les données qui peuvent être collecté dans le délai requis

La raison du problème inconnu  : 1 , le serveur doit faire beaucoup de travail, ce qui entraîne une grande consommation de CPU 2 ; . En attente de libération des ressources

Collectez les données de diagnostic en utilisant différentes méthodes pour confirmer la raison :

1 Rapport d'analyse : confirmez s'il y a trop de travail, outil : tcpdump surveille l'ouverture du mode de trafic TCP et. fermeture, journal des requêtes lent

2. Analyse d'attente : confirmer s'il y a un grand nombre d'attentes, informations de trace de la pile GDB, afficher la liste des processus, afficher l'état d'innodb pour observer les threads et l'état de la transaction

Interpréter les données de résultat

Objectif : 1. Si le problème s'est réellement produit ; 2. S'il y a un changement de saut évident

Outils :

oprofile utilise le compteur de performances (compteur de performances) fourni au niveau matériel du processeur pour nous aider à trouver le "coupable" qui occupe le processeur aux niveaux du processus, de la fonction et du code grâce à l'échantillonnage de comptage. Exemple [Référence]

La commande opreport est une méthode permettant d'afficher l'utilisation du processeur à partir des niveaux de processus et de fonction respectivement

 samples |                            %|
-----------------------------------------------------
     镜像内发生的采样次数     采样次数所占总采样次数的百分比      镜像名称
Copier après la connexion
La commande opannotate peut afficher les informations statistiques sur l'utilisation du processeur au niveau niveau de code

GDB :Dans le développement d'applications Linux, le débogueur le plus couramment utilisé est gdb (l'objet débogué est un fichier exécutable). Il peut définir des points d'arrêt dans le programme, afficher les valeurs des variables, et suivez le programme étape par étape Processus d'exécution (données, code source), affichez la mémoire, empilez les informations. L'utilisation de ces fonctions du débogueur permet de trouver facilement des erreurs non grammaticales dans le programme. [Référence] [Référence] Syntaxe et exemples

3.4.3 Un cas de diagnostic

Problème de performances intermittent, avec une connaissance pertinente de MySQL, innodb, GNU/Linux

Clair : 1. Quel est le problème, décrivez-le clairement ; 2. Quelles mesures ont été prises pour résoudre le problème ?

Démarrer : 1. Comprendre le comportement du serveur ; 2. Trier les paramètres d'état du serveur et configurer l'environnement logiciel et matériel (pt-summary pt-mysql -résumé)

Ne vous laissez pas distraire par diverses situations trop hors sujet Écrivez les questions sur des bouts de papier et vérifiez bien les rayer

Est-ce une cause ou un résultat. ? ? ?

Raisons possibles pour lesquelles les ressources sont devenues inefficaces :

1. Les ressources sont surutilisées et le solde est insuffisant ; 2. Les ressources ne sont pas correctement adaptées ; Ressources Dommages ou pannes

3.5 Autres outils d'analyse

USER_STATISTICS : certaines tables mesurent et auditent les activités de la base de données

strace : enquêter sur les appels système, utiliser le temps réel , imprévisibilité, surcharge,

oprofile coûts d'utilisation des cycles CPU

Résumé :

  • Le moyen le plus efficace de définir les performances est le temps de réponse

  • Vous ne pouvez pas optimiser efficacement si vous ne pouvez pas le mesurer. Le travail d'optimisation des performances doit être basé sur une mesure du temps de réponse de haute qualité, complète et complète

  • Le Le meilleur point de départ pour la mesure est une application. Même si le problème réside dans la base de données sous-jacente, il est plus facile de trouver le problème avec de bonnes mesures

  • La plupart des systèmes ne peuvent pas mesurer complètement, et parfois les mesures avoir des résultats erronés. Trouvez des moyens de contourner certaines limitations et soyez conscient des défauts et des incertitudes de la méthode

  • Une mesure complète générera une grande quantité de données qui doivent être analysées, donc vous devez utiliser un profileur (meilleur outil)

  • Rapport de profilage : résume les informations, passe sous silence et jette beaucoup de détails, ne vous dira pas ce qui manque, ne peut pas être s'appuie totalement

  • Deux opérations chronophages : travailler ou attendre Presque le profileur ne peut mesurer que le temps passé au travail, donc attendre le partage est parfois un complément utile, surtout quand le. L'utilisation du processeur est faible mais le travail n'a jamais été terminé.

  • L'optimisation et l'amélioration sont deux choses différentes. Lorsque le coût de l'amélioration continue dépasse les avantages, l'optimisation doit être arrêtée

    <.>
  • Faites attention à votre franchise, vos idées et vos décisions autant que possible. Basé sur les données

en un mot :Clarifiez d'abord le problème, choisir la technologie appropriée, faire bon usage des outils, être assez prudent, avoir une logique claire et s'y tenir, ne pas mettre les raisons et les résultats Confusion, ne pas apporter de modifications au système avec désinvolture avant de déterminer le problème

Articles connexes :

[Base de données MySQL] Interprétation du chapitre 2 : Test de référence MySQL

[Base de données MySQL] Interprétation du chapitre 3 : Analyse des performances du serveur (Partie 1)

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

La relation entre l'utilisateur de MySQL et la base de données La relation entre l'utilisateur de MySQL et la base de données Apr 08, 2025 pm 07:15 PM

Dans la base de données MySQL, la relation entre l'utilisateur et la base de données est définie par les autorisations et les tables. L'utilisateur a un nom d'utilisateur et un mot de passe pour accéder à la base de données. Les autorisations sont accordées par la commande Grant, tandis que le tableau est créé par la commande Create Table. Pour établir une relation entre un utilisateur et une base de données, vous devez créer une base de données, créer un utilisateur, puis accorder des autorisations.

MySQL: la facilité de gestion des données pour les débutants MySQL: la facilité de gestion des données pour les débutants Apr 09, 2025 am 12:07 AM

MySQL convient aux débutants car il est simple à installer, puissant et facile à gérer les données. 1. Installation et configuration simples, adaptées à une variété de systèmes d'exploitation. 2. Prise en charge des opérations de base telles que la création de bases de données et de tables, d'insertion, d'interrogation, de mise à jour et de suppression de données. 3. Fournir des fonctions avancées telles que les opérations de jointure et les sous-questionnaires. 4. Les performances peuvent être améliorées par l'indexation, l'optimisation des requêtes et le partitionnement de la table. 5. Prise en charge des mesures de sauvegarde, de récupération et de sécurité pour garantir la sécurité et la cohérence des données.

Puis-je récupérer le mot de passe de la base de données dans Navicat? Puis-je récupérer le mot de passe de la base de données dans Navicat? Apr 08, 2025 pm 09:51 PM

Navicat lui-même ne stocke pas le mot de passe de la base de données et ne peut récupérer que le mot de passe chiffré. Solution: 1. Vérifiez le gestionnaire de mots de passe; 2. Vérifiez la fonction "Remember Motway" de Navicat; 3. Réinitialisez le mot de passe de la base de données; 4. Contactez l'administrateur de la base de données.

L'optimisation des requêtes dans MySQL est essentielle pour améliorer les performances de la base de données, en particulier lorsqu'elle traite avec de grands ensembles de données L'optimisation des requêtes dans MySQL est essentielle pour améliorer les performances de la base de données, en particulier lorsqu'elle traite avec de grands ensembles de données Apr 08, 2025 pm 07:12 PM

1. Utilisez l'index correct pour accélérer la récupération des données en réduisant la quantité de données numérisées SELECT * FROMMLOYEESEESHWHERELAST_NAME = 'SMITH'; Si vous recherchez plusieurs fois une colonne d'une table, créez un index pour cette colonne. If you or your app needs data from multiple columns according to the criteria, create a composite index 2. Avoid select * only those required columns, if you select all unwanted columns, this will only consume more server memory and cause the server to slow down at high load or frequency times For example, your table contains columns such as created_at and updated_at and timestamps, and then avoid selecting * because they do not require inefficient query se

Comment créer Navicat Premium Comment créer Navicat Premium Apr 09, 2025 am 07:09 AM

Créez une base de données à l'aide de NAVICAT Premium: Connectez-vous au serveur de base de données et entrez les paramètres de connexion. Cliquez avec le bouton droit sur le serveur et sélectionnez Créer une base de données. Entrez le nom de la nouvelle base de données et le jeu de caractères spécifié et la collation. Connectez-vous à la nouvelle base de données et créez le tableau dans le navigateur d'objet. Cliquez avec le bouton droit sur le tableau et sélectionnez Insérer des données pour insérer les données.

Comment copier des tables dans MySQL Comment copier des tables dans MySQL Apr 08, 2025 pm 07:24 PM

La copie d'une table dans MySQL nécessite la création de nouvelles tables, l'insertion de données, la définition de clés étrangères, la copie des index, les déclencheurs, les procédures stockées et les fonctions. Les étapes spécifiques incluent: la création d'une nouvelle table avec la même structure. Insérez les données de la table d'origine dans une nouvelle table. Définissez la même contrainte de clé étrangère (si le tableau d'origine en a un). Créer le même index. Créez le même déclencheur (si le tableau d'origine en a un). Créez la même procédure ou fonction stockée (si la table d'origine est utilisée).

Comment afficher le mot de passe de la base de données dans NAVICAT pour MARIADB? Comment afficher le mot de passe de la base de données dans NAVICAT pour MARIADB? Apr 08, 2025 pm 09:18 PM

NAVICAT pour MARIADB ne peut pas afficher directement le mot de passe de la base de données car le mot de passe est stocké sous forme cryptée. Pour garantir la sécurité de la base de données, il existe trois façons de réinitialiser votre mot de passe: réinitialisez votre mot de passe via Navicat et définissez un mot de passe complexe. Affichez le fichier de configuration (non recommandé, haut risque). Utilisez des outils de ligne de commande système (non recommandés, vous devez être compétent dans les outils de ligne de commande).

Comment voir Mysql Comment voir Mysql Apr 08, 2025 pm 07:21 PM

Affichez la base de données MySQL avec la commande suivante: Connectez-vous au serveur: MySQL -U Username -P mot de passe Exécuter les bases de données Afficher les bases de données; Commande pour obtenir toutes les bases de données existantes Sélectionnez la base de données: utilisez le nom de la base de données; Tableau de vue: afficher des tables; Afficher la structure de la table: décrire le nom du tableau; Afficher les données: sélectionnez * dans le nom du tableau;

See all articles