GoGPT Best VPN GoSearch

Icône de favori OnWorks

pt-stalkp - En ligne dans le Cloud

Exécutez pt-stalkp dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande pt-stalkp qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos nombreux postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


pt-stalk - Collectez des données médico-légales sur MySQL lorsque des problèmes surviennent.

SYNOPSIS


Utilisation : pt-stalk [OPTIONS]

pt-stalk attend qu'une condition de déclenchement se produise, puis collecte des données pour aider au diagnostic
problèmes. L'outil est conçu pour fonctionner comme un démon avec des privilèges root, afin que vous puissiez
diagnostiquer des problèmes intermittents non observables directement. Vous pouvez également l'utiliser pour
exécuter une commande personnalisée ou collecter des données à la demande sans attendre le déclenchement
se produire.

LES RISQUES


Percona Toolkit est mature, éprouvé dans le monde réel et bien testé, mais toutes les bases de données
outils peuvent présenter un risque pour le système et le serveur de base de données. Avant d'utiliser cet outil,
s'il te plaît:

· Lire la documentation de l'outil

· Revoir les "BUGS" connus de l'outil

· Tester l'outil sur un serveur hors production

· Sauvegardez votre serveur de production et vérifiez les sauvegardes

DESCRIPTION


Parfois, un problème survient rarement et pendant une courte période, ne vous laissant aucune chance de le voir.
le système lorsqu'il se produit. Comment résoudre les problèmes intermittents de MySQL lorsque vous ne pouvez pas
Les observer ? C'est pourquoi pt-stalk existe. En plus de son utilisation lorsqu'il existe un problème connu,
problème sur vos serveurs, c'est une bonne idée d'exécuter pt-stalk tout le temps, même lorsque vous
Vous pensez que tout va bien. Vous apprécierez les données collectées en cas de problème.
car des problèmes tels que les blocages de MySQL ou les pics d'activité ne laissent généralement aucune preuve
à utiliser dans l'analyse des causes profondes.

pt-stalk fait deux choses : il surveille un serveur MySQL et attend une condition de déclenchement pour
et collecte des données de diagnostic lorsque ce déclencheur survient. Pour éviter les faux positifs
causé par des problèmes de courte durée, la condition de déclenchement doit être vraie au moins « --cycles »
fois avant qu'un « --collect » ne soit déclenché.

Pour utiliser pt-stalk efficacement, vous devez définir un bon déclencheur. Un bon déclencheur est
suffisamment sensible pour se déclencher de manière fiable lorsqu'un problème survient, afin que vous ne manquiez aucune occasion
pour résoudre des problèmes. D'un autre côté, un bon déclencheur n'est pas sujet aux faux positifs, donc
vous ne collectez pas d'informations lorsque le serveur fonctionne normalement.

Les déclencheurs les plus fiables pour MySQL ont tendance à être le nombre de connexions au serveur,
et le nombre de requêtes exécutées simultanément. Ces informations sont disponibles dans la section « SHOW GLOBAL ».
Commande STATUS comme Threads_connected et Threads_running. Parfois, Threads_connected est
Ce n'est pas un indicateur fiable de problème, mais Threads_running l'est généralement. Votre travail, en tant que
L'utilisateur de l'outil doit définir une condition de déclenchement appropriée pour l'outil. Choisir
Faites attention, car la qualité de vos résultats dépendra du déclencheur que vous choisirez.

Vous définissez le déclencheur avec « --function », « --variable », « --threshold » et « --cycles »
options. Les valeurs par défaut de ces options définissent un déclencheur raisonnable, mais vous devriez
ajustez-les ou modifiez-les pour les adapter à votre système et à vos besoins particuliers.

Par défaut, l'outil pt-stalk surveille MySQL en permanence jusqu'à ce que le déclencheur se produise, puis il collecte
données de diagnostic pendant un certain temps, puis se met en veille pour éviter de collecter à plusieurs reprises des données si
Le déclencheur reste vrai. L'ordre général des opérations est le suivant :

