2016Fermer2018
BrunniLe 08/11/2010 à 17:23
J'ai expliqué plus haut l'intérêt, mais je peux détailler un peu; imagine un système où tu as 2 Go. 1 Go utilisé par l'OS et les progs en arrière plan, et tu veux lancer une VM qui va prendre 1 Go.
Si ton OS ne swappe vraiment que quand c'est obligatoire (et non pas nécessaire ni même souhaitable) alors il n'y aura pas de swap puisque tout tient en RAM.
Et à ce moment les performances seront mauvaises car:
1) La VM n'aura pas de cache pour elle, elle ne pourra pas respirer, tout ce qu'elle écrira devra l'être immédiatement sur le disque de l'hôte, (essaie de lancer une VM dotée d'1 Go de RAM sur un système de 2 Go puis sur un système de 4 Go, tu verras la différence...)
2) Si elle effectue plusieurs fois la même lecture alors elle sera effectuée plusieurs fois sur le disque,
3) Si la VM charge un tas de choses à gauche et à droite les lectures devront être effectuées séquentiellement car pas de cache possible. Ajouté à la fragmentation du fichier de la VM ça donnera du bon grattage et des perfs de merde.
La même logique peut s'appliquer à d'autres applications: il ne vaut mieux pas être trop proche de la limite de RAM, sous peine d'avoir des performances mauvaises dans les applications utilisées au premier plan.
Et n'importe quel OS va d'ailleurs libérer la RAM bien avant la limite, plus ou moins tôt suivant la politique. Windows le fait très tôt par exemple, mais comme je l'ai dit c'est une très bonne chose grâce au Superfetch, qui remet calmement en arrière plan les pages les plus utilisés d'un programme en mémoire une fois que tu switches sur lui.
Dans mon cas le swapiness est rentable par le fait de mettre mes nombreux services tournant en arrière plan rapidement en swap, car ils n'ont pas besoin de toute la mémoire qu'ils allouent (en particulier glassfish), mais les programmes en avant plan auraient toujours l'utilité d'avoir plus ^^
Ca permet aussi d'éviter que le système ait à swapper comme un malade quand je démarre une VM, car il aura été préventif.
(et un temps ça me servait aussi beaucoup car Xorg avait un memory leak, donc il vallait mieux qu'il passe rapidement en swap grin)
Quoi qu'il en soit le vm.swapiness a un effet négligeable au final, et on est très loin de la gestion de mémoire de Windows. Dès que je suis de retour en Suisse et que je trouve un boulot ça sera 8 Go sans hésiter, voire 16 miam