Je vais installer 64 bits 14.04 sur une nouvelle machine avec quelque chose comme 1 à peut-être 128 Go de RAM et encore plus de RAM plus tard. Combien d'espace dois-je allouer à la partition de swap?
Et surtout: POURQUOI ces recommandations pour ces chiffres?
(Aucune des réponses existantes ici et ici n'explique le pourquoi et sont un peu datées si l'on regarde 1 Go ou RAM et plus)
Réponses:
La réponse courte:
Définissez votre fichier d'échange sur:
round(sqrt(RAM))
si vous n'utilisez pas l' hibernationRAM+round(sqrt(RAM))
si vous utilisez l' hibernationRéglez votre
swappiness
à 10 sur un bureau, mais pas sur un serveur!La réponse longue:
Autrefois:
La règle de base utilisée depuis 25 ans est un minimum de 1xRAM et un maximum de 2xRAM , c'est ce que vous verrez constamment cité.
Ce minimum a été repoussé à l'âge de pierre
quand j'étais adolescent et les dinosaures parcouraient encore la Terre etparce que la RAM était tout simplement trop chère et que vous aviez absolument besoin de cet espace d'échange pour pouvoir accomplir quoi que ce soit.Le maximum a été fixé à ce moment-là en raison de rendements décroissants: il est tout simplement trop lent d'avoir à échanger autant de mémoire car l'accès au disque dur est un facteur 1000 plus lent que la RAM: bon en cas d'urgence, mais pas vraiment bon pour un usage quotidien! À l'époque, lorsque vous manquiez d'espace de swap, il était temps d'ajouter plus de RAM! (ce qui est toujours vrai aujourd'hui).
Dans le présent:
Si vous n'utilisez pas l'hibernation et que votre mémoire dépasse 1 Go, la nouvelle règle de base est
round(sqrt(RAM))
où seRAM
trouve évidemment votre taille de RAM en Go etsqrt
la racine carrée. :-)Si vous utilisez l'hibernation, vous devez pouvoir échanger la totalité de la quantité de RAM + RAM déjà échangée sur le disque, ainsi la formule devient:
RAM+round(sqrt(RAM))
La règle des rendements décroissants s'applique toujours aujourd'hui au maximum, mais à moins de tester votre utilisation réelle, la prise de 2xRAM est juste un gaspillage d'espace disque , alors n'utilisez pas le maximum à moins que vous ne manquiez d'espace de swap en utilisant les autres méthodologies .
Tous ces éléments ensemble vous donnent le tableau suivant: (3 dernières colonnes indiquant l'espace de swap)
Ce qui précède est juste une règle de base; ce n'est pas la loi de la gravité!
Vous pouvez enfreindre cette règle (contrairement à la loi de la gravité) si votre cas d'utilisation particulier est différent!
Conseil de pro: allouez toujours SWAP au début d'un disque dur car les têtes doivent se déplacer moins à l'intérieur du disque.
Oui: sur les SSD, peu importe où vous localisez la zone de swap car ils utilisent le tunnel quantique au lieu de déplacer les têtes et les SSD modernes utilisent toutes leurs cellules de mémoire (même l'espace non alloué) pour empêcher la dégradation quantique.
Comment tester si votre utilisation du swap est différente de la règle "générique":
Exécutez simplement:
qui vous donnera une liste de tous les programmes en cours qui sont échangés (avec celui qui utilise le plus d'espace de swap en haut)
Si vous utilisez plus de quelques Ko: redimensionnez à plus que le minimum, sinon, ne vous embêtez pas ...
Si vous êtes sur un serveur, arrêtez de lire maintenant: vous êtes prêt!
Si vous êtes sur un client de bureau / ordinateur portable (pas un serveur), vous voulez que votre interface graphique soit aussi réactive que possible et ne permute que lorsque vous en avez vraiment besoin . Ubuntu a été optimisé pour permuter tôt pour une utilisation sur le serveur, mais sur votre client, vous voulez éditer cette énorme image brute de 250 mégapixels
gimp
pour être rapide , donc régler votreswappiness
à 10 empêchera le noyau de permuter trop tôt, tout en s'assurant qu'il ne le fasse pas '' t échanger trop tard:Si vous avez un
sysctl.conf
fichier,OU
Si vous avez un
sysctl.d
répertoire mais pas desysctl.conf
fichier, créez un nouveau fichier:et dans les deux cas ajouter:
à la fin du fichier, enregistrez le fichier ( Ctrl+ XY+ Enteren nano) et exécutez a:
pour recharger le paramètre ou adopter l'approche Window $ et redémarrer ... :-)
la source
Nécessité d'un échange
L'échange est utile pour 3 raisons:
Suppression de l'encombrement de la RAM. De l' article sur kernel.org:
En d'autres termes, les données stockées dans la RAM peuvent être utiles uniquement lorsqu'un processus a été démarré (comme le processus de démarrage), puis y résider simplement, en encombrant l'espace qui peut être utilisé à de meilleures fins.
Il augmente la quantité de mémoire que les processus peuvent utiliser. C'est bien compris. Vous ne voulez pas que le système manque de mémoire et tombe en panne en raison de son manque. Pour cette raison spécifique, l'échange doit exister, servant de fonction de protection.
Hibernation: Lorsqu'un ordinateur passe en veille prolongée, le contenu de la RAM va sur le disque.
Montant du swap
Connaissant le but du swap et en fonction de la quantité de RAM de votre machine, vous pouvez choisir une taille de swap qui correspond à votre objectif. Il n'y a pas de directives spécifiques, seulement des règles de base que vous pouvez utiliser pour adapter la taille de votre swap à votre système .
Par exemple, linux.com recommande:
Par expérience personnelle, voici ce que je ferais:
En considérant une machine avec 1 à 2 Go qui n'a pas besoin d'hiberner et pour une utilisation occasionnelle, vous pouvez disposer d'un espace d'échange de 1 Go à 2 Go. Mon PC avec Ubuntu 14.04 a 1 Go de RAM et 2 Go de swap. Le montant du swap ne franchit jamais la frontière de 800 Mo, et j'utilise mon PC uniquement pour surfer sur le Web et écrire des scripts.
Avec un PC de plus de 2 Go et vous n'avez pas besoin d'hiberner, vous pouvez conserver le swap de 512 Mo à 1 Go. J'ai un ordinateur portable avec 15.04 que je n'hiberne jamais et qui a un fichier d' échange ( pas une partition ) de 512 Mo. La RAM elle-même est de 6 Go mais ne traverse jamais 2 à 3 Go. Encore une fois: une utilisation décontractée.
Cosmoscalibur et Fabby ont déjà abordé l'échange au cas où vous auriez besoin d'hiberner, donc je n'entrerai pas dans les détails. Mon humble avis est le suivant:
Si vous prévoyez d'hiberner, le contenu de la RAM devra être remplacé, vous en aurez donc besoin au moins de la même taille que votre RAM.
la source