  Comment reduire la consommation memoire sous Linux.
  TToodddd BBuurrggeessss ((ttbbuurrggeessss@@uuoogguueellpphh..ccaa))
  _a_d_a_p_t_a_t_i_o_n _f_r_a_n_c_a_i_s_e _: David Cotton (dcotton@nat.fr)
  v0.1, derniere mise a jour le 21 mars 1998.

  L'objet de ce mini HowTo est de decrire comment utiliser Linux avec un
  systeme disposant de peu de memoire. En  considerant  que  l'achat  de
  plus  de memoire est hors de question, il existe de nombreux moyens de
  reduire la consommation de memoire sous Linux.  De nombreuses  distri-
  butions  Linux sont, telles qu'elles sont livrees, sont boulimiques du
  point de vue de la memoire. Elles lancent plus de services et  offrent
  plus  de  fonctionnalites  que  ce  dont  la plupart d'entre nous aura
  jamais besoin. En supprimant beaucoup  de  ces  services  vous  pouvez
  liberer  plusieurs  megas de veritable memoire. Mon propre systeme est
  un 486DX2-66  avec  12Mo  de  memoire  physique  et  12Mo  de  fichier
  d'echange.  Il  fait  tourner  Linux  avec  bonheur  depuis  les trois
  dernieres annees et, on peut l'esperer, il continuera a faire  tourner
  Linux pendant encore quelques annees. :)

  11..  LLee nnooyyaauu ddee LLiinnuuxx..

  Tous  les  noyaux  Linux  fournis  avec  les  distributions sont assez
  bouffis et contiennent plus de fonctions que ce qu'aucun d'entre  nous
  utilisera jamais.  Si vous n'avez pas recompile votre propre noyau, il
  est fortement recommande de le faire. Comment recompiler un noyau  est
  en dehors du domaine de ce document mais d'excellents livres et guides
  sur Linux couvrent ce sujet en details.

  Si vous recompilez votre noyau,  pensez  a  ne  pas  inclure  plus  de
  fonctions  que ce dont vous avez besoin. Par exemple : combien d'entre
  vous ont inclus le support de PLIP dans leur noyau ? Combien  de  ceux
  qui  l'ont  inclus  l'utilisent effectivement ? Les noyaux plus petits
  requierent moins de temps pour se charger, utilisent moins de  memoire
  et de cycles CPU.

  Autre possibilite : les modules. Je ne les utilise pas personnellement
  parce que je les trouve encombrants. Si vous les utilisez et les aimez
  alors ils peuvent aider a soulager "l'embonpoint du noyau".

  22..  LLeess ccoonnssoolleess vviirrttuueelllleess

  Les  consoles  virtuelles  sont  un merveilleux moyen de liberer de la
  memoire. La majorite  des  distributions  de  Linux  lance  environ  6
  consoles  par defaut. En moyenne l'execution de 6 consoles necessite a
  peu pres 4Mo de  memoire.  En  retirer  deux  ou  trois  peut  liberer
  quelques megas de memoire.

  La  plupart des utilisateurs peuvent demarrer en ne lancant que 3 ou 4
  consoles.  Combien vous choisirez d'en retirer  est  une  question  de
  preferences  personnelles.  Souvenez vous simplement que moins vous en
  executerez, plus vos applications auront de la memoire pour tourner.

  Le fichier qui indique combien de  consoles  virtuelles  doivent  etre
  lancees est /etc/inittab. Pour desactiver des consoles :

  1. Chargez /etc/inittab dans un editeur de texte.

  2. Recherchez  une  ligne  ressemblant a (le point cle etant une ligne
     commencant par c1) :

     c1:12345:respawn:/sbin/getty tty1 38400 linux

     Commencez par le nombre le plus eleve  (ici  c6)  et  commentez  la
     ligne en inserant un '#' a la premiere colonne. Repetez cette etape
     autant de fois que necessaire. Souvenez vous que chaque  ligne  que
     vous mettez en commentaire est une console virtuelle de moins.

  3. Relancez votre machine pour que les changements prennent effet.

  33..  LLeess ddeemmoonnss

  Beaucoup  de distributions de Linux lancent de nombreux demons dont la
  majorite d'entre nous n'aura jamais l'usage. La plupart de ces  demons
  se  charge  par des scripts. La localisation de ces scripts, ainsi que
  leur nom dependent de votre distribution  de  Linux.  Les  scripts  de
  demarrage de la Slackware sont regroupes dans /etc/rc.d/rc.* .

  Avant  de  poursuivre,  une connaissance de la programmation de shell-
  scripts Unix serait un avantage  certain.  Si  toutefois  vous  n'avez
  aucune  experience  dans  l'ecriture de scripts pour Unix, ce qui suit
  est probablement la plus courte introduction  a  la  programmation  de
  scripts jamais ecrite.

  Prenez le script suivant :

       #!/bin/sh
       echo "salut tout le monde"
       #echo "adieu monde cruel"

  Ce  script  va  afficher  la  chaine  "salut tout le monde". Les shell
  scripts doivent contenir la ligne "#!/bin/sh" en toute premiere ligne.
  Apres  cela  chaque ligne sera executee comme si vous l'aviez tapee au
  clavier (considerez les scripts comme rien d'autre que des  macros  du
  clavier ameliorees).

  Les  lignes  qui commencent par un '#' sont dites commentees car elles
  ne sont pas executees par  l'interpreteur  de  commande.  Beaucoup  de
  scripts de demarrage, quand ils chargent des demons, ressemblent a :

       if conditionquelconque
         do quelquechose
       fi

  Ce  que  vous  voulez  faire,  c'est  mettre en commentaire toutes les
  lignes allant de la marque if a la marque fi.

  Vouloir localiser ou un demon est charge c'est rechercher  le  nom  du
  demon  dans  les  scripts de demarrage. Si je voulais trouver ou inetd
  est charge dans la Slackware je ferais :

       cd /etc/rc.d
       grep -n inetd rc.*

  33..11..  iinneettdd

  inetd permet de faire des choses telles que telnet, ftp et envoyer des
  requetes  de  type  talk a votre machine. Si vous n'utilisez pas votre
  systeme en tant que serveur et que vous n'avez pas besoin d'acceder  a
  l'un de ces services a distance vous pouvez supprimer inetd.

  33..22..  llppdd

  lpd  est  utilise  pour  imprimer des fichiers sur votre imprimante en
  employant la commande lpr. Si vous n'imprimez jamais a partir de votre
  station  Linux vous pouvez retirer lpd. Si toutefois vous possedez une
  imprimante HP Deskjet et aimeriez  imprimer  je  recommande  fortement
  l'ensemble      dj-printcap      disponible      sur      le      site
  <ftp://sunsite.unc.edu/pub/Linux/system/Printing/dj-printcap.tar.gz>

  33..33..  nnffssdd eett mmoouunnttdd

  Ces deux demons sont utilises pour lancer  un  serveur  NFS.  Si  vous
  n'utilisez  jamais  votre  systeme Linux comme serveur NFS vous pouvez
  les retirer en toute securite.

  33..44..  ppoorrttmmaapp

  Le demon portmap permet de  gerer  les  services  RPC  (NdT  :  Remote
  Procedure  Call  =  Execution  de fonctions sur une autre machine). Si
  vous ne lancez pas de serveur NFS ou tout autre  programme  RPC,  vous
  pouvez enlever portmap.

  33..55..  sseennddmmaaiill

  sendmail  est  un  autre demon necessitant pas mal de memoire. Si vous
  n'utilisez jamais votre station Linux pour relayer l'envoi de courrier
  electronique  et  que  vous  ne recevez jamais de courrier vous pouvez
  probablement le retirer. Si vous envoyez du courrier de votre  station
  Linux,  la  plupart des logiciels clients peuvent etre configures pour
  poster le courrier a partir d'un autre serveur.

  33..66..  lleess aauuttrreess

  Il peut y avoir d'autres demons lances par  votre  systeme  dont  vous
  n'avez  pas  besoin.  Retirez  ce  que vous jugez inutile. Deux demons
  doivent imperativement etre lances : syslogd et klogd.

  44..  CCoonncclluussiioonn

  Ce qui precede illustre le chemin que j'ai suivi  pour  economiser  la
  memoire sur ma station Linux. J'espere vous avoir fourni quelques cles
  pour vous permettre de conserver toute la  memoire  de  votre  station
  Linux.

  Bonne chance et bon bidouillage !

  Todd Burgess

  <tburgess@uoguelph.ca>

  <http://eddie.cis.uoguelph.ca/~tburgess>

