Table des matières
Introduction à la partition Swap
vmstat 3
swapon -s
Maison Opération et maintenance exploitation et maintenance Linux Explication détaillée du rôle de la partition swap sous Linux

Explication détaillée du rôle de la partition swap sous Linux

Jan 24, 2018 pm 01:22 PM
linux swap 详解

Cet article présente principalement l'explication détaillée du rôle de la partition swap sous Linux. L'éditeur pense qu'il est assez bon et a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère que cela pourra aider tout le monde.

Cet article étudie principalement le contenu associé à la partition swap sous Linux. L'introduction spécifique est la suivante.

Introduction à la partition Swap

Actualités du site chinois Linux embarqué, la partition Swap du système Linux, c'est-à-dire la zone de swap, le rôle de l'espace Swap peut être simplement décrit comme : lorsque le la mémoire physique du système n'est pas suffisante, il est nécessaire de libérer une partie de l'espace dans la mémoire physique pour que le programme en cours d'exécution puisse l'utiliser. L'espace libéré peut provenir de certains programmes qui n'ont pas fonctionné depuis longtemps. L'espace libéré est temporairement enregistré dans l'espace Swap. Lorsque ces programmes sont sur le point de s'exécuter, les données enregistrées sont restaurées depuis Swap vers la mémoire. De cette manière, le système effectue toujours un Swap lorsque la mémoire physique est insuffisante. En fait, l'ajustement du Swap est crucial pour les performances des serveurs Linux, en particulier des serveurs Web. En ajustant Swap, les goulots d'étranglement des performances du système peuvent parfois être surmontés et les coûts de mise à niveau du système peuvent être économisés.

Comme nous le savons tous, les systèmes d'exploitation modernes ont mis en œuvre la technologie de la « mémoire virtuelle », qui non seulement brise les limites de la mémoire physique en termes de fonctionnalités, mais permet également aux programmes de manipuler un espace plus grand que la mémoire physique réelle. Plus important encore, la « mémoire virtuelle » est un filet de protection de sécurité qui isole chaque processus afin que chaque processus ne soit pas interféré par d'autres programmes.

Peut-être que les utilisateurs d'ordinateurs sont souvent confrontés à ce phénomène. Par exemple, lorsque vous utilisez un système Windows, vous pouvez exécuter plusieurs programmes en même temps. Lorsque vous passez à un programme auquel vous n'avez pas prêté attention depuis longtemps, vous entendrez le bip du disque dur. C'est parce que la mémoire de ce programme a été "volée" par des programmes fréquemment exécutés et placée dans la zone Swap. Par conséquent, une fois ce programme placé sur le front-end, il récupérera ses données de la zone Swap, les mettra en mémoire, puis continuera à s'exécuter.

De plus, toutes les données extraites de la mémoire physique ne seront pas placées dans Swap (si tel est le cas, Swap sera submergé), une partie considérable des données est échangée directement vers le système de fichiers. . Par exemple, certains programmes ouvriront certains fichiers et liront et écriront des fichiers (en fait, chaque programme doit ouvrir au moins un fichier, qui est le programme en cours d'exécution lui-même). Lorsque l'espace mémoire de ces programmes doit être échangé, il y en a). pas besoin de Les données de la partie fichier sont placées dans l'espace Swap, mais elles peuvent être placées directement dans le fichier. S'il s'agit d'une opération de lecture de fichier, les données de la mémoire sont libérées directement et n'ont pas besoin d'être échangées, car elles peuvent être restaurées directement à partir du système de fichiers en cas de besoin la prochaine fois s'il s'agit d'une opération d'écriture de fichier, seules les données modifiées ; doit être enregistré dans le fichier pour la récupération. Mais les données des objets générés par malloc et les nouvelles fonctions sont différentes. Elles nécessitent de l'espace Swap car elles n'ont pas de fichiers « de réserve » correspondants dans le système de fichiers, elles sont donc appelées données de mémoire « anonymes ». Ce type de données inclut également certaines données d'état et variables dans la pile. L’espace Swap est donc un espace d’échange de données « anonymes ».

Dépasser la limite d'échange de 128 M

Certains manuels d'installation de Linux (version nationale chinoise) contiennent les instructions suivantes : L'espace d'échange ne peut pas dépasser 128 M. Pourquoi est-ce dit ? Avant d'expliquer l'origine du nombre « 128M », permettez-moi d'abord de répondre à la question : il n'y a plus de limite à 128M maintenant ! La limite actuelle est de 2G !

