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 04/11/2017, 14:25]
90.37.35.120 [Voir aussi]
swap [Le 25/06/2018, 18:53] (Version actuelle)
77.111.245.11 [Améliorer l'utilisation du fichier d'échange (swap)]
Ligne 16: Ligne 16:
  
 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. 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.
 +
 +<note important>​Les SSD disposent d'un nombre limité de cycles d'​écriture,​ il est déconseillé d'y loger une partition swap ou un fichier d'​échange (voir [[:​ssd_solid_state_drive#​la_partition_d_echange_swap|La partition d'​échange ou SWAP]]) .</​note>​
  
 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. 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.
Ligne 23: Ligne 25:
 ===== 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.
Ligne 36: Ligne 39:
 ===== 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 utiliation 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 )=== 
 +**Par défaut, Ubuntu est réglé de cette façon :** \\ 
 +À partir de 40% d'​utilisation de la RAM (**donc 60% de libre**), le noyau **peut**, si il en a besoin, copier ​une partie de la RAM dans la swap. \\ 
 +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 a 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), 
 + 
 +--> sur des ordinateurs disposant de peu de RAM. 
 + 
 +Contrairement à la valeur de 60% définie par les concepteurs du système qui garantit un fonctionnement correct quelque soit votre configuration,​ une faible valeur comme celle proposée ici ne repose sur rien de tangible. Il n'y a aucune garantie que votre ordinateur s'en trouve amélioré.Il convient donc de procéder avec une extrême prudence et par étape. La valeur minimale conseillé par canonical est swappiness=10. 
 + 
 +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>​ 
 +If 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 le même fichier 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.
Ligne 45: Ligne 92:
  
 ==== 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 204: Ligne 252:
  
  
-==== 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 libre. La 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é.
-=== Réglage permanent dans Ubuntu 14.04 et 16.04 ( Systemd )=== +
- +
-Régler le déclenchement du swap dès que la mémoire est utilisée a 95%. +
- +
-  * 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</​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>​ +
- +
- +
-=== Réglage dans Ubuntu 12.04 === +
- +
-Par défaut, Ubuntu est réglé de cette façon :  +
-À 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 : +
-<code bash> +
-cat /​proc/​sys/​vm/​swappiness +
-</​code>​ +
-qui (par défaut, donc) répond "​60"​.\\ \\  +
-Pour changer ce réglage, utilisez la commande ci-dessous : +
- +
-(Dans cet exemple, le réglage passe à 20% de RAM inutilisé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 +
-</​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 === +
- +
-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 : +
-<code bash>​vm.swappiness=20</​code>​ +
-ou en une seule fois en utilisant la commande: +
- <​code bash>​echo vm.swappiness=20 | sudo tee -a /​etc/​sysctl.conf</​code>​ +
- +
-<note tip> +
-Valeur de swappiness conseillée : +
-  * 2 à 3 Gio de RAM = 5 à 10 +
-  * PC avec SSD rapides = 15 à 20 +
-  * Anciennes machines, disques lents = 2 à 5. +
-</​note>​ +
-<note warning>​Paramétrer la commande ''​swappiness''​ à zéro, est tout à fait possible. \\ Toutefois, cette manipulation est déconseillée,​ car cela augmente fortement le risque de blocage total de la machine dans certaines conditions de surcharge. \\ cf. le fil de discussion [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=1997443|Plantage système inexpliqué]] — Date : 22 octobre 2016. +
-</​note>​ +
-<​note>​ +
-Les SSD disposant d'un nombre limité de cycles d'​écriture,​ il est déconseillé d'y loger une partition swap ou un fichier d'​échange (voir [[:​ssd_solid_state_drive#​la_partition_d_echange_swap|La partition d'​échange ou SWAP]]) . +
-</​note>​ +
- +
-==== Une partition swap crypté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 crypter ​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.
Ligne 286: Ligne 263:
 $ sudo swapon /dev/sdaX $ sudo swapon /dev/sdaX
 </​code>​ </​code>​
-Executer ​ensuite le script ecryptfs-setup-swap (inclus dans le paquet ecryptfs-utils) :+=== Chiffrement === 
 +Exécuter ​ensuite le script ecryptfs-setup-swap (inclus dans le paquet ecryptfs-utils) :
 <​code>​ <​code>​
 $ sudo ecryptfs-setup-swap ​ $ sudo ecryptfs-setup-swap ​
Ligne 309: Ligne 287:
 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 : * Pour vérifier le résultat :
 <​code>​ <​code>​
Ligne 317: Ligne 296:
 /​dev/​mapper/​cryptswap1 none swap sw 0 0 /​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.
 +
 +== Activation ==
 +<​code>​
 +$ sudo ecryptfs-setup-swap
 +</​code>​
 +Difficile de faire plus simple.
 +== 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).
 +
 +<​code>​
 +$ sudo swapoff -a
 +$ sudo cryptsetup remove /​dev/​mapper/​cryptswap1
 +$ sudo vim /​etc/​crypttab
 +</​code>​
 +Dans votre éditeur de texte préféré, supprimer la ligne /dev/sdaN puis enregister.
 +<​code>​
 +sudo /​sbin/​mkswap /dev/sdaN
 +sudo swapon /dev/sdaN
 +sudo vim /etc/fstab
 +</​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 =====
  
Ligne 323: Ligne 327:
   * **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 cryptage de la swap]]    * **(en)** [[https://​blog.sleeplessbeastie.eu/​2012/​05/​23/​ubuntu-how-to-encrypt-swap-partition/​|la source pour le cryptage de la swap]]
 +   * **(en)** [[https://​www.logilab.org/​blogentry/​29155|Activer et désactiver le cryptage de la swap]]
  
 ---- ----
  • swap.1509801900.txt.gz
  • Dernière modification: Le 04/11/2017, 14:25
  • par 90.37.35.120