« Trucs:Aide-mémoire sur la mémoire » : différence entre les versions

De Lea Linux
Aller à la navigation Aller à la recherche
(conversion de la documentation originale de Léa par HTML::WikiConverter)
 
Aucun résumé des modifications
 
(8 versions intermédiaires par 5 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
<div class="leapar">Jonesy<jonesy@wanadoo.fr></div>
= Gérez la RAM et le swap =


La mémoire du pingouin est multiple et il peut être un véritable éléphant ! ;-)
par Philippe, Marc et Jonesy.


D'abord, il y a la '''RAM''', puis la '''SWAP''', qui est une partition du disque dur ou un fichier (plus souple, mais moins performant). Linux peut gérer plusieurs zones de SWAP, partitions et fichiers mélangés.
La mémoire du manchot est multiple et il peut être un véritable éléphant ! ;-)


Toute la mémoire à la disposition de Linux (RAM + SWAP + SWAP...) est gérée de façon transparente. <br />Linux réserve de la mémoire pour le noyau, les programmes indispensables et les applications, puis il utilise le reste comme un cache (buffers cache). <br />Dans ce cache, il charge les informations utiles au fur et à mesure jusqu'à remplir la RAM. Puis il remplace les informations devenues inutiles, la SWAP étant utilisée s'il ne peut rien remplacer. <br />Il est donc normal que presque toute votre RAM soit toujours utilisée.
== Introduction ==


Histoire d'enfoncer un peu plus le clou, il est fortement conseillé de '''déclarer une taille totale de SWAP égale à 2 fois celle de la RAM'''. <br />
D'abord, il y a la '''RAM''', puis la (ou le) '''swap''', qui est une partition du disque dur ou un fichier (plus souple, mais moins performant). Linux peut gérer plusieurs zones de swap, partitions et fichiers mélangés.


<div class="note">Voir [http://lea-linux.org/install/prepinstall.php3 Préparation à l'installation de Linux].</div>
Comme la swap est une partition du disque, elle est d'accès bien plus lente que la RAM. Linux utilise donc la RAM et la swap en privilégiant toujours la RAM. C'est à dire que s'il a quelque chose à placer en mémoire il va se demander s'il reste suffisamment de place en RAM. Si oui alors il occupe la RAM. Si non, il va regarder s'il y a des programmes qui ne tournent plus qui sont encore stockés en RAM en commençant par le plus vieux (lorsqu'un programme se termine, il n'est pas retiré de la RAM au cas où il serait relancé peu de temps après). S'il trouve une place mémoire occupée par un programme arrêté, il la vide et met le nouveau à la place. Si jamais il ne se retrouve qu'avec des programmes en cours d'exécution, il va déplacer les programmes qui ont le moins de priorité d'exécution vers la swap (c'est à ce moment qu'il commence à '''swaper''').


'''Pour savoir de quelle mémoire dispose votre Linux''', rien de plus simple :
Le résultat de cet algorithme est que la RAM apparaît toujours pleine alors que la swap est souvent vide. Ce genre de comportement est '''TOTALEMENT NORMAL''', et explique en grande partie la réactivité des systèmes GNU / Linux, systématiquement meilleure que celle des systèmes récents de Microsoft et Apple sur matériel équivalent !!! Ces derniers ne peuvent se passer d'espace d'échange, qu'ils utilisent abondamment, même s'il reste de la mémoire vive disponbible. Les seuls moments où il faut s'inquièter c'est lorsque RAM+swap sont tous les deux pleins. Cela veut probablement dire qu'un programme a déraillé et a mangé toute la mémoire disponible.
== Choix de la taille ==
HIstoriquement, lorsque la RAM avait un prix prohibitif et ne dépassait pas les 64Mo, on conseillait de "déclarer une taille totale de swap égale à 2 fois celle de la RAM". De nos jours, le standard est d'environs 1Go de RAM avec 1Go de  swap, ce qui devrait suffire largement pour une utilisation courante (on peut même s'en sortir honorablement avec moins de 128Mo). Notez aussi qu'avec un processeur 32bits, la limite RAM+swap ne peut dépasser les 4Go. La limite des processeurs 64bits n'est de toute façon pas atteignable par des particuliers à l'heure actuelle.<br />


<code>free -mt</code> => vous indiquera la mémoire totale, la mémoire physique (RAM) et la SWAP en Mo.
<cadre>Voir [[Install-prepinstall|Préparation à l'installation de Linux]].</cadre>


Par exemple, cela donne :
== Pour savoir de quelle mémoire dispose votre Linux ==


<div class="code">             total       used       free     shared    buffers     cached<br /><br />Mem:           249        218         31          0         74         69<br /><br />-/+ buffers/cache:         73        176<br /><br />Swap:          127          0        127<br /><br />Total:         377        218        159</div>
Rien de plus simple : <span class="code">free -mt</span> => vous indiquera la mémoire totale, la mémoire physique (RAM) et la swap en Mo. Par exemple, cela donne:


Notez que la fonction <code>free</code> ''grapille'' quelques Mo sur la RAM suivant les options que vous utilisez. Pour avoir un décompte exacte de la RAM d'une facon sympa, faites :
<span class="code">             total      used      free     shared    buffers    cached
Mem:          249        218        31          0        74        69
-/+ buffers/cache:        73        176
Swap:          127          0        127
Total:        377        218        159</span>


<code>linux_logo</code> => Il y a une surprise ! :-)
Notez que la fonction <span class="code">free</span> ''grapille'' quelques Mo sur la RAM suivant les options que vous utilisez.


Entre autres, vous avez '''aussi la commande''' :
Entre autres, vous avez aussi la commande <span class="code">top</span> qui affiche l'utilisation de la mémoire par processus et des pourcentages d'utilisation en temps réel.
 
<code>top</code> => qui affiche l'utilisation de la mémoire par processus et des pourcentages d'utilisation en temps réel.


Suite à ces commandes vous pouvez vous apercevoir que '''Linux n'utilise pas toute votre RAM''',
Suite à ces commandes vous pouvez vous apercevoir que '''Linux n'utilise pas toute votre RAM''',


