306 votes

J'ai 16 Go de RAM. Ai-je besoin de 32 Go de swap ?

J'ai lu à plusieurs endroits que la règle générale pour l'espace de pagination est de doubler la quantité de RAM physique. Cependant, 32 Go semblent être BEAUCOUP. En ai-je besoin ? En ai-je besoin du tout avec cette quantité élevée de RAM physique ?

2voto

Jebin Philipose Points 268

De la part d'Ubuntu SwapFaq :

Pourquoi ai-je besoin d'un échange ?

Programmes consommateurs de mémoire Parfois, un gros programme (comme LibreOffice, Neverwinter Nights ou un éditeur vidéo) fait que le système entier a besoin de plus de mémoire. Un nombre important de pages utilisées par ces gros programmes lors de son démarrage peuvent n'être utilisées que pour l'initialisation et ne plus jamais être utilisées. Le système peut échanger ces pages et libérer la mémoire pour d'autres programmes ou même pour le cache du disque. Dans ces cas, l'échange sera utilisé pour aider le système à gérer toute charge supplémentaire.

Hibernation (suspension sur disque) La fonction d'hibernation (suspend-to-disk) écrit le contenu de la RAM sur la partition swap avant d'éteindre la machine. Par conséquent, votre partition d'échange doit être au moins aussi grande que la taille de votre RAM. L'implémentation de l'hibernation actuellement utilisée dans Ubuntu, swsusp, a besoin d'une partition swap ou suspendue. Elle ne peut pas utiliser un fichier swap sur un système de fichiers actif.

Circonstances imprévisibles Des événements imprévisibles peuvent se produire et se produiront (un programme qui devient fou, une action nécessitant beaucoup plus d'espace que prévu, ou toute autre combinaison imprévisible d'événements). Dans ces cas, le swap peut vous donner un délai supplémentaire pour comprendre ce qui s'est passé, ou pour terminer ce sur quoi vous travaillez.

Optimisation de l'utilisation de la mémoire Les disques durs mécaniques étant considérablement plus lents que la RAM (le stockage SSD - Solid State Drive - n'est pas aussi lent que les disques physiques, mais toujours plus lent que la RAM), lorsque vous avez besoin d'un fichier (qu'il s'agisse d'un fichier de données comme une vidéo, d'exécutables comme Firefox ou de bibliothèques), le noyau Linux lit le fichier dans la RAM et l'y conserve, de sorte que la prochaine fois que vous en aurez besoin, il sera déjà dans la RAM et l'accès aux données sera beaucoup plus rapide. Les parties de la RAM qui accélèrent la lecture du disque sont appelées "mémoire cache". Vous remarquerez qu'elles font une énorme différence en termes de réactivité. Le noyau Linux déplace automatiquement la RAM réservée par les programmes - mais pas vraiment utilisée - dans le swap, afin qu'elle puisse servir le meilleur objectif d'extension de la mémoire cache.

Optimisation des performances de Swap Comme l'espace d'échange utilise un périphérique disque, cela peut entraîner des problèmes de performance dans tout système qui utilise l'espace d'échange de manière significative car le système lui-même peut également utiliser le même périphérique disque au moment où il est requis pour les opérations d'échange. Une façon de réduire ce problème est d'avoir l'espace d'échange sur un lecteur physique différent de sorte que la concurrence pour cette ressource soit réduite ou éliminée.

De combien de swap ai-je besoin ?

Pour moins de 1 Go de mémoire physique (RAM), il est fortement recommandé que l'espace d'échange soit, au minimum, égal à la quantité de RAM. Il est également recommandé que l'espace d'échange soit au maximum le double de la quantité de RAM, en fonction de la quantité d'espace disque disponible pour le système, en raison des rendements décroissants.

Pour les systèmes plus modernes (>1GB), votre espace d'échange devrait être au minimum égal à la taille de votre mémoire physique (RAM) "si vous utilisez l'hibernation", sinon vous avez besoin d'un minimum de round(sqrt(RAM)) et d'un maximum de deux fois la quantité de RAM. Le seul inconvénient à avoir plus d'espace swap que vous n'en utiliserez réellement est l'espace disque que vous lui réserverez.

Le "rendement décroissant" signifie que si vous avez besoin de plus d'espace d'échange que le double de la taille de votre RAM, vous feriez mieux d'ajouter de la RAM, car l'accès au disque dur est environ 10³ plus lent que l'accès à la RAM, de sorte que quelque chose qui prendrait 1 seconde, prend soudainement plus de 15 minutes ! Et encore plus d'une minute sur un Solid State Drive (SSD) rapide...

Exemples de scénarios

    RAM(GB) No hibernation  With Hibernation  Maximum
      1      1                2                   2
      2      1                3                   4
      3      2                5                   6
      4      2                6                   8
      5      2                7                  10
      6      2                8                  12
      8      3               11                  16
     12      3               15                  24
     16      4               20                  32
     24      5               29                  48
     32      6               38                  64
     64      8               72                 128
    128     11              139                 256

1voto

gemue2010 Points 354

Si vous utilisez l'hibernation, votre swap doit avoir au moins la même quantité que votre RAM physique.

1voto

Danilo Points 129

J'ai un ordinateur portable avec 4 Go de RAM et Ubuntu 16.04. Après le démarrage, il consomme environ 1 Go de RAM et même dans ce cas, Inkscape (par exemple) ne fonctionne pas (le moniteur système indique plus de 50 % de RAM libre). Inkscape se fige Après avoir appliqué un fichier d'échange, il fonctionne comme prévu, même si aucun octet d'échange n'est utilisé). Inkscape running Je recommande donc d'utiliser une partition d'échange (ou un fichier d'échange). Pour ce qui est de la taille de celle-ci, vous pouvez utiliser la règle de David6.

0voto

Je pense que vous l'avez eu dans l'autre sens. Recommandation SWAP vous aurez besoin d'environ 16 Go. Donc le SWAP devrait être la moitié de la taille réelle de la RAM. Mais c'est quand même BEAUCOUP d'espace. Cela dépend de ce que vous voulez en faire. Je dirais que si vous n'utilisez pas l'hibernation, gardez environ 4 à 8 Go si vous pouvez vous permettre l'espace disque. Puisque vous avez 16 Go, je suppose que vous utilisez un ordinateur qui a besoin de ressources puissantes... alors il pourrait être bénéfique d'avoir un SWAP de 16 à 32 Go également.

J'ai 2 Go de RAM et 1 Go de SWAP. Je m'en sors plutôt bien, mais ce n'est que mon avis. Regardez les autres commentaires/suggestions et voyez ce qu'ils disent.

0voto

Fred Larson Points 27404

Je n'ai pas pu trouver de références à citer ici, mais si vous utilisez une application où vous devez échanger des données entières dans la RAM, vous aurez au moins besoin de 'Taille de la RAM+128 Mo' ou '1,25 fois la taille de la RAM' (j'ai oublié laquelle était correcte) en supposant que vous avez une RAM de plus de 2 Go. Si la RAM est de 2 Go ou moins, il est recommandé d'avoir deux fois la taille de la RAM comme swap. J'ai suivi cette recommandation dans mon organisation précédente pour IBM AIX basée sur un document d'IBM. Je pense que cela est valable pour la plupart des systèmes *nix puisque l'utilisation de l'espace de pagination permet de déplacer les données de la RAM en toute sécurité au cas où la RAM ne serait pas suffisante pour gérer les données à charger en mémoire. La commande 'free' peut être utilisée pour évaluer combien de swap est utilisé en réalité.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X