bien que vrai; faire
si --variable de --fonction > --seuil ; alors
cycles_true++
si cycles_true >= --cycles ; alors
--notifier par e-mail
si --collect; alors
si --disk-bytes-free et --disk-pct-free ok ; alors
(--collect pendant --run-time secondes) &
fi
fichiers rm dans --dest plus anciens que --retention-time
fi
iter++
cycles_true=0
fi
si iter < --iterations ; alors
sommeil --secondes de sommeil
d'autre
pause
fi
d'autre
si iter < --iterations ; alors
sommeil --intervalle secondes
d'autre
pause
fi
fi
fait
rm old --dest fichiers plus anciens que --retention-time
si les processus --collect sont toujours en cours d'exécution ; alors
attendre jusqu'à --run-time * 3 secondes
tuer tous les processus --collect restants
fi

Les données de diagnostic sont écrites dans des fichiers dont les noms commencent par un horodatage, vous pouvez donc
distinguer les échantillons les uns des autres au cas où l'outil collecte des données plusieurs fois.
L'outil pt-sift est conçu pour vous aider à parcourir et à analyser les échantillons de données résultants.

Bien que cela semble assez simple, dans la pratique, il existe un certain nombre de subtilités, telles que
détecter quand le disque commence à se remplir afin que l'outil ne provoque pas de panne du serveur
de manquer d'espace disque. Cet outil gère ce type de problèmes potentiels, il est donc
bonne idée d'utiliser cet outil au lieu d'écrire quelque chose à partir de zéro et éventuellement
expérimenter certains des dangers que cet outil est conçu pour éviter.

CONFIGURATION


Vous pouvez utiliser les fichiers de configuration standard de Percona Toolkit pour définir les options de ligne de commande.

Vous souhaiterez probablement exécuter l'outil en tant que démon et personnaliser au moins le
« --threshold ». Voici un exemple de fichier de configuration pour le déclenchement lorsqu'il y a plus de
20 requêtes exécutées simultanément :

démoniser
seuil=20

Si vous n'exécutez pas l'outil en tant que root, vous devrez spécifier plusieurs options, telles que
"--pid", "--log" et "--dest", sinon l'outil ne démarrera probablement pas.

OPTIONS


--demander-passer
Demander un mot de passe lors de la connexion à MySQL.

--collecter
par défaut : oui ; négociable : oui

Collectez les données de diagnostic lorsque le déclencheur se produit. Spécifiez « --no-collect » pour que
L'outil surveille le système mais ne collecte pas de données.

Voir aussi « --stalk ».

--collect-gdb
Collecter les traces de pile GDB. Ceci est réalisé en se connectant à MySQL et en imprimant la pile.
traces de tous les threads. Cela bloquera le serveur pendant un certain temps, allant de
d'une seconde environ à beaucoup plus longtemps sur les systèmes très occupés avec beaucoup de mémoire et de nombreux
threads du serveur. C'est pourquoi cette option est désactivée par défaut. Cependant, si vous
essayez de diagnostiquer un blocage ou un blocage du serveur, le blocage du serveur ne provoque aucun
des dommages supplémentaires, et les traces de la pile peuvent être vitales pour le diagnostic.

En plus du gel du serveur, il existe également un risque de panne du serveur ou
fonctionne mal après que GDB s'en soit détaché.

--collect-oprofile
Collectez les données oprofile. Pour ce faire, démarrez une session oprofile et laissez-la
exécuter pendant la durée de la collecte, puis arrêter et enregistrer les données de profil résultantes
à l'emplacement par défaut du système. Veuillez consulter la documentation oprofile de votre système pour
en savoir plus à ce sujet.

--collect-strace
Collecter les données strace. Ceci est réalisé en connectant strace au serveur, ce qui
Faites-le tourner très lentement jusqu'à ce que la courroie se détache. Les mêmes précautions s'appliquent.
répertorié dans --collect-gdb. Vous ne devez pas activer cette option avec
--collect-gdb, car GDB et strace ne peuvent pas s'attacher au processus serveur
en même temps.

