Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
swap [Le 03/09/2017, 10:11]
malbo [Espace d'échange (swap)] notes compactées -
swap [Le 29/10/2023, 15:18] (Version actuelle)
ZavezPasVu [Activer/Désactiver l'utilisation du swap]
Ligne 1: Ligne 1:
-{{tag>​administration système}}+''​Code « machine à écrire »''/​show{{tag>​administration système}}
  
 ---- ----
Ligne 10: Ligne 10:
 Le présent document se veut être une présentation succincte de ce qu'est l'​espace d'​échange dans Ubuntu et des méthodes pour créer, modifier et supprimer cet espace d'​échange. Le présent document se veut être une présentation succincte de ce qu'est l'​espace d'​échange dans Ubuntu et des méthodes pour créer, modifier et supprimer cet espace d'​échange.
  
-<note important>​Depuis ​la Ubuntu 17.04, ​la swap n'est plus une partition mais un fichier situé dans /swapfile **sauf si une ancienne partition swap est détectée à l'​installation** : dans ce cas, celle-ci est intégrée au fichier /etc/fstab et le fichier /swapfile n'est pas créé. Si une ancienne partition swap existe mais qu'on ne veut pas l'​utiliser,​ il faut configurer cette partition swap à l'​installation : cliquer sur la partition swap, et choisir ne pas utiliser cette partition, dans le menu déroulant. Dans ce dernier cas, le fichier /swapfile sera créé. </​note>​+<note important>​Depuis Ubuntu 17.04, ​le swap n'est plus une partition mais un fichier situé dans /swapfile **sauf si une ancienne partition swap est détectée à l'​installation** : dans ce cas, celle-ci est intégrée au fichier /etc/fstab et le fichier /swapfile n'est pas créé. Si une ancienne partition swap existe mais qu'on ne veut pas l'​utiliser,​ il faut configurer cette partition swap à l'​installation : cliquer sur la partition swap, et choisir ne pas utiliser cette partition, dans le menu déroulant. Dans ce dernier cas, le fichier /swapfile sera créé. </​note>​
  
 ===== Qu'​est-ce qu'un espace d'​échange ? ===== ===== Qu'​est-ce qu'un espace d'​échange ? =====
Ligne 23: Ligne 23:
 ===== 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 Gio 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 ; 
-  * **Votre ordinateur dispose de 1 Gio de RAM a 4  ​Gio ** Allouez un espace d'​échange de 1× à 1,5× la taille de votre RAM ; +  * **Votre ordinateur dispose de 1 Go de RAM a 4  ​Go ** Allouez un espace d'​échange de 1× à 1,5× la taille de votre RAM ; 
-  * **Votre ordinateur dispose de moins de 1 Gio de RAM ** Allouez un espace d'​échange de 1,5× à 2× la taille de votre RAM.+  * **Votre ordinateur dispose de moins de 1 Go de RAM ** Allouez un espace d'​échange de 1,5× à 2× 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 dans votre disque dur. 
-  * **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 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.)) 
-  * **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 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.
  
  
Ligne 36: Ligne 37:
 ===== 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.</​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>​
  
