Quelle doit être la taille de la partition swap sous Linux ? - 🏆 Serveurs gérés

BLOG

18 juillet 2023

Quelle doit être la taille de la partition swap sous Linux ?

Quelques considérations sur les questions habituelles concernant Swap, sa taille et sa mémoire virtuelle.

échanger la ram linux

Ce qui résonne dans les milieux informatiques, ce sont les avis multiples sur l'utilisation du Swap. Divers points de vue peuvent être trouvés : de ceux qui suivent l'idée traditionnelle, selon laquelle Swap "doit être le double de la RAM", à ceux qui affirment qu'"aujourd'hui ce n'est plus nécessaire, étant donné que la RAM dont nous disposons est supérieure à assez". Dans le même temps, certains prétendent qu'un système "sans swap" est plus rapide, tandis que d'autres soutiennent le contraire. La RAM devenant plus abordable en 2015, la question est de savoir s'il vaut toujours la peine de réserver de l'espace disque pour l'échange. La réponse rapide est : Oui, ça vaut le coup. Pour mieux comprendre, analysons la situation en détail.

Mémoire virtuelle : une introduction

Au cours de mes études universitaires, j'ai eu l'opportunité de suivre deux cours avec le prof. Montesi de l'Université de Bologne (il a également enseigné à Camerino) se référant aux systèmes Unix et au texte de Tanenbaum. Depuis, le sujet est devenu une passion profonde pour moi.

Chaque appareil informatique est équipé de RAM, une mémoire à accès rapide qui héberge les données utilisées. Il est très rapide, bien plus rapide que n'importe quel disque dur (même les SSD modernes), et représente l'un des principaux composants qui déterminent la vitesse de fonctionnement d'une machine, qu'il s'agisse d'un serveur, d'un ordinateur traditionnel, d'un smartphone, d'une tablette, etc.

mémoire virtuelle

La mémoire virtuelle est la somme de la RAM et de l'espace que nous définissons comme Swap, qui est l'espace sur un périphérique de stockage plus lent qui est utilisé lorsque le système a besoin de libérer une certaine quantité de mémoire à accès rapide (RAM).

Le système d'exploitation décide ce qu'il faut garder prêt à l'emploi et ce qu'il faut «parquer» dans un endroit moins accessible, mais toujours disponible. La mémoire totale vue par le système d'exploitation est donc la somme de la RAM et du Swap. Le dépassement de cette limite entraînera la génération de messages OOM (Out Of Memory) par le système et la gestion de la situation en fonction du système d'exploitation utilisé.

Swap : fonctionnalités et gestion

La gestion des swaps varie selon les systèmes d'exploitation, mais le concept de base reste :

Swap est de l'espace sur un appareil plus lent qui est utilisé pour étendre la mémoire RAM

Historiquement, Windows gérait Swap via un fichier dans le système de fichiers principal. Sa taille est dynamique et grandit au fur et à mesure des besoins, il est principalement utilisé lorsque la RAM de la machine commence à être pleine.

Dans les systèmes de type Unix, qui incluent des familles de systèmes d'exploitation telles que *BSD et GNU/Linux, Swap est généralement alloué dans une partition dédiée, conçue et optimisée à cet effet spécifique. Ce choix architectural repose sur un principe fondamental : les systèmes de fichiers sont conçus pour gérer des fichiers.

Cela inclut la mise en œuvre des autorisations d'accès, le suivi des heures de création et de modification, la gestion de l'intégrité des données et d'autres fonctionnalités au-delà de la simple lecture et écriture de données sur l'appareil.

L'ajout de ces complexités à Swap pourrait non seulement ralentir le processus de gestion de la mémoire, mais également ajouter du poids au système de fichiers en le rendant plus complexe. Par conséquent, pour éviter ces problèmes, la partition Swap est dédiée exclusivement à Swap, évitant ainsi au système d'exploitation d'avoir à effectuer toutes ces vérifications et processus supplémentaires.

L'option Swap-File sur les systèmes de type Unix

Malgré la tradition d'utiliser des partitions dédiées pour l'échange dans les systèmes de type Unix, il existe également la possibilité d'utiliser un fichier d'échange. Cette alternative peut être particulièrement pratique dans certaines circonstances ou lorsqu'une gestion plus souple de la mémoire est nécessaire.

échange Linux

Les fichiers d'échange, contrairement aux partitions d'échange, sont des fichiers spéciaux dans le système de fichiers qui peuvent être utilisés pour stocker temporairement des données de la RAM. Cette option offre une certaine flexibilité car la taille d'un fichier d'échange peut être modifiée dynamiquement, contrairement à une partition d'échange qui a une taille fixe une fois créée.