--collect-tcpdump
Collecter les données tcpdump. Cette option permet à tcpdump de capturer tout le trafic sur tous les
interfaces pour le port d'écoute de MySQL. Vous pourrez ensuite utiliser pt-query-
digest pour décoder le protocole MySQL et en extraire un journal du trafic de requêtes.

--config
type : chaîne

Lisez cette liste de fichiers de configuration séparés par des virgules. Si spécifié, cela doit être le premier
option sur la ligne de commande.

--cycles
tapez : entier ; par défaut : 5

Combien de fois « --variable » doit être supérieur à « --threshold » avant de se déclencher
« --collect ». Cela permet d'éviter les faux positifs et de rendre la condition de déclenchement moins complexe.
susceptible de se déclencher lorsque le problème résout rapidement.

--démoniser
Démoniser l'outil. Cela force l'outil à se déconnecter en arrière-plan et à enregistrer ses
sortie comme spécifié dans --log.

--defaults-fichier
forme courte : -F ; type : chaîne

Ne lisez que les options mysql du fichier donné. Vous devez donner un chemin d'accès absolu.

--dest
type : chaîne ; par défaut : /var/lib/pt-stalk

Où enregistrer les données de diagnostic à partir de « --collect ». Chaque fois que l'outil collecte des données, il
écrit dans un nouvel ensemble de fichiers, nommés avec l'horodatage système actuel.

--octets-disque-libres
type : taille ; par défaut : 100 M

N'utilisez pas « --collect » si le disque dispose d'un espace libre inférieur à cet espace. Cela empêche
outil empêchant le remplissage du disque avec des données de diagnostic.

Si le répertoire « --dest » contient un échantillon de données précédemment capturé, l'outil
mesurer sa taille et l'utiliser comme une estimation de la quantité de données susceptibles d'être collectées
cette fois encore. Il sera alors encore plus pessimiste et refusera de percevoir
données à moins que le disque ne dispose de suffisamment d'espace libre pour contenir l'échantillon et conserver les
la quantité d'espace libre souhaitée. Par exemple, si vous souhaitez 100 Mo d'espace libre et
l'échantillon de diagnostic précédent a consommé 100 Mo, l'outil ne collectera aucune donnée à moins que le
le disque a 200 Mo d'espace libre.

Les suffixes de valeur de taille valides sont k, M, G et T.

--disk-pct-free
tapez : entier ; par défaut : 5

N'utilisez pas « --collect » si le disque dispose d'un espace libre inférieur à ce pourcentage. Cela empêche
l'outil de remplir le disque avec des données de diagnostic.

Cette option fonctionne de manière similaire à « --disk-bytes-free » mais spécifie une marge en pourcentage
de sécurité au lieu d'une marge de sécurité en octets. L'outil prend en compte les deux options et
ne collectez aucune donnée à moins que les deux marges ne soient satisfaites.

--fonction
type : chaîne ; par défaut : statut

À surveiller pour le déclencheur. La valeur par défaut indique « AFFICHER L'ÉTAT GLOBAL », mais
vous pouvez également regarder « AFFICHER LA LISTE DES PROCESSUS » et spécifier un fichier avec votre propre code personnalisé.
Cette fonction fournit la valeur de « --variable », qui est ensuite comparée à
« --threshold » pour vérifier si la condition de déclenchement est remplie. Des options supplémentaires peuvent être disponibles.
Également requis ; voir ci-dessous. Les valeurs possibles sont :

· statut

Surveillez « AFFICHER L'ÉTAT GLOBAL » pour le déclencheur. La valeur de « --variable »
définit quel compteur d'état est le déclencheur.

· liste de processus

Regardez « AFFICHER LA LISTE COMPLÈTE DES PROCESSUS » pour le déclencheur. La valeur du déclencheur correspond au nombre de
processus dont la colonne « --variable » correspond à l'option « --match ». Par exemple,
déclencher « --collect » lorsque plus de 10 processus sont dans l'état « statistiques »,
spécifier:

--function liste de processus \
--État variable \
--statistiques de match \
--seuil 10

