Maison  >  Article  >  Tutoriel système  >  Processus système : 10 points de connaissance que le personnel d'exploitation et de maintenance doit connaître

Processus système : 10 points de connaissance que le personnel d'exploitation et de maintenance doit connaître

WBOY
WBOYavant
2024-01-05 17:24:201140parcourir
Présentation Dans les travaux quotidiens d'exploitation et de maintenance, lorsque nous exécutons habituellement la commande ps, nous verrons de nombreux processus « bizarres », et la plupart de ces processus sont les processus du noyau du système. De nombreux étudiants en savent très peu sur ce sujet, c'est pourquoi je vais aujourd'hui compiler pour vous un article d'introduction au processus système d'entrée de gamme, dans l'espoir d'aider tout le monde à comprendre le processus du système d'exploitation.

Dans les travaux quotidiens d'exploitation et de maintenance, lorsque nous exécutons habituellement la commande ps, nous verrons de nombreux processus « bizarres », et la plupart de ces processus sont les processus du noyau du système. De nombreux étudiants en savent très peu sur ce sujet, c'est pourquoi je vais aujourd'hui compiler pour vous un article d'introduction au processus système d'entrée de gamme, dans l'espoir d'aider tout le monde à comprendre le processus du système d'exploitation.
Processus système : 10 points de connaissance que le personnel dexploitation et de maintenance doit connaître

Avant-propos

Dans les travaux quotidiens d'exploitation et de maintenance, nous constatons souvent des processus système étranges qui occupent des ressources relativement élevées. Et j'entends toujours les étudiants du secteur métier demander : "Qu'est-ce que le processus xxx ? Pourquoi en a-t-on ouvert autant

?"