Pour faciliter la gestion des fichiers d'échange, plusieurs programmes ont été développés. Ces outils vous permettent de gérer dynamiquement les fichiers d'échange, en les créant, en augmentant ou en diminuant leur taille, ou en les supprimant complètement, selon les besoins réels du système. Cette flexibilité peut être particulièrement utile dans les scénarios où les besoins en mémoire système peuvent varier considérablement, comme les serveurs avec des charges de travail variables ou les systèmes avec des ressources de stockage limitées.

Besoin d'échanger en présence d'une grande RAM

Une question qui se pose souvent concernant l'utilisation du Swap est la suivante :

Si j'ai beaucoup de RAM, bien plus que ce dont j'ai besoin, pourquoi devrais-je quand même créer de l'espace d'échange ?

Cette question est logiquement valide et logique, mais la réponse nécessite une compréhension plus approfondie de la façon dont les systèmes d'exploitation, tels que GNU/Linux, gèrent la mémoire.

Il y a deux raisons principales pour lesquelles vous devriez utiliser Swap, même lorsque vous avez beaucoup de RAM :

1. Gestion optimisée de la RAM

Tout d'abord, les systèmes d'exploitation comme GNU/Linux gèrent la RAM très intelligemment, en essayant d'en tirer le meilleur parti. Il n'y a pas de RAM « inutile » ou « inutilisée » : tout espace libre est utilisé pour mettre en cache les lectures et les écritures sur les disques, ce qui rend les opérations d'E/S plus rapides et plus réactives.

De ce point de vue, Swap devient utile car il permet de libérer de la RAM des applications qui n'ont pas été utilisées depuis un certain temps. Ceux-ci sont "swappés", c'est-à-dire que leurs données en RAM sont déplacées vers Swap. Cette opération libère de l'espace en RAM qui peut être utilisé pour augmenter le cache disque ou pour gérer d'éventuels pics de charge. L'intensité de ceci est régie par le paramètre swappiness, un paramètre du noyau qui décide dans quelle mesure le système doit essayer d'utiliser Swap par rapport à la RAM.

2. Prise en charge de l'hibernation

Deuxièmement, presque toutes les distributions GNU/Linux utilisent Swap comme espace de stockage de données en cas d'hibernation. Pendant l'hibernation, le contenu de la RAM est "gelé" et copié dans Swap. Cela permet au système de s'arrêter complètement, économisant de l'énergie, mais de reprendre exactement là où il s'était arrêté la prochaine fois qu'il démarrera. Pour prendre en charge cette fonctionnalité, le Swap doit être au moins aussi grand que la RAM elle-même, pour garantir que tout le contenu de la RAM peut être sauvegardé.

Dans de nombreux cas, il est possible de fonctionner même sans Swap, mais sa présence peut améliorer l'efficacité de la gestion des ressources, la réactivité du système et la flexibilité des fonctions telles que l'hibernation. Par conséquent, même si vous disposez d'une grande quantité de RAM, créer de l'espace de swap est souvent une bonne pratique.

Dimensionnement de la partition d'échange

La décision sur la taille à attribuer à la partition Swap est l'un des aspects les plus discutés lorsqu'il s'agit de configurer des systèmes d'exploitation. En fait, il n'y a pas de réponse définitive à cette question, car elle varie en fonction des besoins spécifiques de chaque système et de la quantité de RAM disponible.

Il fut un temps où il était recommandé que la partition Swap soit deux fois plus grande que la RAM. Cependant, c'étaient les années où la mémoire des ordinateurs était mesurée en mégaoctets et non en gigaoctets comme c'est le cas aujourd'hui. Dans ce contexte, doubler la RAM était une pratique courante pour s'assurer qu'il y avait suffisamment de mémoire virtuelle disponible pour les opérations du système.

Dans le monde moderne, où la RAM est mesurée en gigaoctets et où vous disposez souvent de quantités très généreuses de RAM, cette règle n'est plus aussi pertinente. Pour les systèmes qui doivent hiberner, une suggestion pourrait être de donner au Swap une taille légèrement plus grande que la quantité de RAM disponible. En effet, comme mentionné précédemment, le contenu de la RAM est copié dans Swap pendant l'hibernation.

Pour les systèmes qui n'ont pas besoin de cette fonctionnalité, tels que les serveurs, la taille du Swap peut être évaluée au cas par cas. Cependant, il est généralement recommandé de toujours réserver au moins quelques Go pour gérer les pics de charge. S'il y avait une augmentation soudaine des besoins en mémoire et qu'il n'était pas possible de changer les partitions, on pouvait toujours recourir à l'utilisation d'un fichier d'échange, qui peut être fixe ou alloué dynamiquement selon les besoins.

