Je me demandais depuis que j'ai entendu dire que le swap est utilisé lorsque vous êtes absent ou RAM et que le swapping est trop mauvais, car j'ai beaucoup de RAM (8 Go) ....
que faire si je ne crée pas de partition de swap?
Aussi, en ai-je besoin pour l'hibernation ou ce n'est pas un must?
linux
swap
swappiness
Mihai Bratulescu
la source
la source
Réponses:
Les systèmes d'exploitation modernes nécessitent un espace de swap pour utiliser efficacement la RAM. Même si votre système a beaucoup de RAM, le gaspillage de RAM entraîne un cache de mémoire tampon plus petit, ce qui signifie une augmentation des E / S disque. Donc, peu importe la quantité de RAM dont vous disposez, vous souhaitez toujours que le système l'utilise efficacement. L'utiliser efficacement signifie retirer de la RAM des éléments auxquels il est extrêmement improbable d'accéder.
Lorsque vous démarrez un système typique, un grand nombre de services démarrent. Les programmes exécutent le code d'initialisation et modifient les mappages de mémoire privée dans le processus. Un certain nombre de ces services ne fonctionneront plus jamais . Beaucoup d'entre eux ne fonctionneront pas pendant des heures. Sans échange, le système d'exploitation n'a d'autre choix que de conserver pour toujours les mappages de mémoire privée modifiés associés à ces services dans la RAM. C'est de la RAM qui ne peut jamais être utilisée comme cache disque.
Vous voulez donc échanger si vous en avez besoin ou non.
la source
J'exécute un système de bureau sans aucun échange depuis quelques années, et ça va très bien! Il y a quelques comportements différents; certains d'entre eux sont avantageux et d'autres pourraient vous nuire. Tout dépend de ce que vous faites.
Une différence majeure est la façon dont le système se comporte lorsque la mémoire est épuisée:
S'il n'y a pas de partition de swap, le tueur OOM s'exécute immédiatement. Si vous avez un programme qui perd de la mémoire, c'est probablement celui qui est tué. Cela se produit et vous récupérez le système presque instantanément.
S'il est une partition de swap, le noyau pousse le contenu de la mémoire en échange. Un processus errant peut continuer d'allouer de la mémoire. Cela continue jusqu'à ce que le swap soit épuisé, ce qui peut être de dix minutes à une heure si vous avez une grande partition de swap. Pendant ce temps, votre système ralentit jusqu'à une analyse. Il devient impossible d'ouvrir un terminal et de tuer le processus. Je débranche généralement le cordon d'alimentation lorsque cela se produit.
Donc, comme je vais de toute façon perdre mes données lorsque les MOO du système, je préfère que la première option ait au moins une (grande) chance de récupération.
la source
L'échange est nécessaire pour l'hibernation, sinon vous pouvez vous en passer très bien.
la source
Il est faux de penser que le fait d'avoir une zone de swap affecte négativement les performances. Ce qui affecte gravement les performances, c'est de ne pas avoir suffisamment de RAM. La zone d'échange en soi n'a aucun effet négatif sur les performances, sauf si vous ne vous souciez pas de la fiabilité. Cela peut avoir un impact positif sur les performances même si vous pensez que vous avez suffisamment de RAM (et aucune pénurie de RAM n'est signalée).
Il y a essentiellement trois cas à considérer:
1: Il y a suffisamment de RAM pour les besoins du noyau interne, pour que toutes vos applications aient leur ensemble de pages de travail sur la RAM et aient toujours de la RAM "libre" pour le cache de tampon pour stocker la plupart des données chaudes du système de fichiers.
2: comme ci-dessus, sauf que vous n'avez pas assez de RAM disponible pour que le cache de tampon soit pleinement efficace.
3: Il n'y a pas assez de RAM pour même stocker les pages utilisées de vos applications.
Dans le cas 1, qui devrait être la norme pour une machine de production, avoir ou non une zone de swap ne change rien (au moins sur les OS basés sur Linux et autres OS qui surchargent la mémoire).
Dans le cas 2, le fait d'avoir une zone de swap peut améliorer les performances globales en permettant au système de paginer des pages très rarement utilisées, puis de permettre au cache de tampon de mieux jouer son rôle.
Dans le cas 3, le fait d'avoir une zone de permutation permet à l'application de continuer à fonctionner au détriment d'une dégradation des performances due à la pagination. D'un autre côté, manquer une zone de swap (ou une zone suffisamment grande) fera planter les applications de manière aléatoire. De plus, en fonction des paramètres du système d'exploitation, le tueur OOM peut également décider de tuer les applications les plus gourmandes en mémoire s'il y a une forte demande de RAM sans même leur donner la possibilité de sauvegarder leurs (vos) données critiques.
Ce dernier cas est celui avec lequel vous devez faire un choix. Il existe certainement des cas d'utilisation où la suppression de processus est l'option préférée, comme les systèmes où le temps de réponse est crucial et où la perte d'une transaction / d'un processus n'est pas très grave.
Cependant, j'ai tendance à croire que dans la plupart des situations, il est préférable de laisser une chance à l'utilisateur / administrateur de remarquer la pénurie de RAM et d'agir en conséquence sans risquer de perdre des données.
la source
Si vous ne souhaitez pas utiliser de partition de swap, vous pouvez utiliser un fichier de swap: une image du système de fichiers stockée dans un fichier standard et utilisée comme espace de swap.
Les articles suivants expliquent comment procéder en détail:
la source
C'est un peu dangereux mais vous POUVEZ courir sans espace de swap. Mais si vous dépassez enfin la quantité de mémoire dont vous disposez, votre système se bloquera presque immédiatement sans préavis.
Ce que l'échange vous donne essentiellement est une extension mais beaucoup plus lente pour votre mémoire. Si vous dépassez, vous commencerez à échanger, cela prendra vraiment la vie de votre système .... TOUTEFOIS, en tuant les processus errants, vous pouvez toujours enregistrer votre système.
Certains programmes insistent pour allouer (mais ne pas utiliser) l'espace d'échange, certains sont des programmes de base de données si je me souviens bien. Encore une fois, en n'ayant pas d'espace de swap, vous pouvez limiter les programmes qui peuvent être exécutés.
Enfin, regardez SWAP est CHEAP dans le fait que vous n'avez pas à sauvegarder la zone. (J'espère que vous êtes l'un de ces bons administrateurs système exceptionnels qui sauvegardent leurs systèmes).
Alors créez-le.
Ma règle générale était de 2 * taille de la mémoire ..... mais aujourd'hui, je suis d'accord dans de nombreux cas avec 1 * taille de la mémoire, mais j'utilise généralement 1,5 * (taille de la mémoire). Vous n'avez pas besoin de créer une telle quantité, mais je le ferais ... surtout s'il y a un type de travail que vous faites.
Oh oui, et pour l'hibernation, le swap est OBLIGATOIRE pour contenir une image totale de la mémoire. Et donc la taille si vous envisagez h8ibernation devrait être AU MOINS (1 * taille de la mémoire) + 100 Mo .. les 100 Mo sont pour la surcharge possible nécessaire dans le processus.
la source
L'échange Linux semble avoir une exigence assez difficile dès qu'il y a une pression mémoire. Le symptôme est que si la quasi-totalité de la RAM est utilisée par des processus actifs, le système se bloque durement et le disque dur fonctionne de manière sauvage.
Pourquoi?
Les pages sans fichier de sauvegarde (généralement de l'allocation dynamique de mémoire) ne peuvent pas être supprimées de la RAM lorsqu'il n'y a pas d'échange. Le noyau recourt à des pages avec un fichier de sauvegarde même si elles sont en fait bientôt nécessaires, i. e. poubelle même sans échange!
Pour plus de détails sur ce problème subtil, consultez cet article de blog.
Conclusion : Ayez toujours un échange.
Et pour la taille à titre indicatif, utilisez quelque chose entre 4 et 8 Go, même pour les systèmes avec beaucoup de RAM, en supposant que vous n'hiberniez pas. Pour plus de détails, consultez la documentation de Red Hat sur l'espace d'échange .
la source