当前位置:网站首页>Pratique technique | analyse et solution des défaillances en ligne (Partie 1)
Pratique technique | analyse et solution des défaillances en ligne (Partie 1)
2022-07-04 00:49:00 【51CTO】
Les défaillances en ligne sont généralement des problèmes ou des événements à grande échelle qui influent sur la disponibilité des services en ligne.,La gestion des défaillances en ligne n'est pas seulement une activité technique,C'est pour les techniciens./Test de la capacité d'intervention d'urgence de l'équipe technique.Cet article se concentre sur la classification des défauts en ligne、Réflexion sur la réponse、Commencer par les raisons,Résumer quelques expériences et solutions aux problèmes,Pour discuter et communiquer avec vos collègues.
Un.、Classification des défauts en ligne
■ Erreur inattendue、Pas de réponse ou réponse lente
■ En service,Influencer l'expérience utilisateur
■ Pas d'arrêt ou d'arrêt important
■ Doit être réparé dès que possible
2.、Réflexion sur la réponse
Analyse empirique,Si quelqu'un de l'équipe d'intervention d'urgence a de l'expérience avec le problème correspondant,Et déterminer qu'il est possible de rétablir le fonctionnement normal du système par un moyen quelconque,Ça devrait être la première fois.(ROLLBACK, etc.),En même temps, assurez - vous de garder le site,Pour le positionnement et la réparation ultérieurs des problèmes;Si personne n'a d'expérience,Des méthodes plus brutales sont nécessaires pour s'assurer que le service est disponible.,Si le redémarrage est programmé、Limitation du courant、Déclassement, etc..
Chef d'entreprise、Technical Director、Personnel de base、Architecte、L'ingénieur o & M et le personnel d'exploitation analysent rapidement les causes des problèmes..Le processus d'analyse doit d'abord tenir compte des changements récents dans le système.,Comprend les éléments suivants::
■ Le système a - t - il été récemment mis en ligne??
■ L'utilisateur du Service a - t - il des activités opérationnelles??
■ Y a - t - il des fluctuations de trafic dans le réseau??
■ Si le volume d'affaires a augmenté récemment?
■ L'opérateur a - t - il apporté des changements au système??
■ La plate - forme et les ressources sous - jacentes dépendantes sont - elles publiées en ligne? ?
■ Si d'autres systèmes dépendants sont publiés en ligne ?
Trois、Causes possibles
■ CodeBug: Manque de rigueur logique 、 Connexion non libérée
■ Performance du Code: Boucle d'appel externe 、 Lecture par lots non utilisée 、 Cycle régulier, etc.
■ Fuite de mémoire:Cache local
■ Débit anormal:DDOS
■ Augmentation du volume d'affaires : Mauvaise estimation de la capacité
■ Problèmes de systèmes externes :Base de données、Moteur de recherche、Cache distribué、 Problèmes de performance des intergiciels tels que les files d'attente de messages
CPU、Mémoire、IOIndicateur anormal
Quatre、Trois pas.
■ Surveillance:“ Je ne sais pas ce que je vais faire. ”. Un mécanisme de surveillance est nécessaire pour découvrir 、Problèmes de performance des systèmes exposés. Cela dépend généralement des outils de surveillance au niveau du système ou de l'entreprise. .
■ Analyse:“ Je sais ce que je vais faire ”. Besoin d'une base informatique et d'outils d'analyse .
■ Résolution:“ Je sais ce que je dois savoir. ”.Système、 Ajustement des paramètres du programme 、 Optimisation du remaniement du Code .
Comprendre le fonctionnement d'un système ne fait pas d'une personne un expert. , Ce n'est qu'en enquêtant sur les raisons pour lesquelles le système ne fonctionne pas correctement. .
1. Travaux préparatoires
Édition
Travaux préparatoires à l'analyse des défaillances 、Connaissances requises,based on CentOS 6.5 && JDK 1.8.0_121
■ Connaissances de base en informatique:Réseau informatique、Système d'exploitation、Principe de composition de l'ordinateur
■ JavaGestion de la mémoire:Algorithme de collecte des ordures、Collecteur d'ordures、La cléGCParamètres、JVM Modèle de mémoire, etc.
■ Java Code Benchmark Performance Test :Peut être utiliséJMH(Microbenchmarking Framework)Pour le faire.,Capable d'éliminerJIT Impact de la compilation de code Hotspot sur la performance
■ HotSpotArchitecture des machines virtuelles
■ Réglage des paramètres du système
■ Maîtriser les outils de diagnostic communs du système 、JDK Utilisation d'outils de diagnostic autonomes et d'autres outils de diagnostic
■ Comprendre les systèmes d'affaires :Structure générale、 Direction de la pression 、Estimation de la capacité、 Version du logiciel lié au système 、 Mode et paramètres
2. Outils de diagnostic communs du système -CentOSApportez - le vous - même.
■ uptime:Temps de fonctionnement du système、 Charge moyenne ,Y compris:1Minutes、5Minutes、15 Nombre moyen de tâches qui peuvent être exécutées en minutes , Inclure les tâches en cours 、 Un processus qui peut fonctionner mais qui attend qu'un processeur soit inactif et bloqué dans un état d'hibernation non interruptible (Attendez.IO,L'état estD)La Mission de.
La première partie montre l'heure du système . Le premier message de gauche est 22:36:32, C'est l'heure actuelle du système ,Par24 Sortie en format heure .
La deuxième partie montre le temps de fonctionnement du système .up 10 days,11:21, Indique que le système de la machine fonctionne 10Oh, mon Dieu.11Heures21Minutes. Réinitialiser lorsque le système redémarre .
La troisième partie de l'information est d'afficher le nombre d'utilisateurs connectés .Ce qui est montré est1 user , C'est - à - dire que le nombre actuel d'utilisateurs connectés est 1.
Le dernier message est la charge moyenne du système .0.00,,0.05, 0.07 Chacun représente le passé 1Minutes、5Minutes、15 Charge moyenne du système en minutes . Une charge plus faible signifie une meilleure performance du système .
Édition
■ dmesg | tail: Cette commande affiche le dernier journal du système 10D'accord.FréquentOOM killEtTCP Les pertes de paquets sont enregistrées ici. .
■ free -m: Cette commande vous permet de visualiser l'utilisation de la mémoire du système ,-m Les paramètres sont affichés en mégaoctets .BufferEtCache Tout a été calculé usedÀ l'intérieur. Ce qui reflète vraiment l'utilisation de la mémoire est la deuxième ligne . S'il y a moins de mémoire disponible ,Sera utiliséswapZone,AjouterIODépenses,Réduction des performances.
Édition
■ vmstat 1: Outils de mesure du rendement en temps réel ,La valeur d'état du serveur qui peut afficher un intervalle de temps donné,Y compris le serveurCPUTaux d'utilisation、Utilisation de la mémoire、Échange de mémoire virtuelle、IO Indicateurs de base du système tels que la lecture et l'écriture .r,Attendez.CPU Nombre de processus pour la ressource , C'est plus que la charge moyenne loadMieux incarnerCPU Occupé ;b, Nombre de processus bloqués dans un état d'hibernation non interruptible ;si、so,swapUtilisation de la zone,Si ce n'est pas0 Description déjà utilisé swapZone;us、sy、id、wa、st,CPUUtilisation,id + us + sy = 100.
Édition
Ça veut direvmstatChaque2Deuxième acquisition de données,Toujours collecté, Jusqu'à la fin de la procédure .
■ top: Contient de nombreuses informations sur les indicateurs du système global , Y compris les conditions de charge du système 、Utilisation de la mémoire du système、SystèmeCPU Utilisation, etc , Couvre essentiellement les fonctions des commandes ci - dessus .
■ netstap -tanp:VoirTCPÉtat de la connexion au réseau.
iprouteContenu:ss,ip,Peut être remplacénetstat
3. Outils de diagnostic communs du système -Sysstat
■ mpstat -P ALL 1: Cette commande est utilisée pour afficher chaque CPUUtilisation de.S'il y en a unCPUTaux d'occupation particulièrement élevé, Indique qu'il peut être causé par une application monothreadée .
■ sar -n DEV 1:sar La commande est principalement utilisée pour voir le débit du périphérique réseau .Débit disponible sur les appareils réseau,Déterminer si le périphérique réseau est saturé.
■ sar -n TCP,ETCP 1:VoirTCPÉtat de la connexion.active/s, Nombre de connexions actives par seconde (connect);passive/s, Nombre de connexions passivement initiées par seconde (accept);retrans/s, Nombre de retransmissions par seconde , Peut refléter l'état du réseau et s'il y a perte de paquets .
■ iostat -xz 1: Voir le disque de la machine IOLa situation.await(ms),IOTemps d'attente moyen pour l'opération, Est l'application qui interagit avec le disque ,Le temps qu'il faut,Y compris:IOTemps d'attente et temps de fonctionnement réel;avgqu-s, Nombre moyen de demandes adressées à l'appareil ;%util,Utilisation du matériel.
sar、iostat、mpstat、pidstatDesysstatSuite logicielle
4. JDKOutils de diagnostic
■ jstack:JavaOutil de suivi de pile,Utilisé principalement pour imprimer la désignationJavaProcessus、 Fichier de base ou serveur de débogage distant JavaInformations de trace de pile pour le thread.
■ jmap:JavaOutil de cartographie de mémoire(Java Memory Map),Utilisé principalement pour imprimer la désignationJavaProcessus、 Mappage de mémoire d'objet partagé ou détails de mémoire tas pour les fichiers de base ou les serveurs de débogage distants .
■ jhat:JavaOutil d'analyse du tas(Java Heep Analysis Tool),Pour analyseJava Informations sur l'objet dans la mémoire tas .
■ jinfo:JavaOutils d'information de configuration(Java Configuration Information), Pour imprimer les assignations JavaProcessus、 Informations de configuration du fichier central ou du serveur de débogage distant , Peut également être modifié dynamiquement JVMConfiguration des paramètres.
■ jstat:JVM Outils de détection statistique (Java Statistics Monitoring Tool), Utilisé principalement pour la surveillance et l'affichage JVMStatistiques de performance pour,Y compris:gcInformations statistiques.
■ jcmd:JavaLigne de commande(Java Command), Utilisé pour JVM Envoyer une demande de commande de diagnostic .Parce quejmap Officiellement, c'est unsupported,jcmd Peut être utilisé comme alternative .
■ visualvm:AdoptionJMXConnexions d'interfaceJVMProcessus, Pour pouvoir voir JVMThread on、Mémoire、 Informations sur la classe, etc. .Divers plug - ins peuvent être installés.(AdoptionCATALINA_OPTSOuvertTomcat jmxInterface)
■ jconsole:Fonctionnalité similaire àvisualvmv, Vous pouvez afficher des informations spécifiques sur la pile de thread et l'occupation de la mémoire par âge , Et prend en charge l'exécution directe à distance MBEAN.
5. Autres outils
■ jmc:Java Mission Control, Est un diagnostic d'ensemble basé sur l'échantillonnage 、 Un outil très puissant pour l'analyse et la surveillance . Pour des raisons de frais , Pas trop. .
■ greys-atonomy:Outils de diagnostic en ligne, Il n'y a pas besoin de redémarrer en modifiant dynamiquement le Bytecode JVMAjouter un journal、 Objectif de l'amélioration dynamique du Code, comme le temps consacré aux méthodes de surveillance .
■ arthas:Alibaba Open SourceJava Kit de diagnostic ,Basé surgreys-atonomyEt voilà, Y compris le diagnostic en ligne 、Décompiler le Bytecode、 Voir les ressources les plus épuisantes JavaThread, etc..
■ jwebap:JavaEE Cadre d'essai de performance ,Basé surASM Mise en œuvre améliorée du Bytecode .Soutien:HTTPDemande、JDBCConnexion、method Suivi de la piste d'appel et nombre de fois pour 、Statistiques sur le temps écoulé.Développement secondairesuishen-webap,J'ai ajouté la bonneJava8EtRedis Surveillance des connexions .
■ awesome-scripts: Contient de nombreux outils de diagnostic communs 、Scripts, etc.,Y compris:greys-atonomy、sjk、VJTools Et obtenir des informations sur la pile de Threads qui consomment le plus de ressources 、StatistiquesTCP Nombre de connexions et autres scripts .(À suivre)
边栏推荐
- What is regression testing? Talk about regression testing in the eyes of Ali Test Engineers
- Five high-frequency questions were selected from the 200 questions raised by 3000 test engineers
- PMP 考试常见工具与技术点总结
- [software testing] you haven't mastered these real interview questions of big companies?
- 求esp32C3板子连接mssql方法
- Day05 表格
- Generic
- 基于.NetCore开发博客项目 StarBlog - (14) 实现主题切换功能
- 打印菱形图案
- Future源码一观-JUC系列
猜你喜欢
Windos10 reinstallation system tutorial
A dichotomy of Valentine's Day
(Introduction to database system | Wang Shan) Chapter V database integrity: Exercises
Celebrate the new year | Suihua fire rescue detachment has wonderful cultural activities during the Spring Festival
[common error] custom IP instantiation error
Introduction to unity shader essentials reading notes Chapter III unity shader Foundation
Shell script three swordsman sed
Qtcharts notes (V) scatter diagram qscatterseries
Analysis: misunderstanding of choosing WMS warehouse management system
[NLP] text classification still stays at Bert? Duality is too strong than learning framework
随机推荐
For loop
A dichotomy of Valentine's Day
The difference between fetchtype lazy and eagle in JPA
关于 uintptr_t和intptr_t 类型
Alibaba test engineer with an annual salary of 500000 shares notes: a complete set of written tests of software testing
What is regression testing? Talk about regression testing in the eyes of Ali Test Engineers
[complimentary ppt] kubemeet Chengdu review: make the delivery and management of cloud native applications easier!
From functools import reduce -- see the use of reduce function from typical examples
使用dnSpy对无源码EXE或DLL进行反编译并且修改
8. Go implementation of string conversion integer (ATOI) and leetcode
Makefile judge custom variables
A Kuan food rushed to the Shenzhen Stock Exchange: with annual sales of 1.1 billion, Hillhouse and Maotai CCB are shareholders
PMP 考试常见工具与技术点总结
[error record] configure NDK header file path in Visual Studio (three header file paths of NDK | ASM header file path selection related to CPU architecture)
Wechat official account and synchronization assistant
功能:求出菲波那契数列的前一项与后一项之比的极限的 近似值。例如:当误差为0.0001时,函数值为0.618056。
Is it really possible that the monthly salary is 3K and the monthly salary is 15K?
Gauss elimination method and template code
【.NET+MQTT】.NET6 环境下实现MQTT通信,以及服务端、客户端的双边消息订阅与发布的代码演示
Thinkphp6 integrated JWT method and detailed explanation of generation, removal and destruction