J'ai lu cette question , mais cela ne répond pas définitivement à ma question.
Si je veux que mon ordinateur puisse passer en hibernation, dois-je disposer d'une partition de swap de la taille de la RAM ou Ubuntu pourra-t-il sagement mettre en veille si la partition de swap est compatible avec la partition actuelle -in-use RAM? Je suis sur le point d'installer Ubuntu sur un ordinateur disposant de beaucoup de RAM et d'un disque dur relativement petit. Je ne souhaite donc pas utiliser plus d'espace disque que nécessaire.
Je voulais éviter de donner mes spécifications actuelles afin de garder cette question plus générale, bien que je les donne si nécessaire.
Difficile à prévoir: votre échange doit être adapté
uswsusp
Par conséquent, vous pouvez ne pas hiberner même si votre échange est plus volumineux que votre RAM, car la plupart de vos échanges sont déjà utilisés. Et convertly, vous pouvez hiberner avec succès avec un échange 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 utiliser un fichier d'échange à la place. Il est plus facile de redimensionner, et l'hibernation vers un fichier d'échange est supposée être prise en charge (je ne suis pas sûr que cela fonctionne actuellement, cela s'est fait de temps en temps entre les versions d'Ubuntu; IIRC l'a fait dans 9.10 mais cela devait être configuré en 10.10 ).
Cette question continue de faire surface dans les requêtes courantes lors du dimensionnement d’un swap en vue de la mise en veille prolongée. La réponse initiale est correcte en ce sens que cela pourrait varier incroyablement 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 déterminer la quantité dont vous avez besoin en fonction de votre charge de travail spécifique, puis que vous pouvez dimensionner de manière appropriée.
L'outil de base est les messages du noyau pendant l'hibernation. 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 un résultat 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 veille prolongée, voir quel espace de swap était requis, éventuellement ajouter une marge de sécurité, puis rendre votre espace de swap de cette taille.