(Courriels de diversion: <sangloterez@amenuisais-pedale.com> <intriquee@piston-noisette.com> <necessiteront@suggera-soucions.com> <encrions@phosphorescence-defalqua.com> <agrafiez@fanatique-inaccessibles.com> <illustrais@echelonnee-huilier.com> <planifierez@sous-evaluerions-vautours.com> <extrapolant@adonnerais-regionalistes.com> <gorge@enfumez-remportes.com> <epures@surprenants-bancales.com> )


Le 20 Juin, Les glapions écrit :

> J'ai augmenté ma partition swap à 64 Mo, et là ca marche, mais 
> pourquoi m'a-t-on toujours raconté qu'il fallait que taille swap = ram 

  Je ne sais pas. Avec les vieux UNIX (en tous cas avec SunOS4) on
comptait généralement swap == 2 * RAM. Il faut bien voir qu'à partir du
moment où un programme commence à swapper (c'est à dire qu'à lui tout
seul il occupe plus de mémoire que la RAM), il devient quasi
inutilisable s'il est interactif (parce que les accès disque sont
beaucoup, mais alors _vraiment_ beaucoup,  plus lent que les accès
mémoire). Cela ne sert donc pas à grand chose d'avoir trop de swap dans
ce cas. Pour le traitement de la mémoire et du swap, il y a
essentiellment deux écoles :
  1a - tout ce qui est en mémoire a sa place dans le swap ;
  1b - le swap est seulement une extension de la mémoire.

  On peut ajouter deux traitements possibles par l'OS des demandes
d'allocation mémoire par les programmes :
  1b - l'OS réserve ce qui est demandé, et s'il ne peut pas (au moment
       de la demande), il dit « non, y'a plus » ;
  2b - l'OS dit oui (à condition du moins que ce soit théoriquement
       possible), en partant du principe que la demande globale par
       tous les programmes varie dans le temps, et que d'ici que le
       programme particulier qui a fait la demande ait vraiment besoin
       de la mémoire, les choses peuvent évoluer (d'autres programmes,
       ont pu rendre la mémoire qu'ils avaient demandée, ils ont pu
       finir, l'administrateur a pu ajouter du swap...).

  Je n'ai pas vérifié, mais il me semble que Linux est dans la
catégorie (1b, 2b). Si mes souvenirs sont exacts, Domain OS (sur Apollo
[pas sûr du nombre de p et de l : le nom de ma grand-mère interfère
toujours avec le nom de ces machines dans mon esprit]) est dans la même
catégorie ; SunOS 4 est dans (1a, 1b).

  (1b, 2b) est ce qu'il y a de moins pratique pour le programmeur
d'application (il ne peut être sûr qu'une allocation mémoire a réussi),
mais le plus souple pour l'administrateur de la machine : il peut
ajouter le swap dès qu'il voit que l'existant ne va pas suffire (et, de
fait, je me souviens avoir pu faire ainsi à plusieurs reprises : « oh
putaingue, le swap se remplit ! Ajoutons un fichier de 50 Mégas ! » ;
l'oreille peut aider en de tels cas : ça gratte sec !).

  Donc la règle swap == RAM est sans doute dérivée de la règle
pifométrique ancienne swap == 2 * RAM, qui part du principe que quand
tu as swappé l'équivalent de ta RAM, le système devient tellement lent
que le temps que tu obtiennes le résultat de ton programme, tu auras pu
faire valoir tes droits à la retraite ; mieux vaut arrêter les frais
tout de suite.

  Perso, comme je fais souvent tourner des programmes batch, j'ai pris
swap == 2 * RAM à la maison (et j'ai acheté de la RAM pour le
boulot...).

> ??? C'est vrai que netscape (fourni avec la RH 5.1) est très bogué...

  J'ai Netscape 4.5. Je trouve qu'il plante peu. Mais par contre je le
trouve excessivement vorace en mémoire et en CPU (P90, 32 MO sur
zapata).

> Que se passe-t-il "normalement" lorsque l'on dépasse la quantité 
> ram+swap. Est-ce que le plantage de l'application qui réclame la 
> mémoire est une voie normale de résolution du problème ???

  Cela dépend de la manière dont elle est codée (surprise !).
Normalement, cela devrait se passer ainsi. Mais je me souviens avoir
codé des applications qui résistaient à cela proportionnellement au
temps CPU qu'elles avaient déjà dépensé  Mais c'était sur SunOS4 ; je
ne suis pas sûr qu'avec Linux cela se passe ainsi.

> Pourquoi sous Linux, la taille du swap est fixe (meme en utilisant 
> un fichier au lieu d'une partition) ??? Quel en est l'avantage par 
> rapport à un swap qui peut voir sa taille varier (tant qu'il reste de la 
> place sur le HD of course).

  C'est normalement plus rapide d'avoir une partition de swap (ou même
d'avoir un fichier de swap fixe). Ceci dit, je trouve que c'est une
bonne idée de permettre l'augmentation dynamique du swap si
l'administrateur le demande (ce qui ne me semble raisonnable que sur
station individuelle, pas sur machine multi-utilisateur). Il n'y a plus
qu'à trouver quelqu'un de motivé pour le coder.

-- 
Marc Thirion              | Toulouse, France
Un Travail pour Chacun    : http://www.multimania.com/untravailchacun/
Marc.Thirion@ISOscope.com : http://www.ISOscope.com/Pérennité des logiciels et des systèmes



 _______________________________________________________________________
  Le CULTe sur le ouebe: http://savage.iut-blagnac.fr/