Fonctionnement et maintenance: dépannez rapidement le processus de problèmes de système d'exploitation

Dans notre environnement de travail, divers problèmes de processus apparaissent souvent, et ce que nous devons faire est de découvrir et de résoudre rapidement les problèmes.

  • Nos problèmes de processus courants sont généralement divisés en deux catégories: l'utilisation excessive des ressources et les problèmes de statut des processus.
  • Une utilisation excessive des ressources fait généralement référence à une utilisation excessive du processeur, de la mémoire, des E / S et des descripteurs de fichiers. Affectent généralement le fonctionnement stable de l'entreprise ou causent des problèmes avec d'autres processus de service
  • Les problèmes d'état des processus sont généralement des processus zombies et des états de veille ininterrompus, qui peuvent causer des problèmes dans les services métier
  • Énumérez quelques problèmes de processus courants:
    Insérez la description de l'image ici
  • Pour ces problèmes courants, nous pouvons utiliser les commandes suivantes pour analyser
  • (Pour les paramètres d'option spécifiques de ces commandes, veuillez le découvrir par vous-même)
top:实时显示系统中各个进程的资源占用状态
ps:显示瞬间进程的状态
strace:跟踪进程的系统调用
lsof:列出某个程序进程所打开的文件信息
free:用来查看系统可用内存
iostat:动态监视系统磁盘操作活动
vmstat:实时动态监控操作系统的虚拟内存、进程、cpu活动
ldd:用来查看程序运行所需的共享库

Comment dépanner le processus de problème

Dépanner l'utilisation des ressources du processeur

  • Entrez la topcommande pour répertorier l'utilisation des ressources du processus, appuyez et maintenez shift+ppour trier par la taille de l'utilisation du processeur, vous pouvez voir intuitivement l'utilisation du processeur de chaque processus
top

Insérez la description de l'image ici
Extraire l'état instantané du processus du système

  • Nous extrayons les dix premiers processus par ordre décroissant d'utilisation du processeur
  • De cette façon, nous pouvons voir les dix processus qui utilisent le plus de CPU via COMMAND
ps -aux --sort=-%cpu|head -n 10
[root@centos7 ~]# ps -aux --sort=-%cpu|head -n 10
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root        953  0.2  0.2 273196  4876 ?        Ssl  3月05   0:14 /usr/bin/vmtoolsd
root       1959  0.2  0.0      0     0 ?        S    00:08   0:00 [kworker/0:3]
root        415  0.1  0.0      0     0 ?        S    3月05   0:07 [xfsaild/dm-0]
root       1910  0.1  0.0      0     0 ?        S    3月05   0:01 [kworker/0:1]
root       1937  0.1  0.0      0     0 ?        S    00:00   0:01 [kworker/0:2]
root          1  0.0  0.2 125768  4260 ?        Ss   3月05   0:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    3月05   0:00 [kthreadd]
root          4  0.0  0.0      0     0 ?        S<   3月05   0:00 [kworker/0:0H]
root          6  0.0  0.0      0     0 ?        S    3月05   0:00 [ksoftirqd/0]

Trop de ressources mémoire utilisées par le processus de recherche

  • Toujours utiliser la topcommande, selon Shift+ml'ordre en fonction de la mémoire
  • psLa commande est la même, remplacez -% cpu par -% MEM pour
    Insérez la description de l'image ici
    analyser le disque IO
  • Utilisez la iostatcommande pour afficher
  • yum -y install sysstatCommande à installer s'il n'est pas installé
iostat 2 1
[root@centos7 ~]# iostat 2 1
Linux 3.10.0-1160.el7.x86_64 (centos7) 	2021年03月06日 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.10    0.00    0.25    0.02    0.00   99.63

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               1.00        19.20         2.40     106015      13243
scd0              0.00         0.19         0.00       1028          0
dm-0              0.67        17.03         2.03      94054      11195
dm-1              0.02         0.40         0.00       2204          0
  • Deux paramètres: 2 représente la fréquence de rafraîchissement, 1 représente le nombre total de fois
  • KB_read / s signifie lecture; KB_wrtn / s signifie écriture
  • Avec l'option -x, vous pouvez voir plus clairement l'état de chargement actuel du disque
  • Si vous souhaitez en savoir plus sur l'utilisation d'E / S du processus, vous pouvez utiliser la iotopcommande
  • Remarque: cette commande peut être le problème des descripteurs de fichiers occupés par des processus qui occupent une grande performance du système
    Insérez la description de l'image ici
  • Tout d'abord, nous pouvons voir le nombre total de descripteurs de fichiers que le système autorise tous les processus à ouvrir. Cette valeur représente le nombre maximum de fichiers fd autorisés à être ouverts par tous les processus du système.
[root@centos7 ~]# cat /proc/sys/fs/file-max 
190603
  • Parfois, il est nécessaire de visualiser le nombre de fd ouverts et autorisés à être ouverts dans tous les processus en cours
[root@centos7 fs]# cat /proc/sys/fs/file-nr 
1152	0	190603
  • Nous pouvons également être précis sur le nombre de fd qu'un processus est autorisé à ouvrir, car en plus de la limite du nombre total, le système a également des restrictions sur un seul processus.
[root@centos7 ~]# ulimit -n
1024
  • Nous voulons savoir quel fd est actuellement ouvert par un processus
ll /rpoc/{pid}/fd
  • Entrez le numéro pid du processus que vous souhaitez savoir, s'il y a plus de contenu, vous pouvez ajouter des wcstatistiques
  • Si le processus ouvre trop de descripteurs de fichiers et dépasse la limite du système, cela peut affecter le processus ou le service, ce qui doit être vérifié et ajusté.

Processus de zombie

  • Une fois le processus enfant exit (), il ne disparaît pas immédiatement. Au lieu de cela, une structure de données (Zombie) doit être traitée par le processus parent. Si après l'exit () du processus enfant, le processus parent n'a pas eu le temps de le traiter, à ce stade, le statut du processus enfant est Z
  • Vous pouvez utiliser toppour afficher le processus zombie du système actuel
    Insérez la description de l'image ici
  • Vous pouvez également le visualiser grâce à la combinaison de ps + grep
ps -e -o ppid,stat | grep Z
  • Tuez-le lorsqu'il est trouvé, trouvez et tuez le processus zombie via la commande suivante
 ps -e -o ppid,stat | grep Z | cut -d "" -f2 | xargs kill -9

Traitement de l'état de veille ininterrompu

  • Les états de sommeil interruptibles sont généralement représentés par "S", et les états de sommeil sans interruption sont généralement représentés par "D"
  • Généralement, dans ce cas, redémarrez le système lorsque tout va bien.
以上内容都是我买的一个小课里的,只有命令总结,没写描述性的文字,所有可能有的地方不是很清晰,见谅。
嘿嘿。应该不会有什么侵权什么的吧?是吧?是吧?

Je suppose que tu aimes

Origine blog.csdn.net/qq_42527269/article/details/114418893
conseillé
Classement