-==== Partager ​une partition ​SWAP entre plusieurs systèmes ====+====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>​ 
 + 
 +=== Réglage permanent dans Ubuntu 14.04 à 18.04 (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 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.** 
 + 
 +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 :** \\ 
 +<​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>​ 
 +qui avec les réglages par défaut, répond "​60"​. \\ 
 + 
 +===Régler le déclenchement du fichier d'​échange dès que la mémoire est utilisée à 95%=== 
 + 
 +L'​application de cette procédure avec une valeur faible du swappiness n'est pas conseillée : 
 + 
 +--> sur un poste multi-utilisateurs,​ 
 + 
 +--> 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), 
 + 
 +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. 
 + 
 +Cette procédure crée un fichier **99-swappiness.conf** qui stocke vos réglages les rendant actifs au prochain redémarrage. 
 +  * ** //​vm.swappiness=5//​** ​ déclenche l'​utilisation de la swap quand il ne reste plus que 5% de RAM. 
 +  * ** //​vm.vfs_cache_pressure=50//​** ​ permet de garder plus de liens vers les fichiers en mémoire, pour accélérer l’accès aux fichiers. 
 +<code bash>​echo vm.swappiness=5 | sudo tee /​etc/​sysctl.d/​99-swappiness.conf</​code>​ 
 +<​code>​echo vm.vfs_cache_pressure=50 | sudo tee -a /​etc/​sysctl.d/​99-swappiness.conf 
 +sudo sysctl -p /​etc/​sysctl.d/​99-swappiness.conf</​code>​ 
 +Puis il faut demander une actualisation du service ( depuis ​ une mise à jour du noyau  20.04) 
 +<​code>​sudo service procps restart</​code>​  
 + 
 +Il faut désactiver et réactiver l'​utilisation du fichier d'​échange pour que les réglages deviennent actifs immédiatement : 
 +<code bash>​sudo swapoff -av 
 +sudo swapon -av</​code>​ \\ 
 + 
 +===Pour changer ce réglage temporairement,​ utilisez la commande ci-dessous :=== 
 +(Dans cet exemple, le réglage passe à 80% de RAM utilisée) 
 +<code bash>​sudo sysctl vm.swappiness=20</​code>​ 
 + 
 +Ensuite désactivez puis réactivez la swap pour que les changements deviennent actifs : 
 +<code bash>​sudo swapoff -av 
 +sudo swapon -av</​code>​ 
 + 
 + 
 + 
 + 
 +==== Utiliser la même partition ​d'​échange ​entre plusieurs systèmes ====
  
 Il est possible d'​utiliser la même partition SWAP pour plusieurs distributions Linux installées en multi-boot sur le même PC. Il est possible d'​utiliser la même partition SWAP pour plusieurs distributions Linux installées en multi-boot sur le même PC.
-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édentes).+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. 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 :+**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 :
 <code bash>​swapon -s</​code>​ <code bash>​swapon -s</​code>​
  
Ligne 51: Ligne 108:
   * //​Filename//​ : le nom du fichier ou de la partition utilisée en tant qu'​espace d'​échange ;   * //​Filename//​ : 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 disque dur [//​partition//​]) ;
-  * //Size// : la taille réservée à cet espace d'​échange,​ en octets ​+  * //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 octets ​;+  * //Used// : la quantité d'​espace utilisée dans cet espace d'​échange,​ en kibioctets ​;
   * //​Priority//​ : la priorité d'​utilisation de cet espace d'​échange. Un espace ayant une plus haute priorité sera utilisé en premier.   * //​Priority//​ : la priorité d'​utilisation de cet espace d'​échange. Un espace ayant une plus haute priorité sera utilisé en premier.
  
 Voici un exemple du retour de cette commande : Voici un exemple du retour de cette commande :
-<code>​utilisateur@Nomdel'​Ordinateur:​~$ swapon -s+<box 60% classes orange | Commande : swapon -s> 
 +<file>​utilisateur@Nomdel'​Ordinateur:​~$ swapon -s
 Filename Type Size Used Priority Filename Type Size Used Priority
 /​dev/​sda3 ​                              ​partition 5241852 0 -1 /​dev/​sda3 ​                              ​partition 5241852 0 -1
-/​file.swap ​                             file 524284 0 -2</​code>+/​file.swap ​                             file 524284 0 -2 
 +</file> 
 +</​box|Terminal>​ 
 + 
 +**NB** : l'​option "​-s"​ est obsolète. Utiliser "​-​-show"​ qui affiche un résultat mieux formaté. Exemple :
  
 +  [user@host~} swapon --show
 +  NAME      TYPE      SIZE   USED PRIO
 +  /dev/sda5 partition 2,3G 365,​9M ​  -2
 \\ \\
  
 ==== Créer un fichier d'​échange ==== ==== Créer un fichier d'​échange ====
-Afin d'​ajouter davantage d'​espace d'​échange utilisable par votre système Ubuntu, nous vous recommandons la création de fichiers d'​échange.+Afin d'​ajouter davantage d'​espace d'​échange utilisable par votre système Ubuntu, nous vous recommandons la création de fichiers d'​échange ​ou bien si vous voulez tout simplement remplacer une partition swap par un fichier. 
 + 
 +<note tip>Le fichier d'​échange doit être créé dans une partition formatée **ext**n </​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 à 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 disque dur, ce qui limite les possibles pertes de données liées à la modification à 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.
 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 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.
- 
-Cependant, un fichier d'​échange __ne__ peut __pas__ être utilisé dans le cadre d'une mise en veille prolongée (hibernation). Pour cette utilisation,​ il vous faudra attribuer l'​espace d'​échange sous forme de partitions. 
  
 **Pour créer un fichier d'​échange :** **Pour créer un fichier d'​échange :**