L'espace Swap dans le système Linux est paginé et la taille de chaque page est la même que la taille de la page mémoire, ce qui facilite l'échange de données entre l'espace Swap et la mémoire. Lorsque les anciennes versions de Linux implémentaient l'espace Swap, elles utilisaient la première page de l'espace Swap comme « bitmap » pour toutes les pages de l'espace Swap. Cela signifie que chaque bit de la première page correspond à une page d'espace Swap. Si ce bit est à 1, cela signifie que le Swap de cette page est disponible ; s'il est à 0, cela signifie que cette page est un mauvais bloc et ne peut pas être utilisée. De cette façon, le premier bit de mappage Swap doit être 0, car la première page Swap est une page de mappage. De plus, les 10 derniers bits de mappage sont également occupés pour indiquer la version Swap (la version originale est Swap_space, la version actuelle est swapspace2). Ensuite, si la taille d'une page est s, cette méthode d'implémentation de Swap peut gérer un total de "8 * (s - 10) - 1" pages de Swap. Pour le système i386, s=4096, la taille totale de l'espace est de 133890048. Si 1 Mo=2^20 octets est pris en compte, la taille est exactement de 128 Mo.
Le but de la gestion de l'espace Swap de cette manière est d'éviter les mauvais blocs dans l'espace Swap. Si le système détecte qu'il y a des blocs défectueux dans Swap, il marque 0 sur le bitmap correspondant, indiquant que cette page n'est pas disponible. De cette façon, lors de l'utilisation de Swap, les blocs défectueux ne seront pas utilisés et provoqueront des erreurs dans le système.

Les concepteurs de systèmes actuels pensent :

1. La qualité des disques durs est désormais très bonne, avec très peu de blocs défectueux.
2. Même s'il y en a, il n'y en a pas beaucoup. Il suffit de lister les blocs défectueux, et il n'est pas nécessaire de créer un mappage pour chaque page.
3. S'il y a de nombreux blocs défectueux, ce disque dur ne doit pas être utilisé comme espace de swap.

En conséquence, Linux annule désormais la méthode de mappage de bits, annulant ainsi la limite de 128 Mo. Accès directement par adresse, limité à la 2G.

L'impact de la configuration Swap sur les performances

Allouer trop d'espace Swap gaspillera de l'espace disque, et s'il y a trop peu d'espace Swap, des erreurs système se produiront.

Lorsque la mémoire physique du système est épuisée, le système fonctionnera très lentement, mais il peut toujours fonctionner si l'espace de swap est utilisé, une erreur se produira dans le système. Par exemple, un serveur Web peut générer plusieurs processus de service (ou threads) en fonction d'un nombre différent de requêtes. Si l'espace Swap est utilisé, le processus de service ne peut pas être démarré et une erreur « L'application manque de mémoire » se produit généralement. Dans les cas graves, cela entraînera un blocage du processus de service. Par conséquent, l’allocation de l’espace Swap est très importante.

Généralement, l'espace Swap doit être supérieur ou égal à la taille de la mémoire physique, et le minimum ne doit pas être inférieur à 64 Mo. Habituellement, la taille de l'espace Swap doit être de 2 à 2,5. fois la mémoire physique. Cependant, selon l'application, il doit y avoir des configurations différentes : s'il s'agit d'un petit système de bureau, seul un espace Swap plus petit est requis, tandis qu'un grand système serveur nécessite différentes tailles d'espace Swap selon la situation. Surtout pour les serveurs de base de données et les serveurs Web, à mesure que le nombre de visites augmente, les besoins en espace Swap augmenteront également. Pour des configurations spécifiques, veuillez vous référer aux instructions de chaque produit serveur.

De plus, le nombre de partitions Swap a également un grand impact sur les performances. Étant donné que l'opération Swap est une opération d'E/S sur disque, s'il existe plusieurs zones d'E/S Swap, l'allocation de l'espace Swap sera effectuée sur tous les Swaps de manière rotative, ce qui équilibrera considérablement la charge d'E/S et accélérera l'échange d'E/S. S'il n'y a qu'une seule zone de swap, toutes les opérations de swap rendront la zone de swap très occupée, laissant le système dans un état d'attente la plupart du temps, ce qui est très inefficace. À l'aide d'outils de surveillance des performances, vous constaterez que le processeur n'est pas très occupé à ce moment-là, mais que le système est lent. Cela montre que le goulot d'étranglement est l'E/S et que le problème ne peut pas être résolu en augmentant la vitesse du processeur.
Surveillance des performances du système