Un aspect important à considérer est la sécurité des données. Des portions de mémoire RAM sont stockées dans le Swap, ce qui signifie qu'il est possible d'analyser l'espace même après l'arrêt de l'ordinateur et de trouver potentiellement des données sensibles telles que des mots de passe ou des informations personnelles. Pour ceux qui sont particulièrement préoccupés par la sécurité des données, il existe la possibilité de chiffrer la partition Swap. Cela peut se faire soit avec une clé fixe, qui est demandée à chaque démarrage du système, soit avec une clé générée dynamiquement à chaque démarrage, qui est invalidée à l'arrêt de la machine, augmentant ainsi le niveau de protection des données.

Vous avez des doutes ? Vous ne savez pas par où commencer ? Contactez-nous !

Nous avons toutes les réponses à vos questions pour vous aider à faire le bon choix.

Discute avec nous

Discutez directement avec notre support avant-vente.

0256569681

Contactez-nous par téléphone pendant les heures de bureau 9h30 - 19h30

Contactez-nous en ligne

Ouvrez une demande directement dans l'espace contact.

INFORMATIONS

Managed Server Srl est un acteur italien leader dans la fourniture de solutions système GNU/Linux avancées orientées vers la haute performance. Avec un modèle d'abonnement peu coûteux et prévisible, nous garantissons que nos clients ont accès à des technologies avancées en matière d'hébergement, de serveurs dédiés et de services cloud. En plus de cela, nous proposons des conseils système sur les systèmes Linux et une maintenance spécialisée en SGBD, sécurité informatique, Cloud et bien plus encore. Nous nous distinguons par notre expertise dans l'hébergement de CMS Open Source de premier plan tels que WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart et Magento, soutenus par un service d'assistance et de conseil de haut niveau adapté aux administrations publiques, aux PME et à toutes tailles.

Red Hat, Inc. détient les droits de Red Hat®, RHEL®, RedHat Linux® et CentOS® ; AlmaLinux™ est une marque commerciale d'AlmaLinux OS Foundation ; Rocky Linux® est une marque déposée de la Rocky Linux Foundation ; SUSE® est une marque déposée de SUSE LLC ; Canonical Ltd. détient les droits sur Ubuntu® ; Software in the Public Interest, Inc. détient les droits sur Debian® ; Linus Torvalds détient les droits sur Linux® ; FreeBSD® est une marque déposée de The FreeBSD Foundation ; NetBSD® est une marque déposée de la Fondation NetBSD ; OpenBSD® est une marque déposée de Theo de Raadt. Oracle Corporation détient les droits sur Oracle®, MySQL® et MyRocks® ; Percona® est une marque déposée de Percona LLC ; MariaDB® est une marque déposée de MariaDB Corporation Ab ; REDIS® est une marque déposée de Redis Labs Ltd. F5 Networks, Inc. détient les droits sur NGINX® et NGINX Plus® ; Varnish® est une marque déposée de Varnish Software AB. Adobe Inc. détient les droits sur Magento® ; PrestaShop® est une marque déposée de PrestaShop SA ; OpenCart® est une marque déposée d'OpenCart Limited. Automattic Inc. détient les droits sur WordPress®, WooCommerce® et JetPack® ; Open Source Matters, Inc. détient les droits sur Joomla® ; Dries Buytaert détient les droits sur Drupal®. Amazon Web Services, Inc. détient les droits sur AWS® ; Google LLC détient les droits sur Google Cloud™ et Chrome™ ; Microsoft Corporation détient les droits sur Microsoft®, Azure® et Internet Explorer® ; La Fondation Mozilla détient les droits sur Firefox®. Apache® est une marque déposée de The Apache Software Foundation ; PHP® est une marque déposée du groupe PHP. CloudFlare® est une marque déposée de Cloudflare, Inc. ; NETSCOUT® est une marque déposée de NETSCOUT Systems Inc. ; ElasticSearch®, LogStash® et Kibana® sont des marques déposées d'Elastic NV. Hetzner Online GmbH détient les droits sur Hetzner® ; OVHcloud est une marque déposée d'OVH Groupe SAS ; cPanel®, LLC détient les droits sur cPanel® ; Plesk® est une marque déposée de Plesk International GmbH ; Facebook, Inc. détient les droits sur Facebook®. Ce site n'est affilié, sponsorisé ou autrement associé à aucune des entités mentionnées ci-dessus et ne représente en aucune manière aucune de ces entités. Tous les droits sur les marques et noms de produits mentionnés sont la propriété de leurs titulaires respectifs des droits d'auteur. Toutes les autres marques mentionnées appartiennent à leurs titulaires. MANAGED SERVER® est une marque déposée au niveau européen par MANAGED SERVER SRL, Via Enzo Ferrari, 9, 62012 Civitanova Marche (MC), Italie.

Retour en haut de page