De plus, vous pouvez spécifier un fichier contenant votre fonction de déclenchement personnalisée,
Écrit en script shell Unix. Il peut s'agir d'un wrapper exécutant tout ce que vous souhaitez.
Si l'argument de « --function » est un fichier, il a alors la priorité sur la fonction intégrée.
fonctions, donc s'il y a un fichier dans le répertoire de travail nommé « status » ou
« processlist », l'outil utilisera alors ce fichier même s'il s'agit de valeurs intégrées valides.

Le fichier fonctionne en fournissant une fonction appelée « trg_plugin », et l'outil simplement
Source le fichier et exécute la fonction. Par exemple, le fichier peut contenir :

trg_plugin() {
mysql $EXT_ARGV -e "AFFICHER L'ÉTAT INNODB DU MOTEUR" \
| grep -c "a attendu à"
}

Cet extrait compte le nombre d'attentes de mutex dans InnoDB. Il illustre
principe général : la fonction doit produire un nombre, qui est ensuite comparé à
« --threshold » comme d'habitude. La variable $EXT_ARGV contient les options MySQL mentionnées.
dans le « SYNOPSIS » ci-dessus.

Le fichier ne doit pas modifier les variables globales existantes de l'outil. Préfixez tout fichier :
variables globales spécifiques avec "PLUGIN_" ou les rendre locales.

--Aidez-moi
Imprimer l'aide et quitter.

--hôte
forme courte : -h ; type : chaîne

Hôte auquel se connecter.

--intervalle
tapez : entier ; par défaut : 1

À quelle fréquence vérifier si le déclencheur est vrai, en secondes.

--itérations
tapez : entier

Combien de fois faut-il collecter les données de diagnostic ? Par défaut, l'outil s'exécute indéfiniment.
Collecte des données à chaque déclenchement. Spécifiez « --iterations » pour collecter des données.
Nombre de fois limité. Cette option est également utile avec « --no-stalk » pour collecter des données.
une fois et sortir, par exemple.

--Journal
type : chaîne ; par défaut : /var/log/pt-stalk.log

Imprimez toutes les sorties dans ce fichier une fois démonisé.

--rencontre
type : chaîne

Le modèle à utiliser pour afficher SHOW PROCESSLIST. Voir « --function » pour plus de détails.

--notifier par e-mail
type : chaîne

Envoyez un e-mail à ces adresses pour chaque « --collect ».

--le mot de passe
forme courte : -p ; type : chaîne

Mot de passe à utiliser lors de la connexion. Si le mot de passe contient des virgules, elles doivent être échappées
avec une barre oblique inverse : "exam\,ple"

--pid
type : chaîne ; par défaut : /var/run/pt-stalk.pid

Créez le fichier PID donné. L'outil ne démarre pas si le fichier PID existe déjà et
le PID qu'il contient est différent du PID actuel. Cependant, si le fichier PID
existe et que le PID qu'il contient n'est plus en cours d'exécution, l'outil écrasera le PID
fichier avec le PID actuel. Le fichier PID est supprimé automatiquement à la fermeture de l'outil.

--brancher
type : chaîne

Chargez un plugin pour vous connecter à l'outil et étendre ses fonctionnalités. Le fichier spécifié
n'a pas besoin d'être exécutable, et sa première ligne n'a pas besoin d'être une ligne shebang.
il suffit de définir une ou plusieurs de ces fonctions Bash :

avant_talk
Appelé avant de traquer.

avant_collecte
Appelé lorsque le déclencheur se produit, avant d'exécuter un sous-processus « --collect » dans le
fond.

après_collecte
Appelé après l'exécution d'un processus collecteur. Le PID du processus collecteur est
Passé en premier argument. Ce hook est appelé avant « after_collect_sleep ».

après_le_sommeil_collecté
Appelé après avoir attendu « --sleep » secondes pour que le processus de collecte se termine.
le hook est appelé après "after_collect".

après_intervalle_de_sommeil
Appelé après avoir dormi "--interval" secondes après chaque vérification de déclencheur.

