web-dev-qa-db-fra.com

Swap, Swappiness et Standby: l'échange commence au réveil

J'utilise Ubuntu 12.04 sur un Lenovo W500 (Core2Duo T9400, 4 Go de RAM)

Noyau actuel: 3.2.0-32-generic # 51-Ubuntu SMP Wed Sep 26 21:33:09 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux - mais les problèmes existent depuis quelques mois, survivant à quelques logiciels (y compris mises à jour du noyau)

Je mets régulièrement ma machine en suspension sur RAM (S3) et lorsque la machine revient, Ubuntu commence à échanger les processus. J'ai pu observer que l'espace de swap utilisé commençait à croître juste après le retour de la boîte. Voir les graphiques munin ci-dessous, l'écart (évidemment) montre le délai en STR.

Memory usage by day

Swap in/out by day

Inutile de dire que la boîte devient inutilisable lors de l'échange, la charge dépasse 10.

Ce que j'ai fait jusqu'à présent:

  • swappiness réduit par défaut (60) à 10 (via /etc/sysctl.conf: vm.swappiness = 10) - cela a beaucoup amélioré la situation, mais parfois le problème revient, je n'ai pas trouvé de déclencheur (comme l'utilisation de la mémoire ) pour cela pour l'instant
  • réduction de la permutation à 5 - cela a peut-être apporté une amélioration à nouveau

Avant d'aller à STR la boîte est restée stable sans problème (d'échange) pendant des heures. Aujourd'hui, lorsque le problème est apparu à nouveau, j'ai utilisé ce script (-> https://stackoverflow.com/questions/479953/how-to-find-out-which-process-are-swapping-in-linux ) pour trouver quels processus ont l'espace de swap le plus utilisé. Le résultat après l'orgie de swap est le même (tous PID avec plus de 10M d'utilisation):

 Swap global utilisé: 2121344 ko 
 =================================== ====== 
 kid nom pid 
 =============================== ========= 
 439520 17491 Java 
 208148 22719 firefox 
 136640 4337 /usr/bin/quodli
 81832 5264 chromé 
 74284 17003 chromé 
 65368 16960 chromé 
 57088 3675 chromé 
 56184 30923 chromé 
 54412 11331 chromé 
 54264 3878 chrome 
 51508 18382 chrome 
 50088 3163 zeitgeist-fts 
 49772 15543 chrome 
 41344 15355 compiz 
 35040 1161 mysqld 
 32124 18374 chrome 
 30940 11339 chrome 
 30044 5752 chrome 
 28780 4235 plugin-containe 
 24576 31246 empathy-chat 
 23840 17703 chrome 
 22512 3207 ubuntuone-syncd 
 21588 1937 ntop 
 18336 2021 astérisque 
 17200 3915 chromé 
 13964 1935 Xorg 
 12036 10679 chrome 
 11104 30782 empathie 
 11056 2889 python 
 10932 16565 knotify4 

L'instance Java en haut est IntelliJ. IntelliJ, Firefox et Chrome ont également été tous utilisés juste avant que la boîte ne soit placée dans STR).

Ma question est donc la suivante: puis-je empêcher ces échanges et pourquoi se produisent-ils? Est-ce peut-être lié à une mauvaise identification des processus inactifs?

Je ne recherche pas de résolutions comme:

  • désactiver l'échange
  • acheter plus de RAM

Merci d'avance!

EDIT: Progression supplémentaire de l'utilisation de la mémoire, le même jour, en utilisant largement les mêmes applications tout le temps:

enter image description here

EDIT2 (résolu): J'ai désactivé ma carte ATI discrète dans la soirée du 20 novembre et j'ai redémarré. L'utilisation du swap a ensuite chuté (voir la zone rouge manquante dans le graphique Munin) et n'a pas réapparu depuis lors alors que la boîte a fait quelques suspensions/cycles complets.

enter image description here

La cause principale semble être le pilote ATI fglrx d'AMD (Catalyst) pour radeon (Radeon Mobility HD 3650 dans mon cas).

7
mdo

Je soupçonne que votre Lenevo utilise une carte graphique ATI. Bien que je ne sois pas certain que ce soit la carte graphique qui cause votre problème, ce qui suit peut être utile à lire dans l'ordre de la liste.

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/391628

nity ne démarre pas après l'installation des pilotes fglrx

J'espère que cela vous aidera dans une certaine mesure. À vos risques et périls.

2
James