| Les deux révisions précédentesRévision précédente | |
| swap [Le 14/02/2026, 17:15] – [Créer un fichier d'échange] reformulation (l'ajout de fichiers n'est pas particulièrement recommandé) krodelabestiole | swap [Le 08/09/2026, 20:56] (Version actuelle) – disque dur -> SSD | suppr infos obsolètes | sur le web souligné = lien ! | pas de première personne | TODO À mettre à jour ! krodelabestiole |
|---|
| {{tag>administration système}} | {{tag>administration système}} |
| |
| ---- | ====== Espace d'échange (swap) ====== |
| |
| ====== Espace d'échange (swap) ====== | L'**espace d'échange**, aussi appelé par son terme anglais **swap space** ou simplement **swap**, est une zone d'un [[:SSD]] faisant partie de la //mémoire virtuelle//((La mémoire virtuelle est composée de la mémoire vive physique (RAM) et de l'espace d'échange.)) de votre ordinateur. Il est utilisé pour décharger la mémoire vive physique (RAM) de votre ordinateur lorsque celle-ci arrive à saturation. L'espace d'échange, dans Ubuntu, se trouve généralement sous une forme de [[:partitions|partition]] de [[:SSD]] -- on parle alors de //partition d'échange//. Il peut aussi se présenter sous forme de fichier -- on parle alors de //fichier d'échange//. |
| L'**espace d'échange**, aussi appelé par son terme anglais **swap space** ou simplement **swap**, est une zone d'un disque dur faisant partie de la //mémoire virtuelle//((La mémoire virtuelle est composée de la mémoire vive physique (RAM) et de l'espace d'échange.)) de votre ordinateur. Il est utilisé pour décharger la mémoire vive physique (RAM) de votre ordinateur lorsque celle-ci arrive à saturation. L'espace d'échange, dans Ubuntu, se trouve généralement sous une forme de partition de disque dur -- on parle alors de //partition d'échange//. Il peut aussi se présenter sous forme de fichier -- on parle alors de //fichier d'échange//. | |
| |
| Par défaut, Ubuntu calcule et s'attribue automatiquement un espace d'échange suffisant ou recommandé lors de son installation. Il n'est pas nécessaire d'effectuer des tâches supplémentaires pour assigner un espace d'échange minimum à Ubuntu. Cependant, évaluer ses besoins en espace d'échange peut mieux rationaliser vos ressources. | Par défaut, Ubuntu calcule et s'attribue automatiquement un espace d'échange suffisant ou recommandé lors de son installation. Il n'est pas nécessaire d'effectuer des tâches supplémentaires pour assigner un espace d'échange minimum à Ubuntu. Cependant, évaluer ses besoins en espace d'échange peut mieux rationaliser vos ressources. |
| |
| ===== Qu'est-ce qu'un espace d'échange ? ===== | ===== Qu'est-ce qu'un espace d'échange ? ===== |
| La mémoire vive physique (RAM) de l'ordinateur est utilisée pour stocker des données en cours de traitement. Si celle-ci se remplit presque entièrement mais que votre ordinateur a tout de même besoin de ressources pour procéder à des traitements, votre système d'exploitation peut déplacer temporairement des pages mémoire vers l'espace d'échange défini dans votre disque dur afin de libérer des ressources mémoire. L'espace d'échange agit ainsi en tant qu'extension de votre mémoire vive physique : elle récupère, au besoin, des blocs mémoire en excès de votre mémoire vive physique. | |
| |
| Notez cependant que l'espace d'échange se situant dans votre disque dur, l'accès aux données contenues dans celui-ci est plus lent que celles contenues directement dans la RAM. De plus, l'utilisation de l'espace d'échange ralentit significativement le système et entraîne une activité permanente du disque dur (bruits de "grattements"), provoquant une usure prématurée du matériel. De ce fait, l'espace d'échange ne doit pas être considéré comme un remplacement de votre mémoire vive physique, mais plutôt comme un mécanisme d'appoint. | La mémoire vive physique (RAM) de l'ordinateur est utilisée pour stocker des données en cours de traitement. Si celle-ci se remplit presque entièrement mais que votre ordinateur a tout de même besoin de ressources pour procéder à des traitements, votre système d'exploitation peut déplacer temporairement des pages mémoire vers l'espace d'échange défini sur le [[:SSD]] afin de libérer des ressources mémoire. L'espace d'échange agit ainsi en tant qu'extension de votre mémoire vive physique : elle récupère, au besoin, des blocs mémoire en excès de votre mémoire vive physique. |
| | |
| La plupart des systèmes d'exploitation -- sinon tous -- gèrent un espace d'échange. Avec les systèmes d'exploitation de type GNU/Linux, dont fait partie Ubuntu, cette zone d'échange se présente généralement sous la forme d'une partition de disque dur dédiée à cet effet. À titre comparatif, Microsoft(r) Windows(r) utilise un ou des fichiers dans chacun de ses volumes afin de jouer ce rôle. Il est aussi possible de créer et utiliser des fichiers assurant un espace d'échange. | |
| |
| | Notez cependant que l'espace d'échange se situant sur le [[:SSD]], l'accès aux données contenues dans celui-ci est plus lent que celles contenues directement dans la RAM. De plus, l'utilisation de l'espace d'échange ralentit significativement le système. De ce fait, l'espace d'échange ne doit pas être considéré comme un remplacement de votre mémoire vive physique, mais plutôt comme un mécanisme d'appoint. |
| |
| | La plupart des systèmes d'exploitation -- sinon tous -- gèrent un espace d'échange. Avec les systèmes d'exploitation de type GNU/Linux, dont fait partie Ubuntu, cette zone d'échange se présente généralement sous la forme d'une partition de [[:SSD]] dédiée à cet effet. À titre comparatif, Windows utilise un ou des fichiers dans chacun de ses volumes afin de jouer ce rôle. Il est aussi possible de créer et utiliser des fichiers assurant un espace d'échange. |
| |
| ===== Taille d'un espace d'échange ===== | ===== Taille d'un espace d'échange ===== |
| | |
| Il n'y a pas à proprement parler qu'une seule règle définissant la quantité d'espace à allouer à la zone d'échange, qu'elle soit sous forme de partitions ou de fichiers. Beaucoup de conditions entrent dans les facteurs influençant ce choix. Cependant, compte tenu des capacités des ordinateurs modernes, on peut relever [[:tutoriel:partitionner_manuellement_avec_installateur_ubuntu#partitions_indispensables|des recommandations généralement acceptées]] : | Il n'y a pas à proprement parler qu'une seule règle définissant la quantité d'espace à allouer à la zone d'échange, qu'elle soit sous forme de partitions ou de fichiers. Beaucoup de conditions entrent dans les facteurs influençant ce choix. Cependant, compte tenu des capacités des ordinateurs modernes, on peut relever [[:tutoriel:partitionner_manuellement_avec_installateur_ubuntu#partitions_indispensables|des recommandations généralement acceptées]] : |
| * **Votre ordinateur dispose de 6 Go de RAM ou plus ** Allouez un espace d'échange égal à la taille de votre RAM ; | * **Votre ordinateur dispose de 6 Go de RAM ou plus ** Allouez un espace d'échange égal à la taille de votre RAM ; |
| |
| ==== Pourquoi ai-je besoin d'un espace d'échange ? ==== | ==== Pourquoi ai-je besoin d'un espace d'échange ? ==== |
| * **Utilisation de programmes exigeants en ressources :** Parfois, des programmes exigent beaucoup de ressources dans votre ordinateur (comme la suite bureautique [[LibreOffice]], des jeux tels [[AlienArena]] ou des logiciels de montage vidéo tels [[Cinelerra]]), ce qui amène votre ordinateur à nécessiter davantage de ressources que disponibles. Souvent, une partie de la mémoire vive utilisée au chargement de ces programmes n'est réellement exploitée que lors de leur initialisation et n'est plus utilisée par la suite. \\ Le système peut libérer des ressources en déplaçant de telles pages mémoire vers un espace d'échange dans votre disque dur. | * **Utilisation de programmes exigeants en ressources :** Parfois, des programmes exigent beaucoup de ressources dans votre ordinateur (comme la suite bureautique [[LibreOffice]], des jeux tels [[AlienArena]] ou des logiciels de montage vidéo tels [[Cinelerra]]), ce qui amène votre ordinateur à nécessiter davantage de ressources que disponibles. Souvent, une partie de la mémoire vive utilisée au chargement de ces programmes n'est réellement exploitée que lors de leur initialisation et n'est plus utilisée par la suite. \\ Le système peut libérer des ressources en déplaçant de telles pages mémoire vers un espace d'échange sur le [[:SSD]]. |
| * **Hibernation (mise en veille prolongée) :** La fonction d'hibernation conserve votre système en l'état actuel lors de la mise hors-tension de votre ordinateur, ce qui vous permet de reprendre plus rapidement votre travail là où vous l'avez laissé tout en ne consommant pas d'énergie de votre pile ou de votre alimentation secteur. \\ Techniquement, il s'agit d'une copie de l'ensemble des informations contenues dans la mémoire vive de votre ordinateur vers l'espace d'échange de votre disque dur ; pour cette raison, une partition d'échange au moins aussi grande que la quantité de votre mémoire vive est requise pour profiter de cette fonctionnalité.((L'implémentation actuelle de l'hibernation dans Ubuntu (''swsusp'') ne peut pas utiliser un espace d'échange d'un fichier d'échange situé dans un système de fichiers actif.)) | * **Hibernation (mise en veille prolongée) :** La fonction d'hibernation conserve votre système en l'état actuel lors de la mise hors-tension de votre ordinateur, ce qui vous permet de reprendre plus rapidement votre travail là où vous l'avez laissé tout en ne consommant pas d'énergie de votre pile ou de votre alimentation secteur. \\ Techniquement, il s'agit d'une copie de l'ensemble des informations contenues dans la mémoire vive de votre ordinateur vers l'espace d'échange du [[:SSD]] ; pour cette raison, une partition d'échange au moins aussi grande que la quantité de votre mémoire vive est requise pour profiter de cette fonctionnalité.((L'implémentation actuelle de l'hibernation dans Ubuntu (''swsusp'') ne peut pas utiliser un espace d'échange d'un fichier d'échange situé dans un système de fichiers actif.)) |
| * **Circonstances imprévues :** Des événements imprévisibles peuvent survenir lors de l'utilisation de votre système (un programme ayant une fuite de mémoire, une action qui a besoin davantage de mémoire pour un court laps de temps ou une combinaison de ces événements). \\ Disposer d'un espace d'échange vous offre un sursis pour localiser le problème ou, à tout le moins, terminer votre travail en cours. | * **Circonstances imprévues :** Des événements imprévisibles peuvent survenir lors de l'utilisation de votre système (un programme ayant une fuite de mémoire, une action qui a besoin davantage de mémoire pour un court laps de temps ou une combinaison de ces événements). \\ Disposer d'un espace d'échange vous offre un sursis pour localiser le problème ou, à tout le moins, terminer votre travail en cours. |
| * **Cache mémoire :** Puisque l'accès aux fichiers de votre disque dur est plus lent que ceux placés en mémoire vive, le noyau Linux place en cache dans la mémoire vive les fichiers ouverts. \\ Ceci accélère grandement les traitements. Afin de conserver un maximum d'espace pour ce cache, une partie de la RAM réservée par les programmes mais non utilisée est déplacée dans l'espace d'échange. | * **Cache mémoire :** Puisque l'accès aux fichiers du [[:SSD]] est plus lent que ceux placés en mémoire vive, le noyau Linux place en cache dans la mémoire vive les fichiers ouverts. \\ Ceci accélère grandement les traitements. Afin de conserver un maximum d'espace pour ce cache, une partie de la RAM réservée par les programmes mais non utilisée est déplacée dans l'espace d'échange. |
| | |
| |
| ===== Aller plus loin... ===== | ===== Aller plus loin... ===== |
| <note>**Cette section s'adresse aux utilisateurs avertis.** \\ Les manipulations avancées ci-dessous permettent de mieux analyser et gérer les ressources système concernant l'espace d'échange. \\ Une mauvaise utilisation des outils et des commandes ci-dessous peut corrompre votre système ou en diminuer les performances. \\ Les réglages par défaut conviennent plus à une utilisation serveur.</note> | <note>**Cette section s'adresse aux utilisateurs avertis.** \\ Les manipulations avancées ci-dessous permettent de mieux analyser et gérer les ressources système concernant l'espace d'échange. \\ Une mauvaise utilisation des outils et des commandes ci-dessous peut corrompre votre système ou en diminuer les performances. \\ Les réglages par défaut conviennent plus à une utilisation serveur.</note> |
| |
| ====Améliorer l'utilisation du fichier d'échange (swap)==== | ==== Améliorer l'utilisation du fichier d'échange (swap) ==== |
| |
| <note tip>La copie de la RAM vers la swap consomme des ressources. \\ Plus la copie de la RAM se déclenche tard moins les ressources sont utilisées.</note> | <note tip>La copie de la RAM vers la swap consomme des ressources. \\ Plus la copie de la RAM se déclenche tard moins les ressources sont utilisées.</note> |
| |
| === Réglage permanent dans Ubuntu 14.04 à 18.04 (Systemd)=== | === Réglage permanent (Systemd)=== |
| | |
| | <note important>La mention barrée ci-dessous est totalement fausse. Le paramètre //swapiness// est beaucoup plus complexe que cela. Pour simplifier il ne gère pas seulement la tendance du noyau à échanger des pages entre la RAM et le swap, mais surtout l'équilibre entre le cache [[:SSD]] et l'utilisation de la mémoire par les applications. **Modifier ce paramètre risque fort d'être contre-productif et donc de diminuer les performances de votre système au lieu de les améliorer**. |
| |
| <note important>La mention barrée ci-dessous est totalement fausse. Le paramètre //swapiness// est beaucoup plus complexe que cela. Pour simplifier il ne gère pas seulement la tendance du noyau à échanger des pages entre la RAM et le swap, mais surtout l'équilibre entre le cache disque et l'utilisation de la mémoire par les applications. **Modifier ce paramètre risque fort d'être contre-productif et donc de diminuer les performances de votre système au lieu de les améliorer**.\\ | |
| \\ | |
| **Les manipulations présentées de cette section doivent donc absolument être évitées , en particulier pour les versions récentes d' ubuntu y compris la 22.04.** | **Les manipulations présentées de cette section doivent donc absolument être évitées , en particulier pour les versions récentes d' ubuntu y compris la 22.04.** |
| |
| Lire : https://www.howtogeek.com/449691/what-is-swapiness-on-linux-and-how-to-change-it/</note> | Lire : https://www.howtogeek.com/449691/what-is-swapiness-on-linux-and-how-to-change-it/</note> |
| |
| **Par défaut, Ubuntu est réglé de cette façon :** \\ | On peut le vérifier l'usage du swap grâce à la commande : |
| <del>À partir de 40% d'utilisation de la RAM (**donc 60% de libre**), le noyau **peut** copier une partie de la RAM dans la swap.</del> \\ | |
| | |
| On peut le vérifier grâce à la commande : | |
| <code bash>cat /proc/sys/vm/swappiness</code> | <code bash>cat /proc/sys/vm/swappiness</code> |
| qui avec les réglages par défaut, répond "60". \\ | qui avec les réglages par défaut, répond "60". \\ |
| L'application de cette procédure avec une valeur faible du swappiness n'est pas conseillée : | L'application de cette procédure avec une valeur faible du swappiness n'est pas conseillée : |
| |
| --> sur un poste multi-utilisateurs, | -> sur un poste multi-utilisateurs, |
| |
| --> sur un ordinateur partageant une(des) ressource(s) au sein d'un réseau, | -> sur un ordinateur partageant une(des) ressource(s) au sein d'un réseau, |
| |
| --> en cas d'utilisation d'applications demandant d'importantes ressources mémoire (cf §2.1), | -> en cas d'utilisation d'applications demandant d'importantes ressources mémoire, |
| |
| La valeur de 60 définie par les concepteurs du système garantit un fonctionnement correct quelle que soit votre configuration. La valeur minimale conseillée par canonical //[source ?]// est swappiness=10. La valeur de 5 apporte un gain notable en vélocité, **surtout** sur les machines peu dotées en RAM. La valeur de zéro provoque le gel du système quand la RAM est utilisée à 100% et ne suffit plus. | La valeur de 60 définie par les concepteurs du système garantit un fonctionnement correct quelle que soit votre configuration. La valeur minimale conseillée par canonical //[source ?]// est swappiness=10. La valeur de 5 apporte un gain notable en vélocité, **surtout** sur les machines peu dotées en RAM. La valeur de zéro provoque le gel du système quand la RAM est utilisée à 100% et ne suffit plus. |
| <code bash>sudo swapoff -av | <code bash>sudo swapoff -av |
| sudo swapon -av</code> | sudo swapon -av</code> |
| |
| |
| |
| |
| ==== Utiliser la même partition d'échange entre plusieurs systèmes ==== | ==== Utiliser la même partition d'échange entre plusieurs systèmes ==== |
| Cependant dans ce cas, il ne sera pas possible d'hiberner plusieurs systèmes simultanément (la dernière hibernation écrasera les données de la précédente). | Cependant dans ce cas, il ne sera pas possible d'hiberner plusieurs systèmes simultanément (la dernière hibernation écrasera les données de la précédente). |
| |
| | ==== Vérifier les espaces d'échange activés et leur niveau utilisation ==== |
| |
| ==== Vérifier les espaces d'échange activés et leur niveau utilisation ==== | |
| **Plus d'un espace d'échange peuvent être affectés à votre système Ubuntu.** | **Plus d'un espace d'échange peuvent être affectés à votre système Ubuntu.** |
| De plus, chacun de ces espaces peut être utilisé de manière inégale. Pour connaître les espaces d'échange actuellement activés dans votre système Ubuntu et leur niveau d'utilisation, utilisez la commande ''swapon'' de la façon suivante : | De plus, chacun de ces espaces peut être utilisé de manière inégale. Pour connaître les espaces d'échange actuellement activés dans votre système Ubuntu et leur niveau d'utilisation, utilisez la commande ''swapon'' de la façon suivante : |
| Le terminal vous affiche le résultat de cette commande sous forme de tableau. Ce tableau retourne les informations suivantes : | Le terminal vous affiche le résultat de cette commande sous forme de tableau. Ce tableau retourne les informations suivantes : |
| * //Name// : le nom du fichier ou de la partition utilisée en tant qu'espace d'échange ; | * //Name// : le nom du fichier ou de la partition utilisée en tant qu'espace d'échange ; |
| * //Type// : le type d'espace d'échange (un fichier [//file//] ou une partition de disque dur [//partition//]) ; | * //Type// : le type d'espace d'échange (un fichier [//file//] ou une partition de [[:SSD]] [//partition//]) ; |
| * //Size// : la taille réservée à cet espace d'échange, en kibioctets ; | * //Size// : la taille réservée à cet espace d'échange, en kibioctets ; |
| * //Used// : la quantité d'espace utilisée dans cet espace d'échange, en kibioctets ; | * //Used// : la quantité d'espace utilisée dans cet espace d'échange, en kibioctets ; |
| <note tip>Le fichier d'échange doit être créé sur une [[:partitions|partition]] formatée **[[:ext4]]**</note> | <note tip>Le fichier d'échange doit être créé sur une [[:partitions|partition]] formatée **[[:ext4]]**</note> |
| |
| Les fichiers d'échange ont quelques avantages par rapport aux partitions d'échange. \\ | Les fichiers d'échange ont quelques avantages par rapport aux partitions d'échange.\\ |
| Pour commencer, leur ajout ou suppression n'a pas d'impact sur la table des partitions du disque dur, ce qui limite les possibles pertes de données liées à la modification //a posteriori// du système de partitions d'un disque dur. Par conséquent, il est aisé d'attribuer à la volée plus ou moins d'espace d'échange selon les besoins, qu'ils soient temporaires ou non. | Pour commencer, leur ajout ou suppression n'a pas d'impact sur la table des partitions du [[:SSD]], ce qui limite les possibles pertes de données liées à la modification //a posteriori// du système de partitions d'un [[:SSD]]. Par conséquent, il est aisé d'attribuer à la volée plus ou moins d'espace d'échange selon les besoins, qu'ils soient temporaires ou non.\\ |
| Enfin, même s'ils sont stockés dans un système de fichiers, les fichiers d'échange sont exploités directement par le noyau Linux; l'utilisation d'un espace d'échange, sous forme de partition ou de fichier, devrait être identique quant aux performances. | Enfin, même s'ils sont stockés en [[:système de fichiers]], les fichiers d'échange sont exploités directement par le noyau Linux; l'utilisation d'un espace d'échange, sous forme de partition ou de fichier, devrait être identique quant aux performances. |
| |
| **Pour créer un fichier d'échange :** | **Pour créer un fichier d'échange :** |
| </file> | </file> |
| |
| <note tip>Pour la création d'un fichier swap sur un HDD qui est monté sur un SDD (par exemple sous ''/home''), créez le fichier swap sous le point de montage (par exemple ''/home/file.swap'') et assurez vous que dans le fichier ''/etc/fstab'', la ligne concernant le swapfile se trouve après la ligne qui indique le montage du disque HDD.</note> | <note tip>Pour la création d'un fichier swap sur un HDD qui est monté sur un SDD (par exemple sous ''/home''), créez le fichier swap sous le point de montage (par exemple ''/home/file.swap'') et assurez vous que dans le fichier ''/etc/fstab'', la ligne concernant le swapfile se trouve après la ligne qui indique le montage du [[:SSD]].</note> |
| |
| **Pour supprimer un fichier d'échange :** | **Pour supprimer un fichier d'échange :** |
| ==== Modifier la ou les partitions d'échange ==== | ==== Modifier la ou les partitions d'échange ==== |
| |
| <note important>__Modifier les partitions après l'installation est toujours une opération risquée__. Assurez-vous d'avoir sauvegardé toutes vos données sur un autre support au préalable.</note> | <note important>Modifier les partitions après l'installation est toujours une opération risquée. Assurez-vous d'avoir sauvegardé toutes vos données sur un autre support au préalable.</note> |
| |
| <note idée>Si vous avez __besoin d'augmenter la taille de votre swap après avoir installé le système__, vous prendrez beaucoup moins de risque en créant un fichier de swap plutôt qu'en modifiant le partitionnement de vos disques. LVM est aussi une alternative très souple. \\ | <note idée>Si vous avez besoin d'augmenter la taille de votre swap après avoir installé le système, vous prendrez beaucoup moins de risque en créant un fichier de swap plutôt qu'en modifiant le partitionnement des supports. LVM est aussi une alternative très souple. \\ |
| \\ | \\ |
| Vous pouvez aussi __installer **[[zRam]]** pour optimiser l'utilisation de votre swap__ qui crée des « compartiments » dans la RAM où il compressera les éléments « statiques », libérant d'autant la partie plus « dynamique ». \\ | Vous pouvez aussi installer **[[zRam]]** pour optimiser l'utilisation de votre swap qui crée des « compartiments » dans la RAM où il compressera les éléments « statiques », libérant d'autant la partie plus « dynamique ». \\ |
| **Zram n'augmente pas la taille de la RAM** et n'empêche pas l'hibernation. Par contre **l'hibernation requiert une taille de swap au moins égale à la RAM** puisqu'elle consiste à copier le contenu de la RAM dans la swap ( fichier ou partition ).</note> | **Zram n'augmente pas la taille de la RAM** et n'empêche pas l'hibernation. Par contre **l'hibernation requiert une taille de swap au moins égale à la RAM** puisqu'elle consiste à copier le contenu de la RAM dans la swap ( fichier ou partition ).</note> |
| |
| === Outils en ligne de commande === | === Outils en ligne de commande === |
| |
| Il existe plusieurs outils en ligne de commande pour gérer vos partitions ; les plus connus étant **fdisk** et **cfdisk**. \\ | Il existe plusieurs outils en ligne de commande pour gérer vos partitions ; les plus connus étant ''fdisk'' et ''cfdisk''. |
| Ces outils s'utilisent avec les mêmes précautions et restrictions que celles indiquées ci-dessus pour Gparted. | |
| | Ces outils s'utilisent avec les mêmes précautions et restrictions que celles indiquées ci-dessus pour [[:GParted]]. |
| |
| ==== Activer/Désactiver l'utilisation du swap ==== | ==== Activer/Désactiver l'utilisation du swap ==== |
| <note>L'UUID de la partition peut-être réécrite en employant la commande **mkswap**: | <note>L'UUID de la partition peut-être réécrite en employant la commande **mkswap**: |
| <code bash>sudo mkswap -U <l'UUID desirée> /dev/<votre partition></code></note> | <code bash>sudo mkswap -U <l'UUID desirée> /dev/<votre partition></code></note> |
| |
| |
| <note important> | <note important> |
| La page anglophone [[https://help.ubuntu.com/community/SwapFaq#How_do_I_add_more_swap.3F|How to add more SWAP]] {Comment augmenter la taille du SWAP} donne une version légèrement différente de la procédure pour définir une partition comme partition d'échange. \\ | La page anglophone //[[https://help.ubuntu.com/community/SwapFaq#How_do_I_add_more_swap.3F|How to add more SWAP]]// (//Comment augmenter la taille du SWAP//) donne une version légèrement différente de la procédure pour définir une partition comme partition d'échange. |
| En particulier, elle conseille de vérifier aussi le fichier de paramètres de grub (**/etc/default/grub**) pour qu'il contienne la ligne : | |
| | En particulier, elle conseille de vérifier aussi le fichier de paramètres de [[:grub-pc|GRUB]] (''/etc/default/grub'') pour qu'il contienne la ligne : |
| <file bash /etc/default/grub> | <file bash /etc/default/grub> |
| GRUB_CMDLINE_LINUX="resume=UUID=<votre_uuid>" | GRUB_CMDLINE_LINUX="resume=UUID=<votre_uuid>" |
| </file> | </file></note> |
| Sur mon système (11.04 32 bits) j'ai dû modifier cette ligne (ainsi que /etc/initramfs-tools/conf.d/resume) et actualiser grub (comme indiqué dans la doc citée), avant de réactualiser initramfs, pour que l'hibernation fonctionne. \\ | |
| Petit détail cependant : mon deuxième //sudo update-initramfs// n'avait pas comme option //-k $(uname -r)//, mais d'après //man update-initramfs// je pense que cela ne devrait pas être la source de la différence de comportement. | |
| </note> | |
| | |
| ==== Optimiser son espace d'échange (avancé) ==== | |
| Puisque l'espace d'échange se trouve dans le disque dur, ceci peut causer quelques problèmes de performances dans un système l'utilisant massivement, car le système peut essayer de lire et écrire à la fois des pages mémoire dans l'espace d'échange et des fichiers situés ailleurs dans le disque dur. Une manière de réduire cet effet de compétition d'accès aux ressources du disque dur consiste à fractionner l'espace d'échange sur plusieurs disques durs physiques. Ainsi, l'espace d'échange étant partagé entre plusieurs périphériques, la compétition pour l'accès aux ressources est réduite -- voire éliminée. | |
| |
| ==== Optimiser son espace d'échange (avancé mais très simple) avec ZRAM ==== | ==== Optimiser son espace d'échange (avancé mais très simple) avec ZRAM ==== |
| | |
| [[:zRAM]] permet de compresser la RAM si besoin, afin d'éviter/retarder le swap disque (car le swap disque est de nos jours très lent par rapport à la vitesse de traitement en RAM, même sur les anciennes machines avec peu de RAM le bénéfice est généralement visible) | [[:zRAM]] permet de compresser la RAM si besoin, afin d'éviter/retarder le swap disque (car le swap disque est de nos jours très lent par rapport à la vitesse de traitement en RAM, même sur les anciennes machines avec peu de RAM le bénéfice est généralement visible) |
| |
| |
| |
| |
| |
| ==== Une partition swap chiffrée ==== | ==== Une partition swap chiffrée ==== |
| | |
| Il est possible d'encrypter sa partition swap. Il semblerait que cette option s'active automatiquement dès lors que l'utilisateur choisit de chiffrer sa partition home à l'installation, ce qui est recommandé. | Il est possible d'encrypter sa partition swap. Il semblerait que cette option s'active automatiquement dès lors que l'utilisateur choisit de chiffrer sa partition home à l'installation, ce qui est recommandé. |
| | |
| === Créer la partition swap === | === Créer la partition swap === |
| | |
| * Si la partition swap existe déjà, passer directement à l'étape suivante. | * Si la partition swap existe déjà, passer directement à l'étape suivante. |
| <code> | <code> |
| $ sudo mkswap /dev/sdaX | sudo mkswap /dev/sdaX |
| | </code> |
| | retourne : |
| | <code> |
| Setting up swapspace version 1, size = 4194300 KiB | Setting up swapspace version 1, size = 4194300 KiB |
| no label, UUID=9da9cf5e-2ac7-95b9-6156-a0ecffef2e99 | no label, UUID=9da9cf5e-2ac7-95b9-6156-a0ecffef2e99 |
| $ sudo swapon /dev/sdaX | |
| </code> | </code> |
| === Chiffrement === | |
| * Exécuter ensuite le script ecryptfs-setup-swap (inclus dans le paquet ecryptfs-utils) : | |
| <code> | <code> |
| $ sudo ecryptfs-setup-swap | sudo swapon /dev/sdaX |
| | </code> |
| | |
| | === Chiffrement === |
| |
| WARNING: | * Exécuter ensuite le script ''ecryptfs-setup-swap'' (inclus dans le paquet ''[[apt>ecryptfs-utils]]'') :<code>sudo ecryptfs-setup-swap</code>retourne :<code>WARNING: |
| An encrypted swap is required to help ensure that encrypted files are not leaked | An encrypted swap is required to help ensure that encrypted files are not leaked |
| to disk in an unencrypted format. | to disk in an unencrypted format. |
| * cryptswap1 (started)... [ OK ] | * cryptswap1 (started)... [ OK ] |
| INFO: Successfully setup encrypted swap! | INFO: Successfully setup encrypted swap! |
| </code> | </code>Le script effectue la modification automatique des fichiers crypttab and fstab. |
| Le script effectue la modification automatique des fichiers crypttab and fstab. | * Pour vérifier le résultat :<code> |
| | grep -F "/dev/sdaX" /etc/crypttab |
| | cryptswap1 /dev/sdaX /dev/urandom swap,cipher=aes-cbc-essiv:sha256 |
| | grep -F "cryptswap1" /etc/fstab |
| | /dev/mapper/cryptswap1 none swap sw 0 0</code> |
| |
| * Pour vérifier le résultat : | |
| <code> | |
| $ grep -F "/dev/sdaX" /etc/crypttab | |
| cryptswap1 /dev/sdaX /dev/urandom swap,cipher=aes-cbc-essiv:sha256 | |
| $ grep -F "cryptswap1" /etc/fstab | |
| /dev/mapper/cryptswap1 none swap sw 0 0 | |
| </code> | |
| === Activer et désactiver à volonté === | === Activer et désactiver à volonté === |
| | |
| Les lignes qui suivent permettent de basculer d'une swap normale à une swap cryptée, et vice-versa. | Les lignes qui suivent permettent de basculer d'une swap normale à une swap cryptée, et vice-versa. |
| |
| == Activation == | == Activation == |
| |
| $ sudo ecryptfs-setup-swap | sudo ecryptfs-setup-swap |
| |
| Difficile de faire plus simple. | Difficile de faire plus simple. |
| | |
| == Désactivation == | == Désactivation == |
| La démarche est un peu plus complexe. Elle nécessite de désactiver la swap, de supprimer la couche ecryptfs, de reformater la partition en mode swap ordinaire puis de l'activer (pour mémoire fdisk -l ou blkid vous permettront de retrouver le numéro de la partition qui est du type /dev/sdaN; N étant le numéro de la partition). | |
| | La démarche est un peu plus complexe. Elle nécessite de désactiver la swap, de supprimer la couche ecryptfs, de reformater la partition en mode swap ordinaire puis de l'activer (pour mémoire ''fdisk -l'' ou ''blkid'' vous permettront de retrouver le numéro de la partition qui est du type ''/dev/sdaN'' ; ''N'' étant le numéro de la partition). |
| |
| <code> | <code> |
| $ sudo swapoff -a | sudo swapoff -a |
| $ sudo cryptsetup remove /dev/mapper/cryptswap1 | sudo cryptsetup remove /dev/mapper/cryptswap1 |
| $ sudo vim /etc/crypttab | sudo vim /etc/crypttab |
| </code> | </code> |
| Dans votre éditeur de texte préféré, supprimer la ligne /dev/sdaN puis enregister. | Dans votre éditeur de texte préféré, supprimer la ligne ''/dev/sdaN'' puis enregister. |
| <code> | <code> |
| sudo /sbin/mkswap /dev/sdaN | sudo /sbin/mkswap /dev/sdaN |
| sudo vim /etc/fstab | sudo vim /etc/fstab |
| </code> | </code> |
| À nouveau dans votre éditeur de texte préféré, supprimer la ligne /dev/mapper/cryptswap1 avec /dev/sdaN puis enregistrer. | À nouveau dans votre éditeur de texte préféré, supprimer la ligne ''/dev/mapper/cryptswap1'' avec ''/dev/sdaN'' puis enregistrer. |
| Redémarrer pour activer la modification. | Redémarrer pour activer la modification. |
| |
| ===== Voir aussi ===== | ===== Voir aussi ===== |
| |
| * **(en)** Official Ubuntu Forum ; sujet : [[https://help.ubuntu.com/community/SwapFaq|Questions fréquentes concernant la SWAP]] | * **(//en//)** Official Ubuntu Forum ; sujet : [[https://help.ubuntu.com/community/SwapFaq|Questions fréquentes concernant la SWAP]] |
| * **(en)** [[http://www.cyberciti.biz/faq/linux-add-a-swap-file-howto/|Linux add a swap file howto]] — { Comment ajouter un fichier d'échange sous Linux } sur le blog Nix Craft — Date : 18 mai 2006 ; mise à jour : 3 mai 2017. | * **(//en//)** [[http://www.cyberciti.biz/faq/linux-add-a-swap-file-howto/|Linux add a swap file howto]] -- //Comment ajouter un fichier d'échange sous Linux// sur le blog Nix Craft |
| * **Vidéo**: [[https://www.youtube.com/watch?v=NCb4B0DAErc|Comprendre l’intérêt d'une RAM]] | * **Vidéo** : [[https://www.youtube.com/watch?v=NCb4B0DAErc|Comprendre l’intérêt d'une RAM]] |
| * **(en)** [[https://blog.sleeplessbeastie.eu/2012/05/23/ubuntu-how-to-encrypt-swap-partition/|la source pour le chiffrement de la swap]] | * **(//en//)** [[https://blog.sleeplessbeastie.eu/2012/05/23/ubuntu-how-to-encrypt-swap-partition/|la source pour le chiffrement de la swap]] |
| |
| ---- | ---- |
| | //[[:Contributeurs]] : foustala, laurentb, krop, huit_six, claudiux, SeTtHe, [[:utilisateurs:fnx]], [[:utilisateurs:eagle08]], [[:utilisateurs:krodelabestiole]].// |
| |
| //Contributeurs : foustala, laurentb, krop, huit_six, claudiux, SeTtHe, [[utilisateurs:fnx]], [[utilisateurs:eagle08]], \\ [[https://help.ubuntu.com/community/SwapFaq|les contributeurs de la documentation d'Ubuntu]] | |
| // | |
| |
| ---- | |