après_discussion
Appelé après le stalking. Puisque pt-stalk stalking indéfiniment par défaut, ce hook est
appelé uniquement si « --iterations » est spécifié.

Par exemple, un plugin très simple qui touche un fichier lorsque « --collect » est déclenché :

avant_collect() {
toucher /tmp/foo
}

Étant donné que le plugin est entièrement importé dans l'espace de noms de l'outil,
attention à ne pas définir d'autres fonctions ou variables globales qui existent déjà dans le
outil. Vous devez préfixer toutes les fonctions spécifiques aux plugins et les variables globales avec
"plugin_" ou "PLUGIN_".

Les plugins ont accès à toutes les options de la ligne de commande, mais ils ne doivent pas les modifier.
L'option est une variable globale comme $OPT_DEST, qui correspond à « --dest ». Par conséquent,
la variable globale pour chaque option de ligne de commande est "OPT_" plus le nom de l'option dans tous les
majuscules avec tirets remplacés par des traits de soulignement.

Les plugins peuvent arrêter l'outil en définissant la variable globale « OKTORUN » sur 1. Dans ce
Dans ce cas, la variable globale « EXIT_REASON » doit également être définie pour indiquer pourquoi l'outil
a été arrêté.

Les auteurs de plugins doivent garder à l'esprit que le préfixe de destination du fichier actuellement utilisé
doit être accessible via la variable $prefix, plutôt que $OPT_PREFIX.

--Port
forme courte : -P ; tapez : entier

Numéro de port à utiliser pour la connexion.

--préfixe
type : chaîne

Préfixe de nom de fichier pour les échantillons de diagnostic. Par défaut, tous les fichiers créés par le même
L'instance « --collect » possède un préfixe d'horodatage basé sur l'heure locale actuelle, comme
"2011_12_06_14_02_02", soit le 6 décembre 2011 à 14:02:02.

--temps de rétention
tapez : entier ; par défaut : 30

Nombre de jours de conservation des échantillons collectés. Les échantillons plus anciens seront
purgé.

--Durée
tapez : entier ; par défaut : 30

Durée de la collecte des données de diagnostic lors du déclenchement. La valeur est dans
secondes et ne doit pas dépasser « --sleep ». Il n'est généralement pas nécessaire de
changez ceci ; si les 30 secondes par défaut ne collectent pas suffisamment de données, une exécution plus longue est
cela ne devrait pas aider car le système ou le serveur MySQL est probablement trop occupé pour répondre.
En fait, dans de nombreux cas, une période de recouvrement plus courte est appropriée.

