当前位置:网站首页>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)
边栏推荐
- Pair
- What insurance products should be bought for the elderly?
- MPLS experiment
- 功能:编写函数fun求s=1^k+2^k +3^k + ......+N^k的值, (1的K次方到N的K次方的累加和)。
- Wechat official account and synchronization assistant
- Oracle database knowledge points that cannot be learned (III)
- Swagger2 quick start and use
- 关于 uintptr_t和intptr_t 类型
- Summary of common tools and technical points of PMP examination
- 【.NET+MQTT】.NET6 环境下实现MQTT通信,以及服务端、客户端的双边消息订阅与发布的代码演示
猜你喜欢
![Cesiumjs 2022^ source code interpretation [8] - resource encapsulation and multithreading](/img/d2/99932660298b4a4cddd7e5e69faca1.png)
Cesiumjs 2022^ source code interpretation [8] - resource encapsulation and multithreading

手机异步发送短信验证码解决方案-Celery+redis
![[GNN] hard core! This paper combs the classical graph network model](/img/a7/2140744ebad9f1dc0a609254cc618e.jpg)
[GNN] hard core! This paper combs the classical graph network model

Att & CK actual combat series - red team actual combat - V

Future源码一观-JUC系列

Shell script three swordsman sed

BBS forum recommendation

A-Frame虚拟现实开发入门

基于.NetCore开发博客项目 StarBlog - (14) 实现主题切换功能
![[cloud native topic -48]:kubesphere cloud Governance - operation - overview of multi tenant concept](/img/b4/961b3b44e9ecbfd4bddd04318b663a.jpg)
[cloud native topic -48]:kubesphere cloud Governance - operation - overview of multi tenant concept
随机推荐
Generic
12. Go implementation of integer to Roman numeral and leetcode
[error record] configure NDK header file path in Visual Studio
What is the future of software testing industry? Listen to the test veterans' answers
[complimentary ppt] kubemeet Chengdu review: make the delivery and management of cloud native applications easier!
[C language] break and continue in switch statement
Introduction to thread pool
1-Redis架构设计到使用场景-四种部署运行模式(上)
Oracle database knowledge points (IV)
Global and Chinese market of process beer equipment 2022-2028: Research Report on technology, participants, trends, market size and share
Global and Chinese markets of distributed control system (DCS) consumption 2022-2028: Research Report on technology, participants, trends, market size and share
老姜的特点
Characteristics of ginger
Mobile asynchronous sending SMS verification code solution -efficiency+redis
Beijing invites reporters and media
[common error] custom IP instantiation error
基于.NetCore开发博客项目 StarBlog - (14) 实现主题切换功能
On covariance of array and wildcard of generic type
Network layer - routing
机器学习基础:用 Lasso 做特征选择