L'allocation de l'espace Swap est certainement importante, mais la surveillance des performances pendant que le système est en cours d'exécution est encore plus précieuse. Grâce aux outils de surveillance des performances, vous pouvez vérifier divers indicateurs de performances du système et détecter les goulots d'étranglement des performances du système. Cet article présente uniquement certaines commandes et utilisations liées à Swap sous Solaris.

La plus couramment utilisée est la commande Vmstat (il existe de telles commandes sur la plupart des plateformes Unix). Cette commande permet d'afficher la plupart des indicateurs de performances. Par exemple :

vmstat 3

procs memory swap io system cpu 
r b w swpd free buff cache si so bi bo in cs us sy id 
0 0 0 0 93880 3304 19372 0 0 10 2 131 10 0 0 99 
0 0 0 0 93880 3304 19372 0 0 0 0 109 8 0 0 100 
0 0 0 0 93880 3304 19372 0 0 0 0 112 6 0 0 100 
…………
Copier après la connexion

Description de la commande :

Les paramètres suivant vmstat spécifient l'intervalle de temps de capture de l'indicateur de performance. 3 signifie capturer toutes les trois secondes. Il n'est pas nécessaire de lire la première ligne de données, elle n'a aucune valeur. Elle reflète uniquement la performance moyenne depuis le démarrage. À partir de la deuxième ligne, les indicateurs de performances du système sont reflétés toutes les trois secondes. Parmi ces indicateurs de performance, ceux liés au Swap incluent les suivants :

w sous procs

Il indique que la mémoire et l'échange doivent être libérés actuellement (dans les trois secondes) Le nombre de processus sortants.

swpd en mémoire

Il indique la taille de l'espace Swap utilisé.

si sous Swap, donc

si représente la quantité totale actuelle (dans les trois secondes) de mémoire échangée (Swap in) par seconde, en kilo-octets ; représente donc la quantité totale actuelle (dans les trois secondes) de mémoire échangée (Swap out) par seconde, en kilo-octets.

Plus le nombre des indicateurs ci-dessus est élevé, plus le système est occupé. L'activité du système représentée par ces indicateurs est liée à la configuration spécifique du système. L'administrateur système doit noter les valeurs de ces indicateurs lorsque le système fonctionne normalement. Lorsqu'un problème survient avec le système, comparez-le et trouvez rapidement le problème, et formulez des valeurs d'indicateurs standard pour le fonctionnement normal du système. à des fins de performances.

De plus, vous pouvez utiliser Swapon-s pour vérifier facilement l'utilisation actuelle des ressources Swap. Par exemple :

swapon -s

Nom de fichier Type Taille Utilisée Priorité

/dev/hda9 partition 361420 0 3

peut être pratique Vous pouvez voir clairement la taille des ressources utilisées et inutilisées dans l'espace Swap.

La charge de swap doit être maintenue en dessous de 30 % pour garantir de bonnes performances du système.

Pour augmenter l'espace Swap, suivez les étapes suivantes :

1) Devenez un super utilisateur

$su - root

2) Créer un fichier d'échange

dd if=/dev/zero of=swapfile bs=1024 count=65536

Créez un fichier d'échange avec un espace continu.

3) Activer le fichier d'échange

/usr/sbin/swapon swapfile

swapfile fait référence au fichier d'échange créé à l'étape précédente.

4) Maintenant, le fichier Swap nouvellement ajouté a pris effet, mais après le redémarrage du système, les étapes précédentes ne seront pas mémorisées. Par conséquent, le nom du fichier et le type de swap doivent être enregistrés dans le fichier /etc/fstab, tel que :

/path/swapfile none Swap sw,pri=3 0 0

5) Vérifiez si le fichier Swap est ajouté avec

/usr/sbin/swapon -s

pour supprimer l'espace Swap en excès.

1) Devenez un super utilisateur

2) Utilisez la commande Swapoff pour récupérer de l'espace Swap.

#/usr/sbin/swapoff swapfile

3) Modifiez le fichier /etc/fstab et supprimez l'entité de ce fichier Swap.

4) Recyclez ce fichier du système de fichiers.

#rm swapfile

5) Bien sûr, si cet espace de swap n'est pas un fichier, mais une partition, vous devez créer un nouveau système de fichiers puis le monter sur le système de fichiers d'origine .

Recommandations associées :

Analyse de cas Oracle Swap à 100 %

Comment empêcher Oracle d'utiliser la partition d'échange Linux

Comment MySQL évite-t-il d'utiliser la partition d'échange Linux et améliore-t-il les performances de lecture et d'écriture

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quatre façons d'implémenter le multithreading dans le langage C Quatre façons d'implémenter le multithreading dans le langage C Apr 03, 2025 pm 03:00 PM