Ces processus du noyau au niveau du système sont mis entre parenthèses et exécutent certaines fonctions auxiliaires du système (telles que l'écriture du cache sur le disque) ; les processus sans crochets sont des processus exécutés par les utilisateurs (tels que php, nginx, etc.).

Comme le montre l'image ci-dessous :
Processus système : 10 points de connaissance que le personnel dexploitation et de maintenance doit connaître
Voici 10 processus système courants pour tout le monde :
kswapd0
kjournald
pdflush
kthreadd
migration
chien de garde
événements
kblockd
aio
rpciod

kswapd0

Le système réveillera kswapd à intervalles réguliers pour voir si la mémoire est saturée. Sinon, il se mettra en veille. Dans kswapd, il y a deux seuils, pages_hige et pages_low lorsque le nombre de pages de mémoire libre est inférieur. que pages_low, le processus kswapd analysera la mémoire et libérera 32 pages gratuites à chaque fois jusqu'à ce que le nombre de pages gratuites atteigne pages_high.

Linux utilise kswapd pour la gestion de la mémoire virtuelle de sorte que les pages récemment consultées soient conservées en mémoire et que les pages les moins actives soient paginées sur le disque. (qu'est-ce qu'une page ?)… Linux utilise gère la mémoire en unités appelées pages. Le processus kswapd diminue régulièrement l'âge des pages non référencées… et à la fin elles sont paginées (déplacées) sur le disque

kjournald

journal : enregistrez les modifications des métadonnées sur tous les systèmes de fichiers, le mode le plus lent.

enregistre toutes les modifications de données et de métadonnées du système de fichiers. Le plus lent des trois modes de journalisation ext3, ce mode de journalisation minimise le risque de perdre les modifications que vous avez apportées à n'importe quel fichier dans un système de fichiers ext3.

ordered : le mode par défaut enregistre uniquement les métadonnées des modifications du système de fichiers et enregistre le journal avant la modification.

enregistre uniquement les modifications apportées aux métadonnées du système de fichiers, mais vide les mises à jour des données de fichiers sur le disque avant d'apporter des modifications aux métadonnées du système de fichiers associé. Il s'agit du mode de journalisation ext3 par défaut.

.

writeback : le mode le plus rapide, qui enregistre également uniquement les métadonnées modifiées et s'appuie sur le processus d'écriture standard du système de fichiers pour écrire les données sur le disque dur

enregistre uniquement les modifications apportées aux métadonnées du système de fichiers, mais s'appuie sur le processus d'écriture standard du système de fichiers pour écrire les modifications des données des fichiers sur le disque. Il s'agit du mode de journalisation ext3 le plus rapide.

. pdflush

pdflush est utilisé pour synchroniser le contenu en mémoire avec le système de fichiers.

Par exemple : lorsqu'un fichier est modifié en mémoire, pdflush se charge de le réécrire sur le disque dur. Chaque fois que le nombre de pages sales en mémoire dépasse 10 %, pdflush sauvegardera ces pages sur le disque dur. Ce rapport est réglable et la valeur par défaut est de 10 via l'élément vm.dirty_background_ratio dans /etc/sysctl.conf.

kthreadd

Il n'existe qu'un seul thread de ce type, et son rôle est de gérer et de planifier d'autres threads du noyau.

Il est créé lors de l'initialisation du noyau et bouclera pour exécuter une fonction appelée kthreadd. La fonction de cette fonction est d'exécuter le kthread maintenu dans la liste chaînée globale kthread_create_list. Vous pouvez appeler kthread_create pour créer un kthread, qui sera ajouté à la liste chaînée kthread_create_list. En même temps, kthread_create affaiblira kthreadd_task. Lorsque kthreadd exécute kthread, il appellera l'ancienne interface - kernel_thread exécute un thread de noyau nommé "kthread" pour exécuter le kthread créé sera supprimé de la liste chaînée kthread_create_list, et kthreadd appellera continuellement le planificateur pour abandonner le CPU. . Ce fil ne peut pas être fermé.

migration

Il existe 32 threads de noyau au total, de migration/0 à migration/31. Chaque cœur de processeur correspond à un thread de noyau de migration. Sa fonction principale est de servir de processus de migration du cœur de processeur correspondant et est utilisé pour effectuer la migration de processus. opérations. Dans le noyau La fonction est migration_thread()

Appartient au système d'équilibrage de charge du noyau 2.6. Ce processus est automatiquement chargé au démarrage du système (un pour chaque CPU), et se définit comme un processus en temps réel de SCHED_FIFO, puis vérifie s'il y a des requêtes en attente. traité dans runqueue::migration_queue. Sinon, dormez simplement dans TASK_INTERRUPTIBLE jusqu'à ce que vous vous réveilliez et vérifiez à nouveau. migration_thread() n'est qu'une interface pour les fonctions de liaison du processeur et de gestion de l'alimentation du processeur. Ce fil de discussion est une partie importante du système de planification.

chien de garde

Il y a 32 threads de noyau au total, de watchdog/0 à watchdog/31. Chaque cœur de processeur correspond à un thread de noyau de surveillance qui est utilisé pour surveiller le fonctionnement du système et redémarrer automatiquement le système en cas de panne, y compris un. module de surveillance du noyau et un programme de surveillance de l'espace utilisateur.

Sous le noyau Linux, le principe de fonctionnement de base de watchdog est le suivant : lorsque watchdog est démarré (c'est-à-dire après l'ouverture du périphérique /dev/watchdog), si /dev/watchdog n'est pas exécuté dans un certain intervalle de temps défini (1 minute ) L'opération d'écriture, le circuit de surveillance matériel ou la minuterie logicielle redémarreront le système et chaque opération d'écriture entraînera la réinitialisation de la minuterie.

événements

Il existe 32 threads de noyau de ce type au total, de events/0 à events/31, et chaque cœur de processeur correspond à un thread de noyau d'événements. Utilisé pour traiter les événements du noyau. De nombreux événements logiciels et matériels (tels que les pannes de courant, les modifications de fichiers) sont convertis en événements et distribués aux threads intéressés par les événements correspondants pour réponse.

kblockd

Il y a 32 threads de noyau au total, de kblockd/0 à kblockd/31. Chaque cœur de processeur correspond à un thread de noyau kblockd. Utilisé pour gérer les périphériques de blocage du système, il active périodiquement les pilotes de périphériques de blocage dans le système. Si vous possédez un périphérique bloc, ces threads ne peuvent pas être supprimés.

aio

Il y a 32 threads de noyau au total, de aio/0 à aio/31. Chaque cœur de processeur correspond à un thread de noyau aio, qui gère les E/S au nom du processus utilisateur pour prendre en charge l'AIO en mode utilisateur (E/S asynchrones). ), ne doit pas être fermé.

rpciod

Il y a 32 threads de noyau au total, de rpciod/0 à rpciod/31. Chaque cœur de processeur correspond à un thread de noyau rpciod. Sa fonction principale est de servir de démon pour le service d'appel de procédure distante et est utilisé pour démarrer I/. O du service client, qui est généralement utilisé lors du démarrage du service NFS.

Résumé

Le processus est un concept très important dans le système d'exploitation. Toutes les données exécutées sur le système existeront dans le type de processus. Dans le système Linux : lorsqu'un événement est déclenché, le système le définit comme un processus. Le processus est donc le seul moyen d'implémenter un programme Linux.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer