Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Matthieu Napoli

blog technique

[NSLU2] Optimisation de la gestion de la SWAP sous Debian

Dans certains contextes, la mémoire peut être un critère déterminant dans la gestion d'une machine. J'en fais l'expérience sur mon NSLU2 (machine embarquée tournant sous Linux, et pouvant faire office de serveur pour 50 euros).

Avec seulement 32Mo de RAM, la SWAP est très vite sollicitée, ce qui peut être embêtant si elle est sur une partition d'une clé USB par exemple (le nombre de lectures/écritures est limité). Il est donc possible de configurer le système pour qu'il n'utilise la SWAP que lorsqu'il en a vraiment besoin, et non pas comme sur un PC de bureau (c'est à dire à tout bout de champ).

La swappiness

La swappiness décrit la quantité de RAM libre en dessous de laquelle le système va utiliser la SWAP. Par défaut, c'est à 60% de RAM. Vous pouvez le constater vous même :

cat /proc/sys/vm/swappiness
60

Il serait plus judicieux de la passer à 15% par exemple. Pour cela, il faut executer la commande :

sysctl vm.swappiness=15

Pour que cette modification soit persistante pour tous les prochains démarrage, il faut éditer le fichier /etc/sysctl.conf et y ajouter la ligne suivante:

vm.swappiness = 15

Les priorités entre plusieurs SWAP

Si vous avez plusieurs partitions SWAP, il est possible de leur attribuer chacune une priorité pour, par exemple, favoriser une SWAP sur disque dur plutôt que sur clé USB.

Pour voir les priorités actuelles :

swapon -s
Filename  Type      Size   Used   Priority
/dev/sda2 partition 265032 173388 -1
/dev/sdb5 partition 257000 0      -2

Pour changer les priorités, il faut modifier le fichier /etc/fstab et pour chaque partition swap utiliser l'option pri=#. Plus le chiffre est élevé, plus la priorité est élevée.

nano /etc/fstab
# file system mount point type options                dump pass
  proc        /proc       proc defaults               0    0
  /dev/sda1   /           ext3 defaults,errors=remount-ro,noatime 0  1
  /dev/sda2   none        swap sw,pri=1               0    0
  /dev/sda1   /media/usb0 auto rw,user,noauto,noatime 0    0
  /dev/sda2   /media/usb1 auto rw,user,noauto,noatime 0    0
  /dev/sdb1   /hddsys     ext3 defaults,noatime       0    0
  /dev/sdb5   /hdd        ext3 defaults,noatime       0    0
  /hddsys/swap none       swap sw,pri=2               0    0

Notez également l'attribut noatime pour les autres partitions, pour éviter que la date d'accès aux fichiers soit mise à jour. En effet, ces écritures inutiles sur la mémoire Flash diminuent sa durée de vie.

Conséquences !

Paragraphe ajouté le 23/06/09

Après environ 1 mois d'utilisation, j'ai rencontré un problème lors de l'utilisation de TorrentFlux (installation détaillée dans un autre article) sur ma machine. Les problèmes en question sont expliqués dans un autre article. Au final, je me suis rendu compte que la swappiness était trop faible et par moment ça faisait paniquer le système qui tuait l'application mangeuse de mémoire.

Morale de l'histoire : Ne pas télécharger de torrent ? Euh, non mais ça aurait pu :)
J'ai ré-ajusté la swapiness à 40, car maintenant j'ai un disque dur externe pour la SWAP.

Donc, si vous constatez des instabilités au niveau de la mémoire, soyez peut être moins restrictif.

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: lundi 11 mai 2009 18:01 par MadMatt
Classé sous : , , , ,

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Les actualités de la semaine sur c2i.fr (14 mai - 20 mai) par Richard Clark le il y a 4 heures et 52 minutes

- Reactive Extensions : Consommer des services avec Rx Partie 3, les pièges à éviter par Léonard Labat le il y a 13 heures et 57 minutes

- SharePoint Blog Site, problème d’archives par Le Blog (Vert) d'Arnaud JUND le 05-20-2012, 13:09

- Soirée ALT.NET Mai - 3 présentations par #Rui le 05-18-2012, 11:59

- [ #SharePoint 2010][ #SQLServer 2012] AlwaysOn pour SharePoint (2/4) : Configuration (2e partie)… par Le blog de Patrick [MVP SharePoint] le 05-18-2012, 11:31

- Team Foundation Server 11: tous les trésors cachés du site d’équipe par Philess le 05-16-2012, 19:01

- [PowerShell 3] Télécharger et installer la documentation en ligne par Blog de SPBrouillet (Pierrick BROUILLET) le 05-16-2012, 17:36

- [#SharePoint 2010][#SQLServer 2012] AlwaysOn pour SharePoint (1/4) : Configuration (1ère partie)… par Le blog de Patrick [MVP SharePoint] le 05-16-2012, 12:10

- Job Day @MIC Brussels - .Net Developers on Mobile applications par Le Blog (Vert) d'Arnaud JUND le 05-15-2012, 20:26

- [SharePoint 2010] – SharePoint 2010, Windows (Server) 8 et des erreurs IIS sont dans une VM… par Blog de SPBrouillet (Pierrick BROUILLET) le 05-14-2012, 12:10