Aller au contenu

[Résolu] Le swap est-il toujours utile de nos jours ?


Nozalys

Messages recommandés

Bonjour,

Je me pose la question suivante : sur une machine dont l'O.S. (ici Windows 10) est installé sur un SSD NVMe, qui dispose de 16 Go de RAM, et dont l'utilisation se limite à la bureautique, est-ce que le fichier de pagination est encore utile aujourd'hui ? Peut-on vraiment le désactiver complètement sans risque ?

Étant donné que l'O.S. n'est sensé l'utiliser que lorsque la RAM est pleine, j'imagine que ce fichier n'est jamais utilisé en temps normal. Mais comment en être sûr ? Existe-t-il un/des outil(s) qui permettent de surveiller l'activité à l'intérieur de ce fichier ?

Lien vers le commentaire
Partager sur d’autres sites

Lance l'utilitaire perform.msc. Déroule à gauche : Performance > Outils d’analyse > Analyseur de performances. Tu clique sur le bouton + et tu rajoutes Pourcentage d'utilisation et usage maximal en sélectionnant le fichier pagefile.sys.

L’analyseur de performances va grapher ensuite l’utilisation du fichier d’échange.
L’utilisation du fichier d’échange est disponible en pourcentage et en utilisation maximale brute.

 

 

Lien vers le commentaire
Partager sur d’autres sites

Je ne connaissait même pas cet outil, c'est dingue tout ce qu'il permet de surveiller !