Ligne 94: Ligne 159:
     * Par exemple, pour activer la prise en charge de l'​espace d'​échange sur le fichier ''​file.swap''​ situé à la racine d'​Ubuntu,​ on utilisera la commande suivante :      * Par exemple, pour activer la prise en charge de l'​espace d'​échange sur le fichier ''​file.swap''​ situé à la racine d'​Ubuntu,​ on utilisera la commande suivante : 
 <code bash>​sudo swapon /​file.swap</​code>​ <code bash>​sudo swapon /​file.swap</​code>​
-  - Rendez disponible le fichier d'​échange à chaque démarrage en éditant le fichier /etc/fstab et lui ajoutant : +  - Rendez disponible le fichier d'​échange à chaque démarrage en éditant le fichier ​''​/etc/fstab'' ​et lui ajoutant : 
 <file bash /​etc/​fstab>​ <file bash /​etc/​fstab>​
 #Entry for /swapfile : #Entry for /swapfile :
-/file.swap none swap defaults ​0 0+/file.swap none swap sw 0 0
 </​file>​ </​file>​
  
 +Et commentez la ligne qui concerne l'​ancienne partition swap que vous pourrez désormais supprimer.
  
-\\ +  - Commentez l'​ancienne entrée de la partition swap du fichier ''/​etc/​initramfs-tools/​conf.d/​resume''​ :  
 +<file bash /​etc/​initramfs-tools/​conf.d/​resume>​ 
 +#​RESUME=UUID=1e1ebf39-2de7-4181-a504-4e317fd8db9c 
 +</​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>​
 +
 +**Pour supprimer un fichier d'​échange :**
 +  - Désactivez la prise en charge du fichier d'​échange. Utilisez la commande ''​swapoff''​ : 
 +<code bash>​sudo swapoff <nom du fichier></​code>​
 +    * Par exemple, pour désactiver la prise en charge de l'​espace d'​échange sur le fichier ''​file.swap''​ situé à la racine d'​Ubuntu,​ on utilisera la commande suivante : 
 +<code bash>​sudo swapoff /​file.swap</​code>​
 +  - Supprimer le fichier d'​échange : 
 +<code bash>​sudo rm /​file.swap</​code>​
 +  - Enlever la prise en charge au démarrage en enlevant les lignes dans fstab, en éditant le fichier /etc/fstab : 
 +<file bash /​etc/​fstab>​
 +#Entry for /swapfile :
 +/file.swap none swap sw 0 0
 +</​file>​
 ==== Modifier la ou les partitions d'​échange ==== ==== Modifier la ou les partitions d'​échange ====
  
Ligne 109: Ligne 192:
 <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 de vos disques. LVM est aussi une alternative très souple. \\
 \\ \\