<div class="note">allez voir [http://lea-linux.org/trucs/item21.html La mémoire n'est pas totalement détectée].</div>
<cadre>Allez voir [[Trucs:La_mémoire_n'est_pas_totalement_détectée|La mémoire n'est pas totalement détectée]].</cadre>


== Gérer ses partitions de swap ==
Pour les commandes suivantes, il faut être '''root'''.
Pour les commandes suivantes, il faut être '''root'''.


Si votre ou une de vos partitions '''SWAP n'est pas prise en compte automatiquement''', alors sachez que c'est le fichier <code>/etc/fstab</code> qui gére l'utilisation des différentes zones de swap.
Si votre ou une de vos partitions '''swap n'est pas prise en compte automatiquement''', alors sachez que c'est le fichier <span class="code">/etc/fstab</span> qui gère l'utilisation des différentes zones de swap.


La ligne correspondante à la SWAP ressemble à ceci :
La ligne correspondante à la swap ressemble à ceci :


<code>/dev/hda2 swap swap defaults 0 0</code> => c'est ce que j'ai dans mon fstab. Ou
<span class="code">/dev/hda2 swap swap defaults 0 0</span> => c'est ce que j'ai dans mon fstab. Ou


<code>/dev/hda2 none swap defaults 0 0</code> => marche aussi d'après le man.
<span class="code">/dev/hda2 none swap defaults 0 0</span> => marche aussi d'après le man.


'''Pour ajouter une zone de SWAP''', il faut la créer et ajouter une ligne similaire dans <code>/etc/fstab</code> en remplacant "<code>hda2</code>" par la bonne valeur. "<code>hda2</code>" étant la 2ème partition du 1er disque dur. <br />
'''Pour ajouter une zone de swap''', il faut la créer et ajouter une ligne similaire dans <span class="code">/etc/fstab</span> en remplacant <span class="code">hda2</span> par la bonne valeur. <span class="code">hda2</span> étant la 2ème partition du 1er disque dur. <br />


<div class="note">Voir aussi [http://lea-linux.org/trucs/item7.html Accélérer la swap].</div>
<cadre>Voir aussi [[Trucs:Accélérer_le_swap|Accélérer la swap]].</cadre>


Pour activer la SWAP : <code>swapon</code> et pour la désactiver : <code>swapoff</code>, avec l'option "<code>-a</code>" cela affecte toutes les zones de SWAP déclarées dans le fichier <code>/etc/fstab</code>.
Pour activer la swap : <span class="code">swapon</span> et pour la désactiver : <span class="code">swapoff</span>, avec l'option <span class="code">-a</span> cela affecte toutes les zones de swap déclarées dans le fichier <span class="code">/etc/fstab</span>.


'''Pour surveiller toute la SWAP''', faites :<br /><br /><code>swapon -s</code> => le résultat ressemble à ceci :
'''Pour surveiller toute la swap''', faites :<br /><br /><span class="code">swapon -s</span> => le résultat ressemble à ceci :


<div class="code">Filename                        Type            Size    Used    Priority<br /><br />/dev/hdb5                      partition      130748     0       -1</div>
<span class="code">Filename                        Type            Size    Used    Priority
/dev/hdb5                      partition      130748    0      -1</span>


<br /><br />Ce qui vous permettra de savoir si vous avez assez de SWAP et aussi assez de RAM. Car s'il utilise trop souvent la SWAP cela va ralentir votre système.
<br /><br />Ce qui vous permettra de savoir si vous avez assez de swap et aussi assez de RAM. Car s'il utilise trop souvent la swap cela va ralentir votre système.


Note : L'option "<code>s</code>" ne marche pas avant le '''Kernel 2.1.25'''.
Pensez à regarger le '''<span class="code">man</span>''' avant de jouer avec la swap !
 
Pensez à regarger le '''<code>man</code>''' avant de jouer avec la SWAP !


Voilà pour la mémoire de notre pingouin.
Voilà pour la mémoire de notre pingouin.


Ce T&A a été écrit par Philippe, Marc et Jonesy.
Ce T&A a été écrit par Philippe, Marc et Jonesy.
[[Catégorie:Trucs_Administration]]
 
[[Catégorie:Trucs Administration systeme]]

Dernière version du 24 mars 2016 à 15:47

Gérez la RAM et le swap

par Philippe, Marc et Jonesy.

La mémoire du manchot est multiple et il peut être un véritable éléphant ! ;-)

Introduction

D'abord, il y a la RAM, puis la (ou le) swap, qui est une partition du disque dur ou un fichier (plus souple, mais moins performant). Linux peut gérer plusieurs zones de swap, partitions et fichiers mélangés.

Comme la swap est une partition du disque, elle est d'accès bien plus lente que la RAM. Linux utilise donc la RAM et la swap en privilégiant toujours la RAM. C'est à dire que s'il a quelque chose à placer en mémoire il va se demander s'il reste suffisamment de place en RAM. Si oui alors il occupe la RAM. Si non, il va regarder s'il y a des programmes qui ne tournent plus qui sont encore stockés en RAM en commençant par le plus vieux (lorsqu'un programme se termine, il n'est pas retiré de la RAM au cas où il serait relancé peu de temps après). S'il trouve une place mémoire occupée par un programme arrêté, il la vide et met le nouveau à la place. Si jamais il ne se retrouve qu'avec des programmes en cours d'exécution, il va déplacer les programmes qui ont le moins de priorité d'exécution vers la swap (c'est à ce moment qu'il commence à swaper).

Le résultat de cet algorithme est que la RAM apparaît toujours pleine alors que la swap est souvent vide. Ce genre de comportement est TOTALEMENT NORMAL, et explique en grande partie la réactivité des systèmes GNU / Linux, systématiquement meilleure que celle des systèmes récents de Microsoft et Apple sur matériel équivalent !!! Ces derniers ne peuvent se passer d'espace d'échange, qu'ils utilisent abondamment, même s'il reste de la mémoire vive disponbible. Les seuls moments où il faut s'inquièter c'est lorsque RAM+swap sont tous les deux pleins. Cela veut probablement dire qu'un programme a déraillé et a mangé toute la mémoire disponible.

Choix de la taille

HIstoriquement, lorsque la RAM avait un prix prohibitif et ne dépassait pas les 64Mo, on conseillait de "déclarer une taille totale de swap égale à 2 fois celle de la RAM". De nos jours, le standard est d'environs 1Go de RAM avec 1Go de swap, ce qui devrait suffire largement pour une utilisation courante (on peut même s'en sortir honorablement avec moins de 128Mo). Notez aussi qu'avec un processeur 32bits, la limite RAM+swap ne peut dépasser les 4Go. La limite des processeurs 64bits n'est de toute façon pas atteignable par des particuliers à l'heure actuelle.

<cadre>Voir Préparation à l'installation de Linux.</cadre>

Pour savoir de quelle mémoire dispose votre Linux

Rien de plus simple : free -mt => vous indiquera la mémoire totale, la mémoire physique (RAM) et la swap en Mo. Par exemple, cela donne:

total used free shared buffers cached Mem: 249 218 31 0 74 69 -/+ buffers/cache: 73 176 Swap: 127 0 127 Total: 377 218 159

Notez que la fonction free grapille quelques Mo sur la RAM suivant les options que vous utilisez.

Entre autres, vous avez aussi la commande top qui affiche l'utilisation de la mémoire par processus et des pourcentages d'utilisation en temps réel.

Suite à ces commandes vous pouvez vous apercevoir que Linux n'utilise pas toute votre RAM,

<cadre>Allez voir La mémoire n'est pas totalement détectée.</cadre>

Gérer ses partitions de swap

Pour les commandes suivantes, il faut être root.

Si votre ou une de vos partitions swap n'est pas prise en compte automatiquement, alors sachez que c'est le fichier /etc/fstab qui gère l'utilisation des différentes zones de swap.

La ligne correspondante à la swap ressemble à ceci :

/dev/hda2 swap swap defaults 0 0 => c'est ce que j'ai dans mon fstab. Ou

/dev/hda2 none swap defaults 0 0 => marche aussi d'après le man.

Pour ajouter une zone de swap, il faut la créer et ajouter une ligne similaire dans /etc/fstab en remplacant hda2 par la bonne valeur. hda2 étant la 2ème partition du 1er disque dur.

<cadre>Voir aussi Accélérer la swap.</cadre>

Pour activer la swap : swapon et pour la désactiver : swapoff, avec l'option -a cela affecte toutes les zones de swap déclarées dans le fichier /etc/fstab.

Pour surveiller toute la swap, faites :

swapon -s => le résultat ressemble à ceci :

Filename Type Size Used Priority /dev/hdb5 partition 130748 0 -1



Ce qui vous permettra de savoir si vous avez assez de swap et aussi assez de RAM. Car s'il utilise trop souvent la swap cela va ralentir votre système.

Pensez à regarger le man avant de jouer avec la swap !

Voilà pour la mémoire de notre pingouin.

Ce T&A a été écrit par Philippe, Marc et Jonesy.