Cette valeur est utilisée deux autres fois. Après la collecte, le sous-processus de collecte
Attendez encore quelques secondes (--run-time) pour que ses commandes se terminent. Certaines commandes peuvent prendre
un certain temps si le système fonctionne très lentement (ce qui peut probablement être le cas étant donné qu'un
(la collecte a été déclenchée). Puisque les fichiers vides sont supprimés, l'attente supplémentaire donne
Les commandes ont le temps de terminer et d'écrire leurs données. La valeur est potentiellement réutilisée.
juste avant la sortie de l'outil pour attendre à nouveau la fin des sous-processus de collecte.
Dans la plupart des cas, cela n'arrivera pas en raison du délai supplémentaire mentionné précédemment. Si cela se produit,
l'outil enregistrera « En attente de N secondes pour la fin des sous-processus... » où N est
trois fois « --run-time ». Dans les deux cas, après une attente, l'outil supprime tous ses
sous-processus.

--dormir
tapez : entier ; par défaut : 300

Durée de veille après « --collect ». Cela empêche le déclenchement de l'outil.
en continu, ce qui peut poser problème si le processus de collecte est intrusif.
cela évite également de remplir le disque ou de collecter trop de données à analyser raisonnablement.

--sommeil-collecte
tapez : entier ; par défaut : 1

Durée de veille entre les cycles de la boucle de collecte. Ceci est utile avec « --no-stalk » pour
Effectuer des collectes longues. Par exemple, pour collecter des données toutes les minutes pendant une heure, spécifiez :
"--no-stalk --run-time 3600 --sleep-collect 60".

--prise
formes courtes; type : chaîne

Fichier socket à utiliser pour la connexion.

--tige
par défaut : oui ; négociable : oui

Surveillez le serveur et attendez que le déclencheur se produise. Spécifiez « --no-stalk » pour collecter les données.
données de diagnostic immédiatement, c'est-à-dire sans attendre que le déclencheur se produise. Vous
vous voudrez probablement également spécifier des valeurs pour « --interval », « --iterations » et « --sleep ».
Par exemple, pour collecter immédiatement des données pendant 1 minute puis quitter, spécifiez :

--no-stalk --run-time 60 --itérations 1

"--cycles", "--daemonize", "--log" et "--pid" n'ont aucun effet avec "--no-stalk".
Les options de sauvegarde, telles que « --disk-bytes-free » et « --disk-pct-free », sont toujours disponibles.
respecté.

Voir aussi « --collect ».

--seuil
tapez : entier ; par défaut : 25

La valeur maximale acceptable pour « --variable ». « --collect » est déclenché lorsque
la valeur de « --variable » est supérieure à « --threshold » pendant « --cycles » plusieurs fois.
Actuellement, il n'existe aucun moyen de définir un seuil inférieur pour vérifier une « --variable »
valeur trop faible.

Voir aussi « --function ».

--utilisateur
forme courte : -u ; type : chaîne

Utilisateur pour la connexion si ce n'est pas l'utilisateur actuel.

--variable
type : chaîne ; par défaut : Threads_running

Variable à comparer avec « --threshold ». Voir aussi « --function ».

--verbeux
tapez : entier ; par défaut : 2

Imprimez plus ou moins d'informations pendant l'exécution. L'outil étant conçu pour être
démon de longue durée, le niveau de verbosité par défaut n'imprime que les éléments les plus importants
informations. Si vous exécutez l'outil de manière interactive, vous souhaiterez peut-être utiliser une valeur plus élevée.
niveau de verbosité.

IMPRESSIONS DE NIVEAU
===== ========================================
Erreurs 0
1 Avertissements
2 déclencheurs correspondants et informations de collecte
3 déclencheurs non correspondants

--version
Imprimer la version de l'outil et quitter.

ENVIRONNEMENT


Cet outil ne nécessite aucune variable d'environnement pour la configuration, bien qu'il puisse être
influencés à fonctionner différemment par plusieurs variables. Gardez à l'esprit que celles-ci sont
paramètres experts et ne doit pas être utilisé dans la plupart des cas.

Plus précisément, les variables qui peuvent être définies sont :

CMD_GDB
CMD_IOSTAT
CMD_MPSTAT
CMD_MYSQL
CMD_MYSQLADMIN
CMD_OPCONTROL
CMD_OPREPORT
CMD_PMAP
CMD_STRACE
CMD_SYSCTL
CMD_TCPDUMP
CMD_VMSTAT

Par exemple, lors de la collecte, iostat est appelé avec un argument -dx, mais parce que vous avez
une partition NFS, vous devez également utiliser l'option -n. Au lieu de modifier la source, vous pouvez
appeler pt-stalk comme

CMD_IOSTAT="iostat -n" pt-stalk ...

qui fera exactement ce dont vous avez besoin. Combiné aux hooks de plugin, cela vous donne un
contrôle précis de ce que fait l'outil.

SYSTÈME EXIGENCES


Cet outil nécessite Bash v3 ou une version ultérieure. Certaines options nécessitent d'autres programmes :

« --collect-gdb » nécessite « gdb »
« --collect-oprofile » nécessite « opcontrol » et « opreport »
« --collect-strace » nécessite « strace »
« --collect-tcpdump » nécessite « tcpdump »

Utilisez pt-stalkp en ligne avec les services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

Commandes Linux

Ad




×
Publicité
❤ ️Achetez, réservez ou achetez ici — gratuitement, contribue à maintenir la gratuité des services.