Le multithreading dans la langue peut considérablement améliorer l'efficacité du programme. Il existe quatre façons principales d'implémenter le multithreading dans le langage C: créer des processus indépendants: créer plusieurs processus en cours d'exécution indépendante, chaque processus a son propre espace mémoire. Pseudo-Multithreading: Créez plusieurs flux d'exécution dans un processus qui partagent le même espace mémoire et exécutent alternativement. Bibliothèque multi-thread: Utilisez des bibliothèques multi-threades telles que PTHEADS pour créer et gérer des threads, en fournissant des fonctions de fonctionnement de thread riches. Coroutine: une implémentation multi-thread légère qui divise les tâches en petites sous-tâches et les exécute tour à tour.

Comment ouvrir web.xml Comment ouvrir web.xml Apr 03, 2025 am 06:51 AM

Pour ouvrir un fichier web.xml, vous pouvez utiliser les méthodes suivantes: Utilisez un éditeur de texte (tel que le bloc-notes ou TextEdit) pour modifier les commandes à l'aide d'un environnement de développement intégré (tel qu'Eclipse ou NetBeans) (Windows: Notepad web.xml; Mac / Linux: Open -A TextEdit web.xml)

L'interprète Python peut-il être supprimé dans le système Linux? L'interprète Python peut-il être supprimé dans le système Linux? Apr 02, 2025 am 07:00 AM

En ce qui concerne le problème de la suppression de l'interpréteur Python qui est livré avec des systèmes Linux, de nombreuses distributions Linux préinstalleront l'interpréteur Python lors de l'installation, et il n'utilise pas le gestionnaire de packages ...

À quoi sert le mieux le Linux? À quoi sert le mieux le Linux? Apr 03, 2025 am 12:11 AM

Linux est mieux utilisé comme gestion de serveurs, systèmes intégrés et environnements de bureau. 1) Dans la gestion des serveurs, Linux est utilisé pour héberger des sites Web, des bases de données et des applications, assurant la stabilité et la fiabilité. 2) Dans les systèmes intégrés, Linux est largement utilisé dans les systèmes électroniques intelligents et automobiles en raison de sa flexibilité et de sa stabilité. 3) Dans l'environnement de bureau, Linux fournit des applications riches et des performances efficaces.

Comment est la compatibilité Debian Hadoop Comment est la compatibilité Debian Hadoop Apr 02, 2025 am 08:42 AM

Debianlinux est connu pour sa stabilité et sa sécurité et est largement utilisé dans les environnements de serveur, de développement et de bureau. Bien qu'il y ait actuellement un manque d'instructions officielles sur la compatibilité directe avec Debian et Hadoop, cet article vous guidera sur la façon de déployer Hadoop sur votre système Debian. Exigences du système Debian: Avant de commencer la configuration de Hadoop, assurez-vous que votre système Debian répond aux exigences de fonctionnement minimales de Hadoop, qui comprend l'installation de l'environnement d'exécution Java (JRE) nécessaire et des packages Hadoop. Étapes de déploiement de Hadoop: Télécharger et unzip Hadoop: Téléchargez la version Hadoop dont vous avez besoin sur le site officiel d'Apachehadoop et résolvez-le

Dois-je installer un client Oracle lors de la connexion à une base de données Oracle à l'aide de Go? Dois-je installer un client Oracle lors de la connexion à une base de données Oracle à l'aide de Go? Apr 02, 2025 pm 03:48 PM

Dois-je installer un client Oracle lors de la connexion à une base de données Oracle à l'aide de Go? Lorsque vous développez GO, la connexion aux bases de données Oracle est une exigence commune ...

Debian Strings est-il compatible avec plusieurs navigateurs Debian Strings est-il compatible avec plusieurs navigateurs Apr 02, 2025 am 08:30 AM

"Debianstrings" n'est pas un terme standard, et sa signification spécifique n'est pas encore claire. Cet article ne peut pas commenter directement la compatibilité de son navigateur. Cependant, si "DebianStrings" fait référence à une application Web exécutée sur un système Debian, sa compatibilité du navigateur dépend de l'architecture technique de l'application elle-même. La plupart des applications Web modernes se sont engagées à compatibilité entre les navigateurs. Cela repose sur les normes Web suivantes et l'utilisation de technologies frontales bien compatibles (telles que HTML, CSS, JavaScript) et les technologies back-end (telles que PHP, Python, Node.js, etc.). Pour s'assurer que l'application est compatible avec plusieurs navigateurs, les développeurs doivent souvent effectuer des tests croisés et utiliser la réactivité

See all articles