-Vous pouvez aussi __installer **[[zRam]]** pour augmenter virtuellement la taille ​de votre swap__ ​en compressant ​la RAM non utilisée. \\ +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 ». \\ 
-(**Ne fonctionne ​pas si vous voulez augmenter ​la taille ​du Swap pour permettre ​l'​hibernation**)</​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 avec interface graphique === === Outils avec interface graphique ===
Ligne 139: Ligne 222:
  
 <note tip> <note tip>
-Si votre swap est utilisé alors qu'il y a encore de la place dans la RAM, il est possible de le vider avec les deux commandes ci-dessous ​:+Si votre swap est utilisé alors qu'il y a encore de la place dans la RAM, il est possible de le vider en le désactivant ​avec la commande ​:
 <​code>​ <​code>​
 sudo swapoff -a sudo swapoff -a
 +</​code>​
 +On peut ensuite réactiver le swap avec la commande :
 +<​code>​
 sudo swapon -a sudo swapon -a
 </​code>​ </​code>​
 +Ainsi le swap sera vidé mais toujours disponible en cas de besoin.
 </​note>​ </​note>​
  
Ligne 154: Ligne 241:
 </​code>​ </​code>​
  
-Vous pouvez ensuite activer la partition d'​échange avec : +Vous pouvez ensuite activer la partition d'​échange avec :
 <code bash> <code bash>
 sudo swapon /dev/sda6 sudo swapon /dev/sda6
Ligne 165: Ligne 252:
 </​file>​ </​file>​
  
-Et afin que vos mises en veille et hibernations se produisent correctement,​ vous devrez de même modifier le fichier **/​etc/​initramfs-tools/​conf.d/​resume** pour y renseigner le bon UUID : +Et afin que vos mises en veille et hibernations se produisent correctement,​ vous devrez de même modifier le fichier **/​etc/​initramfs-tools/​conf.d/​resume** pour y renseigner le bon UUID :
 <file bash /​etc/​initramfs-tools/​conf.d/​resume>​ <file bash /​etc/​initramfs-tools/​conf.d/​resume>​
 RESUME=UUID=db245df9-851d-695b-a3f7-d40f039a6cc6 RESUME=UUID=db245df9-851d-695b-a3f7-d40f039a6cc6
Ligne 175: Ligne 262:
 Il vaut mieux, après cela, redémarrer la machine. Il vaut mieux, après cela, redémarrer la machine.
  
-<​note>​L'​UUID de la partition a dû être affiché par la commande **mkswap**, sinon vous pouvez l'​obtenir avec la commande ​+<​note>​L'​UUID de la partition a dû être affiché par la commande **mkswap**, sinon vous pouvez l'​obtenir avec la commande
 <code bash>​sudo blkid /​dev/​sda6</​code></​note>​ <code bash>​sudo blkid /​dev/​sda6</​code></​note>​
  
-<​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>​
  
Ligne 201: Ligne 288:
  
  
-==== Régler le déclenchement du swap ==== 
  
-<note tip>​Personnellement,​ pour ma vieille tour (1,4Ghz pour 512 Mio de RAM), j'ai réglé le déclenchement de la swap à 5% de RAM libreLa copie de la RAM vers la swap consomme des ressources. Plus cette copie se déclenchera tard moins les ressources seront utilisées.</note>+==== 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é. 
 +=== Créer ​la partition swap === 
 +  * Si la partition ​swap existe déjà, passer directement à l'​étape suivante. 
 +<code> 
 +$ sudo mkswap ​/dev/sdaX 
 +Setting up swapspace version 1, size = 4194300 KiB 
 +no label, UUID=9da9cf5e-2ac7-95b9-6156-a0ecffef2e99 
 +$ sudo swapon /dev/sdaX 
 +</code> 
 +=== Chiffrement === 
 +* Exécuter ensuite le script ecryptfs-setup-swap (inclus dans le paquet ecryptfs-utils) : 
 +<​code>​ 
 +$ sudo ecryptfs-setup-swap ​
  
-=== Réglage permanent dans Ubuntu 14.04 et 16.04 ( Systemd )=== +WARNING: 
- +An encrypted ​swap is required to help ensure that encrypted files are not leaked 
-Régler le déclenchement du swap dès que la mémoire est utilisée a 95%. +to disk in an unencrypted format.
- +
-  * Remplacer le 5 dans la ligne de commande ​ **//​vm.swappiness=5//​** ​ par 10 pour déclencher l'​utilisation du swap des 90% d'​utilisation de la mémoire. +
-  * ** //​vm.vfs_cache_pressure=50//​** ​ permet de garder plus de liens vers les fichiers en mémoire, pour accélérer l’accès aux fichiers. +
- +
- +
- +
-<code bash>​echo vm.swappiness=5 | sudo tee /​etc/​sysctl.d/​99-swappiness.conf +
-echo vm.vfs_cache_pressure=50 | sudo tee -a /​etc/​sysctl.d/​99-swappiness.conf +
-sudo sysctl -p /​etc/​sysctl.d/​99-swappiness.conf</​code>​+
  
 +HOWEVER, THE SWAP ENCRYPTION CONFIGURATION PRODUCED BY THIS PROGRAM ​
 +WILL BREAK HIBERNATE/​RESUME ON THIS SYSTEM!
  
-=== Réglage dans Ubuntu 12.04 ===+NOTE: Your suspend/​resume capabilities will not be affected.
  
-Par défaut, Ubuntu est réglé de cette façon :  +Do you want to proceed with encrypting your swap? [y/N]: y
-À partir de 40% d'​utilisation de la RAM (**donc 60% de libre**), le noyau peut copier une partie de la ram dans la swap.+
  
-On peut le vérifier grâce à la commande ​: +INFOSetting up swap: [/dev/sdaX] 
-<code bash> + * Stopping remaining crypto disks... ​                                    
-cat /proc/sys/​vm/​swappiness+ * cryptswap1 (stopped)... ​                                               [ OK ] 
 + * Starting remaining crypto disks... ​                                    
 + * cryptswap1 (starting).. 
 + * cryptswap1 (started)... ​                                               [ OK ] 
 +INFO: Successfully setup encrypted swap!
 </​code>​ </​code>​
-qui (par défaut, donc) répond "​60"​.\\ \\  +Le script effectue ​la modification automatique des fichiers crypttab and fstab.
-Pour changer ce réglage, utilisez ​la commande ci-dessous :+
  
-(Dans cet exemple, ​le réglage passe à 20% de RAM inutilisée) +* Pour vérifier ​le résultat : 
-<​code ​bash+<​code>​ 
-sudo sysctl vm.swappiness=20+$ 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>​ </​code>​
 +=== Activer et désactiver à volonté ===
 +Les lignes qui suivent permettent de basculer d'une swap normale à une swap cryptée, et vice-versa.
  
-Ensuite désactivez puis réactivez la swap pour que les changements deviennent actifs : +== Activation ==
-<code bash> +
-sudo swapoff -av +
-</​code>​ +
-La réponse ressemble à : +
-<code bash> +
-swapoff sur /​dev/​ramzswap0 +
-swapoff sur /dev/sda6 +
-</​code>​ +
-Puis +
-<code bash> +
-sudo swapon -av +
-</​code>​ +
-La réponse ressemble à : +
-<code bash> +
-swapon sur /dev/sda6 +
-</​code>​+
  
-=== Réglage permanent dans Ubuntu 12.04 ===+  $ sudo ecryptfs-setup-swap
  
-Pour que ces changements deviennent permanents (à chaque démarrage),​ vous devez [[:​tutoriel:​comment_editer_un_fichier|éditer le fichier]] **/​etc/​sysctl.conf** et y ajouter la ligne suivante : +Difficile de faire plus simple
-<code bash>​vm.swappiness=20</​code>​ +== Désactivation == 
-ou en une seule fois en utilisant la commande: +La démarche est un peu plus complexeElle 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 bash>​echo vm.swappiness=20 | sudo tee -/etc/sysctl.conf</​code>​+
  
-<note tip+<code
-Valeur de swappiness conseillée : +$ sudo swapoff -a 
-  * 2 à 3 Gio de RAM = 5 à 10 +$ sudo cryptsetup remove /​dev/​mapper/​cryptswap1 
-  * PC avec SSD rapides = 15 à 20 +$ sudo vim /​etc/​crypttab 
-  * Anciennes machines, disques lents = 2 à 5. +</code
-</note+Dans votre éditeur ​de texte préférésupprimer la ligne /dev/sdaN puis enregister
-<note warning>​Un swappiness à zéro, quoique possible, est déconseillé car il peut geler la machine dans certaines conditions ​de surchargecf. [[https://forum.ubuntu-fr.org/​viewtopic.php?​id=1997443|cette discussion]]+<code> 
-</note+sudo /​sbin/​mkswap /dev/sdaN 
-<note+sudo swapon /dev/sdaN 
-Les SSD disposant d'un nombre limité ​de cycles d'​écritureil est déconseillé d'y loger une partition swap ou un fichier d'​échange (voir [[:​ssd_solid_state_drive#​la_partition_d_echange_swap|ici]]) ​+sudo vim /etc/fstab 
-</​note>​+</code
 +À 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.
  
 ===== Voir aussi ===== ===== Voir aussi =====
  
-  * [[https://​help.ubuntu.com/​community/​SwapFaq|Ubuntu Forum SwapFaq]] (en) +  * **(en)** Official Ubuntu Forum ; sujet : [[https://​help.ubuntu.com/​community/​SwapFaq|Questions fréquentes concernant la SWAP]] 
-  ​* [[http://​www.cyberciti.biz/​faq/​linux-add-a-swap-file-howto/​|Linux add a swap file howto]] ​(en)+  * **(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.
   * **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]]
  
 ---- ----
  
-//​Contributeurs : foustala, laurentb, krop, huit_six, claudiux, SeTtHe, [[utilisateurs:​fnx]],​ [[https://​help.ubuntu.com/​community/​SwapFaq|les contributeurs de la documentation d'​Ubuntu]]+//​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]]
 // //
  
 ---- ----
  • swap.1504426288.txt.gz
  • Dernière modification: Le 03/09/2017, 10:11
  • par malbo