Table des matières
Qu'est-ce que le swap ?
Pourquoi avons-nous besoin d'un échange ?
Inconvénients du swap ?
Faut-il échanger ?
Mémoire insuffisante
La mémoire est à peine suffisante
Beaucoup de mémoire
Supposons que notre mémoire physique soit de 16 Go et que notre swap soit de 4 Go. Si MySQL lui-même occupe déjà 12 Go de mémoire physique et qu'en même temps d'autres programmes ou modules système nécessitent 6 Go de mémoire, le système d'exploitation peut alors mapper une partie de l'espace d'adressage appartenant à MySQL pour l'échanger.
Que cache le pool de tampons d'InnoDB ? A quoi ça sert ? Quel est le réglage approprié ?
Maison Opération et maintenance exploitation et maintenance Linux Comment résoudre le problème de l'utilisation élevée de l'espace Linux Swap

Comment résoudre le problème de l'utilisation élevée de l'espace Linux Swap

May 27, 2023 pm 12:37 PM
linux swap

    Qu'est-ce que le swap ?

    L'espace de swap est une zone du disque, qui peut être une partition, un fichier ou une combinaison de ceux-ci.

    Pour faire simple, lorsque la mémoire physique du système est limitée, Linux enregistre les données rarement consultées dans la mémoire pour les échanger, afin que le système dispose de plus de mémoire physique pour servir chaque processus, et lorsque le système a besoin d'accéder au stockage sur échanger le contenu, puis charger les données du swap dans la mémoire. C'est ce que nous appelons souvent swap out et swap in.

    Pourquoi avons-nous besoin d'un échange ?

    Pour répondre à cette question, nous devons répondre aux avantages que l'échange nous apporte.

    Pour certaines applications volumineuses (telles que LibreOffice, éditeur vidéo, etc.), une grande quantité de mémoire sera utilisée lors du processus de démarrage, mais cette mémoire n'est souvent utilisée qu'au démarrage, et est rarement utilisée lors des opérations ultérieures. ces souvenirs. Avec le swap, le système peut sauvegarder cette partie des données de mémoire qui n'est pas utilisée de cette manière dans le swap, libérant ainsi davantage de mémoire physique que le système peut utiliser.

    La fonction d'hibernation de nombreuses distributions (telles que Ubuntu) repose sur la partition d'échange. Lorsque le système hiberne, les données en mémoire seront enregistrées dans la partition d'échange au prochain démarrage du système. la mémoire. , ce qui peut accélérer le démarrage du système, donc si vous souhaitez utiliser la fonction d'hibernation, vous devez configurer la partition d'échange et la taille doit être supérieure ou égale à la mémoire physique.

    Dans certains cas, la mémoire physique est limitée, mais que dois-je faire si je souhaite exécuter un programme gourmand en mémoire ? À l'heure actuelle, vous pouvez atteindre l'objectif en configurant suffisamment d'espace de swap. Bien qu'il soit un peu plus lent, il peut au moins fonctionner.

    Bien que la mémoire physique soit suffisante dans la plupart des cas, il y a toujours des situations inattendues, comme un processus nécessitant plus de mémoire que prévu, ou un processus ayant une fuite de mémoire, etc. Lorsque la mémoire n'est pas suffisante, le tueur MOO du noyau va être déclenché Selon la configuration du tueur de MOO, certains processus seront tués ou le système sera redémarré directement (la valeur par défaut est de tuer en premier le processus qui consomme le plus de mémoire. Cependant, avec swap, vous pouvez utiliser swap comme). mémoire. Bien que ce soit un peu lent, cela nous donne au moins la possibilité de déboguer, de tuer le processus ou de sauvegarder la progression du travail en cours.

    Si vous avez vu la gestion de la mémoire Linux, vous saurez que le système utilisera autant de mémoire libre que possible pour le cache afin d'accélérer la vitesse d'E/S du système, donc si vous pouvez déplacer les données de mémoire moins couramment utilisées pour les échanger , vous pouvez utiliser davantage de mémoire physique pour le cache, améliorant ainsi les performances globales du système.

    Inconvénients du swap ?

    Les avantages du swap ont été présentés ci-dessus, mais qu'en est-il des inconvénients du swap ? Le swap est stocké sur le disque. La vitesse du disque est plusieurs fois plus lente que celle de la mémoire. Si vous continuez à lire et à écrire du swap, cela aura certainement un impact sur les performances du système, en particulier lorsque le système est en cours d'exécution. la mémoire est très limitée. La fréquence d'apparition de l'espace d'échange sera très élevée, ce qui entraînera un fonctionnement très lent du système, comme s'il était mort. À ce stade, l'ajout de mémoire physique est la seule solution.

    Étant donné que le système déplacera automatiquement les données de mémoire rarement utilisées vers le swap, pour les programmes de bureau, cela peut provoquer une petite pause lorsque vous réduisez un programme puis l'ouvrez à nouveau, car les données du swap doivent être rechargées dans Entrez. mémoire.

    Faut-il échanger ?

    Ce qui précède présente ce qu'est le swap et ses avantages et inconvénients, devrions-nous donc configurer le swap ? La réponse est : cela dépend.

    Ce qui suit traite du choix du swap dans l'environnement de serveur et de bureau dans trois situations : mémoire insuffisante, à peine assez de mémoire et mémoire suffisante.

    Mémoire insuffisante

    Qu'il s'agisse d'un ordinateur de bureau ou d'un serveur, lorsque la mémoire physique n'est évidemment pas suffisante et que vous souhaitez exécuter le programme, ajouter du swap est la seule option plus lente que de ne pas fonctionner du tout.

    La mémoire est à peine suffisante

    Il est recommandé de configurer le swap, de sorte que le noyau déplace les données rarement utilisées de la mémoire vers le swap, disposant ainsi de plus de mémoire physique pour les appels système, améliorant les performances du système et évitant également les problèmes physiques occasionnels. Il ne suffit pas de provoquer une sortie anormale du processus et d'améliorer la stabilité du système. Cependant, pour le serveur, il est nécessaire de limiter ou de surveiller l'utilisation de l'espace de swap lorsque l'espace de swap est utilisé plus que prévu. /out est fréquent, des mesures doivent être prises à temps, sinon cela causera de graves dommages au système. Les performances ont un grand impact

    Beaucoup de mémoire

    Théoriquement, si la mémoire physique est suffisante et que la fonction d'hibernation n'est pas nécessaire. , alors le swap est inutile, mais le problème clé est qu'il nous est difficile de garantir que la mémoire physique est suffisante en toutes circonstances, car il y a toujours des situations inattendues, telles que certains processus consommant plus de mémoire que prévu, la pression du serveur dépassant celle prévue , fuites de mémoire, etc.

    Actuellement, nous manquons évidemment de mémoire. Quelle est la cause du manque de mémoire ? Pourquoi MySQL provoque-t-il directement un manque de mémoire sur le serveur ? Alors pourquoi un échange se produit-il sur notre serveur MySQL ?

    Supposons que notre mémoire physique soit de 16 Go et que notre swap soit de 4 Go. Si MySQL lui-même occupe déjà 12 Go de mémoire physique et qu'en même temps d'autres programmes ou modules système nécessitent 6 Go de mémoire, le système d'exploitation peut alors mapper une partie de l'espace d'adressage appartenant à MySQL pour l'échanger.

    Pour parler franchement, le système pense que l'espace occupé par votre MySQL est trop grand et ne vous permet pas de faire des choses spéciales. Il doit laisser de la place à d'autres de mes zones de processus nécessaires pour utiliser la mémoire, vous devriez donc accéder à un. échange plus lent pour jouer !

    Le plus grand occupant de mémoire dans MySQL est innodb_buffer_pool_size, vous devriez donc vous demander si cette valeur est définie de manière déraisonnable la première fois ?

    La consommation de mémoire de MySQL est divisée en :

    • 1. Consommation de mémoire au niveau de la session : comme sort_buffer_size, etc. Chaque session ouvrira un sort_buffer_size pour les opérations de tri

    • 2. : innodb_buffer_pool_size, etc., segments de mémoire partagés globalement

    C'est là que je pense que notre DBA n'est pas professionnel. Nous n'avons pas envisagé la première situation pour vérifier la consommation de mémoire au niveau de la session, mais m'avons directement dit de l'ajuster. innodb_buffer_pool_size

    Que cache le pool de tampons d'InnoDB ? A quoi ça sert ? Quel est le réglage approprié ?

    Cache les données de table et les données d'index, charge les données sur le disque dans le pool de mémoire tampon, évite les E/S disque pour chaque accès et accélère l'accès.

    Les performances de concurrence de MySQL sont directement proportionnelles à la taille de la mémoire allouée par le pool de tampons. Plus la mémoire allouée est grande, meilleures sont ses performances de concurrence. Les 99 % de la mémoire de la machine doivent-ils être alloués au pool de tampons ?

    Bien sûr que non ! Sans oublier que le noyau du système d'exploitation nécessite également plusieurs gigaoctets de mémoire, en plus du Buffer Pool, MySQL possède également de nombreuses autres structures de données en mémoire. Celles-ci nécessitent toutes de la mémoire, donc l'idée ci-dessus n'est certainement pas réalisable !

    Un ratio plus raisonnable devrait être que la taille de la mémoire du Buffer Pool représente 50 % à 60 % de la mémoire totale de la machine.

    Vous pouvez vérifier l'état des hits via show engine innodb statusG;. Lorsque le taux de réussite n'atteint pas plus de 97%, vous pouvez envisager d'ajouter de la mémoire. Bien sûr, cela est également lié à l'entreprise. a une grande quantité d'écritures et peu de lectures, c'est un cas particulier.

    S'il n'atteint pas plus de 97% dans les autres cas, et s'il y a beaucoup de lectures, s'il n'atteint pas plus de 98%, cela signifie que le tampon n'est pas suffisant. D'un autre côté, si 20 % des accès mémoire sont alloués, cela peut être atteint à 100 %, et il y a beaucoup de pages libres, donc cela signifie. c'est suffisant. Vous pouvez également calculer en fonction des pages libres pour réduire un peu de mémoire. N'utilisez pas cette mémoire tant qu'elle n'est pas utilisée

    .

    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

    Video Face Swap

    Video Face Swap

    Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

    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)

    Quelle configuration de l'ordinateur est requise pour VScode Quelle configuration de l'ordinateur est requise pour VScode Apr 15, 2025 pm 09:48 PM

    Vs Code Système Exigences: Système d'exploitation: Windows 10 et supérieur, MacOS 10.12 et supérieur, processeur de distribution Linux: minimum 1,6 GHz, recommandé 2,0 GHz et au-dessus de la mémoire: minimum 512 Mo, recommandée 4 Go et plus d'espace de stockage: Minimum 250 Mo, recommandée 1 Go et plus d'autres exigences: connexion du réseau stable, xorg / wayland (Linux) recommandé et recommandée et plus

    VScode ne peut pas installer l'extension VScode ne peut pas installer l'extension Apr 15, 2025 pm 07:18 PM

    Les raisons de l'installation des extensions de code vs peuvent être: l'instabilité du réseau, les autorisations insuffisantes, les problèmes de compatibilité système, la version de code vs est trop ancienne, un logiciel antivirus ou des interférences de pare-feu. En vérifiant les connexions réseau, les autorisations, les fichiers journaux, la mise à jour vs du code, la désactivation des logiciels de sécurité et le redémarrage du code ou des ordinateurs, vous pouvez progressivement dépanner et résoudre les problèmes.

    Comment exécuter le code Java dans le bloc-notes Comment exécuter le code Java dans le bloc-notes Apr 16, 2025 pm 07:39 PM

    Bien que le bloc-notes ne puisse pas exécuter directement le code Java, il peut être réalisé en utilisant d'autres outils: à l'aide du compilateur de ligne de commande (Javac) pour générer un fichier bytecode (filename.class). Utilisez l'interpréteur Java (Java) pour interpréter ByteCode, exécuter le code et sortir le résultat.

    Peut-on utiliser pour mac Peut-on utiliser pour mac Apr 15, 2025 pm 07:36 PM

    VS Code est disponible sur Mac. Il a des extensions puissantes, l'intégration GIT, le terminal et le débogueur, et offre également une multitude d'options de configuration. Cependant, pour des projets particulièrement importants ou un développement hautement professionnel, le code vs peut avoir des performances ou des limitations fonctionnelles.

    Qu'est-ce que VScode pour quoi est VScode? Qu'est-ce que VScode pour quoi est VScode? Apr 15, 2025 pm 06:45 PM

    VS Code est le code Visual Studio Nom complet, qui est un éditeur de code multiplateforme gratuit et open source et un environnement de développement développé par Microsoft. Il prend en charge un large éventail de langages de programmation et fournit une mise en surbrillance de syntaxe, une complétion automatique du code, des extraits de code et des invites intelligentes pour améliorer l'efficacité de développement. Grâce à un écosystème d'extension riche, les utilisateurs peuvent ajouter des extensions à des besoins et des langues spécifiques, tels que les débogueurs, les outils de mise en forme de code et les intégrations GIT. VS Code comprend également un débogueur intuitif qui aide à trouver et à résoudre rapidement les bogues dans votre code.

    Comment utiliser vscode Comment utiliser vscode Apr 15, 2025 pm 11:21 PM

    Visual Studio Code (VSCODE) est un éditeur de code Open Source, Open Source et gratuit développé par Microsoft. Il est connu pour son léger, l'évolutivité et le support pour une large gamme de langages de programmation. Pour installer VScode, veuillez visiter le site officiel pour télécharger et exécuter l'installateur. Lorsque vous utilisez VSCODE, vous pouvez créer de nouveaux projets, modifier le code, déboguer le code, naviguer dans les projets, développer VSCODE et gérer les paramètres. VScode est disponible pour Windows, MacOS et Linux, prend en charge plusieurs langages de programmation et fournit diverses extensions via Marketplace. Ses avantages incluent le léger, l'évolutivité, le support linguistique étendu, les fonctionnalités riches et la version

    Quel est le but principal de Linux? Quel est le but principal de Linux? Apr 16, 2025 am 12:19 AM

    Les principales utilisations de Linux comprennent: 1. Système d'exploitation du serveur, 2. Système intégré, 3. Système d'exploitation de bureau, 4. Environnement de développement et de test. Linux excelle dans ces domaines, offrant des outils de stabilité, de sécurité et de développement efficaces.

    Comment vérifier l'adresse de l'entrepôt de Git Comment vérifier l'adresse de l'entrepôt de Git Apr 17, 2025 pm 01:54 PM

    Pour afficher l'adresse du référentiel GIT, effectuez les étapes suivantes: 1. Ouvrez la ligne de commande et accédez au répertoire du référentiel; 2. Exécutez la commande "git Remote -v"; 3. Affichez le nom du référentiel dans la sortie et son adresse correspondante.

    See all articles