Après un bref test (Windows 7, O.S. sur SSD, 80 Go de RAM dont 31 Go en cours d'utilisation), le fichier d'échange (1 Go) est utilisé à 45%, et au maximum à 85%. Ce qui répond à ma 2ème question : même quand l'O.S. a toute la RAM qu'il souhaite, il va utiliser en partie ce cache lent. Je ne comprends pas.

Lien vers le commentaire
Partager sur d’autres sites

Sur ce PC, il s’agit d'un bête SSD SATA3. Mais je suis d'accord qu'avec un SSD NVMe ça aide. Néanmoins c'est loin de la performance d'une RAM. Sur le NVMe dont je parle, je suis à 1.8 GBps d'écriture sur 1 GB, 500 MBps sur 10 GB continues. La RAM elle, c'est du 42 GBps, c'est plus le même ordre de grandeur !

Lien vers le commentaire
Partager sur d’autres sites

C'est une solution mais c'est à double tranchant : certes ça économise le SSD, mais tu remet ce fichier sur un périphérique lent alors que le système, quand il en a besoin, aurait bien besoin de rapidité (en général quand la RAM est saturée, tout devient atrocement lent). Dans mon cas j'ai pas de HDD, juste le SSD du système :mdr:.

Au vu de ce qu'indique perfmon, je vais désactiver totalement le fichier de pagination. Si je constate des dysfonctionnements ou des comportements étranges, je le réactiverai avec une limite à 1 Go par exemple.

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...
On ‎19‎/‎11‎/‎2018 at 09:30, Nozalys a écrit :

Étant donné que l'O.S. n'est sensé l'utiliser que lorsque la RAM est pleine, j'imagine que ce fichier n'est jamais utilisé en temps normal. Mais comment en être sûr ? Existe-t-il un/des outil(s) qui permettent de surveiller l'activité à l'intérieur de ce fichier ?

Réponse: ce n'est pas si simple. La gestion de la RAM est très complexe. Certains logiciels allouent la mémoire directement dans l'espace virtuel (ou plutôt, indiquent à Windows quelle mémoire doit être vidée vers le disque dès que possible), ceci pour avoir une empreinte minimale en mémoire vive (certains anti-virus par exemple).

Par contre, tu peux le réduire et le bloquer à 4Go par exemple. Mais ne t'étonne pas si certains logiciels plantent ou ne démarrent pas (par exemple, des jeux, des outils de retouche vidéo, des anti-virus, certains pilotes graphiques...).

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...
On 21/12/2018 at 08:38, brice.wernet a écrit :

Mais ne t'étonne pas si certains logiciels plantent ou ne démarrent pas

En effet...

Depuis que j'ai réduit le fichier de pagination de ma machine de dév dotée de 80 Go de RAM (4 Go de swap), j'ai régulièrement des difficultés à faire démarrer une application Java en live à travers Eclipse, j'ai une erreur de la JVM dans la console : "Error occurred during initialization of VM      Could not reserve enough space for 786432KB object heap".

Je ne comprends pas comment la JVM arrive à ne pas trouver 768 Mo de libre dans la RAM, ni dans le swap...

Du coup, j'ai commencé à ré-augmenter le swap disponible, il est actuellement à 4 Go min, 16 Go max, et j'ai toujours cette erreur. La taille recommandée par Windows est de 122 754 Mo... ça me semble un poil exagéré....

Finalement ce sujet n'est peut-être pas résolu si simplement comme tu le suggérait...

Lien vers le commentaire
Partager sur d’autres sites

Il y a 30 minutes, Nozalys a écrit :

Depuis que j'ai réduit le fichier de pagination de ma machine de dév dotée de 80 Go de RAM (4 Go de swap), j'ai régulièrement des difficultés à faire démarrer une application Java en live à travers Eclipse, j'ai une erreur de la JVM dans la console : "Error occurred during initialization of VM      Could not reserve enough space for 786432KB object heap".

Ce message est généralement lié à une JVM 32bits, le mieux est de passer à une JVM 64 bits. Sinon il faut jouer avec les paramètres mémoire de lancement de la JVM -Xmx et -Xms

Lien vers le commentaire
Partager sur d’autres sites

On 11/01/2019 at 15:28, brice.wernet a écrit :

Ce message est généralement lié à une JVM 32bits, le mieux est de passer à une JVM 64 bits. Sinon il faut jouer avec les paramètres mémoire de lancement de la JVM -Xmx et -Xms

Je confirme que c'est lié à l'archi de la JVM. Néanmoins, ce problème ne s'est jamais posé avant que je tripote le swap... J'utilise les même paramètres Xmx et Xms depuis bientôt 10 ans sur mon application, et je n'ai jamais eu le moindre problème. C'est donc intimement lié à ce swap.

On 11/01/2019 at 15:35, Chocobidou a écrit :

le jeu force l'utilisation du swap et plante si pas de swap... ( sac à merde de jeu)

Je pourrais dire aussi : sac à merde cette JVM -D

Je ne comprends pas pourquoi ces applications veulent à tout prix écrire dans le swap lorsqu'elles peuvent s'étendre dans la RAM à volonté... mais force est de constater que c'est le cas.

Et ça me pose un vrai problème maintenant car si je laisse Windows gérer la taille du swap, il va s'amuser à grossir/diminuer sans cesse, ce qui n'est pas cool pour le SSD. En le fixant, au moins, ça limite la casse. Et si l'OS décide de vouloir allouer 122 Go de mon SSD pour le swap on va être 2 à gueuler : moi et le SDD.

D'ailleurs, il n'y aurait pas un moyen de bidouiller des clés de registre pour faire croire aux applications qu'elles écrivent dans un swap alors que celui-ci est virutalisé dans la RAM ? Ou alors je monte un disque virtuel en RAM et j'y met le swap : de la RAM virtuelle dans un disque virtualisé en RAM... Inception ! :mad2:

 

 

Lien vers le commentaire
Partager sur d’autres sites

Il y a 20 heures, Nozalys a écrit :

Et ça me pose un vrai problème maintenant car si je laisse Windows gérer la taille du swap, il va s'amuser à grossir/diminuer sans cesse, ce qui n'est pas cool pour le SSD. En le fixant, au moins, ça limite la casse. Et si l'OS décide de vouloir allouer 122 Go de mon SSD pour le swap on va être 2 à gueuler : moi et le SDD.

D'ailleurs, il n'y aurait pas un moyen de bidouiller des clés de registre pour faire croire aux applications qu'elles écrivent dans un swap alors que celui-ci est virutalisé dans la RAM ? Ou alors je monte un disque virtuel en RAM et j'y met le swap : de la RAM virtuelle dans un disque virtualisé en RAM... Inception ! :mad2:

Pour ta JVM, malheureusement c'est un peu la loterie: la JVM demande un espace mémoire contigüe. C'est vrai que du coup, je pensais qu'une JVM 32bits aurait forcément un espace virtuel contigüe mais visiblement ce n'est pas le cas.

Quand à la présence de SWAP: ce n'est pas parce que les applis réservent de l'espace dans le swap qu'il est écrit en permanence. Tu peux vérifier cela en regardant les compteurs de Windows concernant le page swapping. Maintenant c'était l'assurance que la mémoire était dispo. Pour moi, laisse 4/8Go de SWAP sans permettre son augementation automatique et règle les problèmes de 2-3 logiciels qui vont te faire suer (peut-être par des paramètres de compatibilité - ou le passage à la version x64?)

D'autre part,je ne crois pas que tu puisse virtualiser le fichier de swap sous Windows.

Enfin, même si je trouve la référence à Inception sympa, c'est un abus de langage de mélanger mémoire virtuel et fichier d'échange. C'est pour cela que même les ingé en informatique français confondent les deux et ne comprennent bien ni l'un, ni l'autre.

Lien vers le commentaire
Partager sur d’autres sites

La gestion de la swap est une relique du passé (parmi d'autres) dans Windows.
C'est à la fois une force (compatibilité avec les logiciels des années 90) et une faiblesse (certains développeurs conservent de mauvaises habitudes).

Pour les autres OS la swap n'est que de la mémoire vive aux yeux des applications, le noyau fait abstraction et se charge de distribuer entre elle et la ram.

Lien vers le commentaire
Partager sur d’autres sites

On 13/01/2019 at 13:09, brice.wernet a écrit :

Enfin, même si je trouve la référence à Inception sympa, c'est un abus de langage de mélanger mémoire virtuel et fichier d'échange. C'est pour cela que même les ingé en informatique français confondent les deux et ne comprennent bien ni l'un, ni l'autre.

Est-ce que tu pourrais développer la différence entre les 2 ?

Lien vers le commentaire
Partager sur d’autres sites

la mémoire virtuelle est le volume composé par la ram et le/les fichiers d'échange.

Sous Linux par exemple au niveau application il n'y a que de la mémoire virtuelle adressable
alors que sous Windows les applications peuvent demander à avoir de la ram ou de la swap
d'où les échecs de certaines si on a désactivée la swap)

Lien vers le commentaire
Partager sur d’autres sites

Pour expliquer la mémoire virtuelle, il faut connaitre les modes du processeur :DD

Avant le processeur était en mode réel (<- lien wiki en français) : dans ce mode on accédait à la mémoire de façon directe

Et depuis, le processeur est en mode protégé (<- lien wiki en français) (avec notamment les anneaux de protection) : dans ce mode la mémoire est découpée en pages (la taille d'1 page dépend du système d'exploitation il me semble), et justement les pages peuvent être mises en cache si l'application est suspendue ou s'il n'y a plus de mémoire

Lien vers le commentaire
Partager sur d’autres sites

On 11/01/2019 at 15:35, Chocobidou a écrit :

j'ai voulu carrément le supprimer avec mon PC de 16Go de RAM jamais saturé.

Impossible de faire tourner COD Black Ops 4, le jeu force l'utilisation du swap et plante si pas de swap... ( sac à merde de jeu)

COD Infinite Warfare m'a fait subir la même chose.

Mais dans mon cas, le responsable était plutôt Windows 10, cela car il attribue à un programme une certaine quantité excédentaire de mémoire pour éviter que ce dernier ne soit dépourvu s'il se met à demander subitement de la place (fonctionnement normal de l'OS) sauf qu'il est bien plus généreux que Windows 7 sur ce sujet. J'ai ghosté et réinstallé Windows 7 juste pour voir... COD disposait sur W7 de 12 Go, sur W10 entre 14, 5 et 16 Go... sur 16 Go. Dans les deux cas, la mémoire REELEMENT utilisée par COD ne dépassait pas 8 Go. Résultat ça crache sur le second à peine la sauvegarde lancée, tandis que ça tenait mieux sur le premier. Maintenant j'ai 24 Go... pour être sûr. Ce qui freine l'acquisition de matériel récent car 24 Go de DDR4 fait mal au portefeuille.

 

Après pour le swap, il y a le fonctionnement normal de l'OS et des pilotes. Ils se dégagent parfois de la mémoire vive pour se placer dans le swap s'il existe.

Le plus génant reste les vieux programmes qui exige du swap juste pour la forme. Opération Flashpoint (1er du nom) m'avait exigé 1 Go sur une machine puissante, et je doute qu'il s'en servait.

Par sécurité du coup, je met 1 Go de swap à chaque réinstall. Le fait qu'on a des SSD compense la gène et pour l'usure, le 1er SSD d'une config est spécial OS/Swap surtout depuis W10 (mises à jour et/ou réinstall régulière, etc...).

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...