Hello !

On Fri, Jul 27, 2001 at 05:44:12AM +0200, rno wrote:
[.../...] 
> Qu'est ce qu'on risque � ne pas respecter la r�gle?
> L� je suis en 2.2.19, j'ai un 2.4.5 sur un cd de lmf donc je pourrais
> y passer, mais � cause de mon partitionnement, je ne peux plus trop
> changer ma swap, j'aurais donc swap=ram/2 (128 swap - 256 ram)
> 
> Est ce que je peux le faire quand m�me, sachant qu'avec 256M et que
> cette machine ne swappe jamais d'habitude, ou j'attend le 2.5?

Tu peux toujours essayer, tant que ce n'est pas sur un serveur en
production ... cependant, il est fortement conseill� de ne pas poster un
bug report sur la liste du kernel si tu obtiens des erreurs OOM (Out Of
Memory) !

En fait, �a d�pend de la pression que tu mets sur la m�moire de ta
machine. Si tu as de nombreux processus qui ont une dur�e de vie fort
longue, c'est fort risqu�. Voil� ce qu'il se passe en r�alit� (IIRC) :

- Tout processus qui se trouve en m�moire risque d'�tre petit � petit
  swapp� au fur et � mesure que les caches disques et d'autres processus
  utilisent la m�moire. Ce n'est pas parce que tous tes processus
  tiennent dans ta RAM que cela n'arrivera pas : le kernel peut en d�cider
  autrement, ne serait-ce qu'� cause d'une activit� disque plus importante
  (un job updatedb, backup, etc., par exemple) ;

- Quand ton processus red�marre, le kernel va rechercher les pages dans
  le swap et les *copie* en m�moire. C'est ce point qui est important :
  apr�s un swapin/swapout, il existe *deux* copies de la page : une
  �ventuellement dirty en m�moire et l'autre dans le swap ;

- Les pages de ton processus qui se trouvent dans le swap y resteront
  *pendant toute la dur�e de vie de ce process*. Cela permet d'�viter
  une 'r�allocation' d'espace swap si la page doit de nouveau �tre swapp�e
  out. De plus, en cas de � trashing �, il y a beaucoup de chances qu'une
  page qui vient d'�tre r�cup�r�e par un swapin ne soit pas encore dirty
  et puisse �tre abandonn�e sans besoin de refaire un swapout fort
  co�teux.

On peut donc r�sumer l'histoire de la sorte : avec un kernel 2.2, on a
toujours :

        M�moire disponible = RAM + swap

Avec un 2.4, on a :

        M�moire disponible = RAM + swap - dup_pages ()          (1)

o� dup_pages () est une valeur variable en fonction de la charge du
syst�me (I/O et m�moire), et qui correspond au nombre de pages qui sont
� la fois dans la RAM et dans la swap. Il est forc�ment garanti que :

        0 <= dup_pages () <= MIN (RAM, swap)

Si tu as moins de swap que de RAM, il est fort probable que tu te
retrouves avec un swap *compl�tement* plein lors d'une utilisation un
peu prolong�e du syst�me (puisque tu arriveras � dup_pages () == swap
dans (1)). Si � ce moment, tu as 230 MB de RAM utilis�e et que tu as le
malheur d'ouvrir une image un peu grosse, BOUM ! OOM, avec tous les
d�sagr�ments que cela comporte (tu n'as plus que 26 MB de latitude,
alors que tu en aurais eu 26 + swap MB avec un 2.2). Pas bien.

J'esp�re que �a explique un peu la chose. J'essaierai de faire plus
clair/court la prochaine fois ;)

Cu,
Dash.

-- 
Free Dmitry Sklyarov !
-- 
Damien Diederen
[EMAIL PROTECTED]
http://users.swing.be/diederen/

[ Soyez pr�cis dans vos sujets svp afin de d�terminer directement  ]
[ le type de demande...                                            ]
[ Pour vous (d�s)inscrire, aller sur http://linuxbe.org/ml.php     ]
[ Archives de la mailing list: http://archives.linuxbe.org/linux/  ]
[ http://LinuxBe.org              Contact: [EMAIL PROTECTED]  ]

Répondre à