Quelle est la taille d'une partition de swap nécessaire pour hiberner?


11

J'ai lu cette question , mais elle ne répond pas définitivement à ma question.

Si je veux que mon ordinateur puisse hiberner, dois-je avoir une partition de swap aussi grande que ma RAM, ou Ubuntu pourra-t-il judicieusement hiberner si la partition de swap peut s'adapter à la RAM actuellement utilisée ? Je suis sur le point d'installer Ubuntu sur un ordinateur avec beaucoup de RAM et un disque dur relativement petit, donc je ne veux pas utiliser plus d'espace disque que nécessaire.

Je voulais éviter de donner mes spécifications réelles pour garder cette question plus générale, mais je les donnerai si nécessaire.

Réponses:


9

Difficile à prévoir: votre échange doit s'adapter

  • ce qui est déjà dans l'échange lorsque vous hibernez
  • ce qui est dans la RAM lorsque vous hibernez, mais seulement la partie qui n'est pas un cache disque ou des tampons; l'image RAM est compressée si vous utilisezuswsusp
  • quelques structures de données du noyau

Vous ne pouvez donc pas hiberner même si votre swap est plus grand que votre RAM, car la plupart de votre swap est déjà utilisé. Et converti, vous pouvez hiberner avec succès avec un swap plus petit que la RAM, si vous n'en utilisez pas beaucoup à l'époque.

Si vous souhaitez éviter une partition d'échange de taille fixe car votre disque est très petit, vous pouvez opter pour un fichier d'échange à la place. Il est plus facile de redimensionner et l'hibernation vers un fichier d'échange est censée être prise en charge (je ne sais pas si cela fonctionne actuellement hors de la boîte, cela va et vient entre les versions d'Ubuntu; IIRC, il l'a fait en 9.10 mais il a dû être configuré en 10.10 ).


1
Le cache disque n'est pas compressé
psusi

1
la façon dont vous l'avez formulée donnait l'impression que vous disiez que le cache est compressé, pas l'image d'hibernation. Pour que l'image d'hibernation soit compressée, vous devez installer le package uswsusp. L'implémentation du noyau par défaut n'est pas compressée.
psusi

2

Cette question continue d'apparaître dans les requêtes courantes lors du changement de taille pour configurer la mise en veille prolongée. La réponse originale est correcte dans la mesure où elle peut varier considérablement en fonction de votre charge de travail, mais je ne pense pas que ce soit une réponse complète.

La réponse complète est que vous pouvez dire combien vous avez besoin en fonction de votre charge de travail spécifique, puis vous pouvez dimensionner de manière appropriée.

L'outil de base est les messages du noyau pendant la mise en veille prolongée. Vous voulez voir combien de mémoire a été utilisée avec cette commande:

sudo cat /var/log/syslog | grep 'PM:'|grep kbytes

Vous devriez obtenir une sortie comme:

Aug 14 11:03:20 mike-XPS-15-9570 kernel: [17594.823584] PM: Allocated 11809876 kbytes in 2.65 seconds (4456.55 MB/s)
Aug 14 11:03:20 mike-XPS-15-9570 kernel: [17605.365657] PM: Wrote 11787284 kbytes in 9.09 seconds (1296.73 MB/s)

Ensuite, la stratégie consiste à exécuter votre charge maximale et à déclencher une mise en veille prolongée, voir l'espace de swap requis, éventuellement ajouter une marge de sécurité, puis créer votre espace de swap de cette taille.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.