Parce que la plupart des gens croient que l’échange = mauvais et que si vous ne réduisez pas le swappiness, le système échangera quand ce n’est pas nécessaire. Ni l'un ni l'autre n'est vraiment vrai. Les gens associent l'échange à des moments où leur système s'enlise - cependant, ils échangent surtout parce que le système s'enlise, et non l'inverse. Lorsque le système échange, il aura déjà pris en compte le coût de la performance dans sa décision d’échanger, et a décidé que ne pas le faire entraînerait une pénalisation globale plus importante des performances ou de la stabilité du système, qui deviendrait plus tard évidente.
Dans l’ensemble, les paramètres par défaut se traduisent par de bonnes performances et une bonne stabilité. Je recommande de le laisser à la valeur par défaut. Des améliorations pourraient être apportées au fonctionnement du swap sur les systèmes de bureau / interactifs, mais dans l’ensemble, le contrôle de permutation n’est pas la meilleure solution: ajustez-le dans une direction et corrigez un problème et créez d’autres problèmes. Ce n'est rien en comparaison de la simple installation de plus de mémoire vive.
Comment Linux utilise la RAM
Toute mémoire vive non utilisée par les applications peut être utilisée comme "cache". Le cache est important pour un système rapide et fluide, accélérant les lectures et les écritures sur le disque.
Si vos applications augmentent leur utilisation de la mémoire au point d’utiliser la quasi-totalité de votre mémoire vive, votre cache diminuera et, en moyenne, les opérations sur disque ralentiront.
Si les applications augmentent encore leur utilisation de la mémoire - en supposant que vous n’ayez pas d’espace de swap - vous finirez par manquer de mémoire et votre système devra tuer les processus. Tuer des processus est pire qu'un ralentissement car il entraîne une instabilité.
Comment Linux utilise le swap
Pour lutter contre ces deux problèmes, votre système peut réaffecter de la mémoire d’application rarement utilisée à l’espace de swap de votre disque, libérant ainsi davantage de mémoire vive. Cela peut empêcher les processus de mourir en raison d’un manque de mémoire et de récupérer un peu de mémoire cache pour que les opérations sur disque puissent s’effectuer sans problème.
Cette ré-allocation n'est pas faite selon une coupure définitive. Vous n'atteignez pas un certain pourcentage d'allocation puis Linux commence à échanger. Il a un algorithme "flou". Cela prend beaucoup de choses en compte, ce qui peut être mieux décrit par "combien de pression existe pour l’allocation de mémoire". S'il y a beaucoup de "pression" pour allouer de la mémoire, cela augmentera les chances que certains soient échangés pour gagner de la place. S'il y a moins de "pression", cela diminuera ces chances.
Votre système a un paramètre "swappiness" qui vous aide à modifier la façon dont cette "pression" est calculée. Il n'est normalement pas recommandé de modifier cela du tout. L'échange est globalement une très bonne chose: toute pénalité de performance occasionnelle doit être compensée par un gain de réactivité et de stabilité globale du système pour un large éventail de tâches. Si vous réduisez le swappiness, vous laissez la quantité de mémoire cache se réduire un peu plus qu'elle ne le ferait autrement, même si cela peut être vraiment utile. Vous risquez donc de ralentir votre ordinateur dans son ensemble. Si vous allez jusqu'à désactiver complètement le swap, vous risquez de perdre les processus en raison de l'impossibilité d'allouer de la mémoire.
Que se passe-t-il lorsque le système s’embourbe et que l’échange est lourd?
La permutation est une opération lente et coûteuse. Le système l’évite à moins qu’il ne calcule que le compromis entre les performances du cache compensera globalement ou s’il est nécessaire d’éviter les processus de mise à mort.
La plupart du temps, les gens regardent leur système graver le disque dur et utilisent beaucoup d'espace de swap et de transfert de responsabilité. C'est la mauvaise approche à prendre. Si le swapping atteint un tel niveau, cela signifie que le swapping est la tentative de votre système pour gérer les problèmes de mémoire faible, et non la cause du problème.
Qu'en est-il des systèmes de bureau? Ne nécessitent-ils pas une approche différente?
Les utilisateurs d'un ordinateur de bureau s'attendent effectivement à ce que le système réponde aux actions initiées par l'utilisateur, telles que l'ouverture d'une application, ce qui peut parfois déclencher un échange en raison de l'augmentation de la mémoire requise. .
Une des façons d’essayer de régler ceci est de réduire le paramètre swappiness, ce qui peut augmenter la tolérance du système aux applications utilisant de la mémoire et n’ayant pas suffisamment de place dans le cache.
Cependant, dans une certaine mesure, il ne s'agit que de changer les règles du but. L'application peut maintenant charger sans une opération de swap, mais cela laissera moins de marge pour la prochaine application chargée. Le même échange peut se produire plus tard, lorsque vous ouvrez ensuite une application à la place. En attendant, les performances du système sont légèrement inférieures en raison de la taille réduite du cache. Ainsi, tout avantage du paramètre de permutation réduite peut être difficile à mesurer, réduisant le délai de permutation à certains moments, mais entraînant d'autres performances lentes à d'autres moments.Réduire un peu le swappiness peut être justifié si vous savez ce que vous faites, mais le réduire à 10% devrait être fait avec prudence, car cela peut laisser le système tolérant à des tailles de cache très faibles et laisser le système plus vulnérable. échanger à court terme.
La désactivation complète du swap doit être évitée car vous perdez la protection supplémentaire contre les conditions de mémoire insuffisante, ce qui peut entraîner le blocage ou la mise à mort des processus.
Le moyen le plus efficace de loin est d’installer plus de RAM si vous pouvez vous le permettre.
Le swap peut-il être désactivé sur un système disposant de beaucoup de RAM?
Si vous avez beaucoup plus de RAM que vous n’en aurez probablement besoin pour les applications, vous aurez rarement besoin de l’échange. Désactiver le swap ne fera probablement pas la différence la plupart du temps. Mais si vous avez suffisamment de mémoire vive, laisser le swap activé n’aura aucune pénalité car le système n’échange pas lorsque cela n’est pas nécessaire.
Les seules situations dans lesquelles il ferait une différence seraient dans la situation improbable où le système se trouve à court de mémoire et par conséquent, le système de cache est entravé et se trouve dans ce type de situation où vous voudriez vouloir échanger le plus. Ainsi, vous pouvez laisser en toute sécurité les paramètres normaux pour une plus grande tranquillité d’esprit sans effet négatif lorsque vous avez suffisamment de mémoire.
Comment échanger rapidement mon système? L'échange ne ralentit pas les choses?
Le transfert de données de la mémoire RAM à l’échange est une opération lente, mais elle n’est prise que lorsque le noyau est certain que l’avantage général de conserver une taille de cache raisonnable le dépassera.
Une fois que les données sont en échange, à quel moment s’en sort-il?
Une partie quelconque de la mémoire sera libérée du swap dès qu’elle sera utilisée - à lire ou à écrire. Cependant, la mémoire échangée est généralement une mémoire qui n’a pas été accédée depuis longtemps et dont on ne prévoit pas qu’elle sera bientôt utilisée.
Transférer des données en dehors du swap prend à peu près autant de temps que de les y insérer. Votre noyau ne supprimera pas les données s'il n'en a pas besoin. Alors que les données sont en échange et ne sont pas utilisées, cela laisse plus de mémoire pour les autres éléments utilisés , et plus de cache système.