Swap, Swapiness und Standby: Der Swap beginnt beim Aufwachen

7

Ich verwende Ubuntu 12.04 auf einem Lenovo W500 (Core2Duo T9400, 4 GB RAM).

Aktueller Kernel: 3.2.0-32-generic # 51-Ubuntu SMP Mi Sep 26 21:33:09 UTC 2012 x86_64 x86_64 x86_64 GNU / Linux - aber die Probleme bestehen seit ein paar Monaten und überleben einige Software (einschließlich) Kernel) Updates

Ich stelle meinen Computer regelmäßig in Suspend-to-RAM (S3) und wenn der Computer wieder hochfährt, beginnt Ubuntu, Prozesse auszutauschen. Ich konnte beobachten, dass der genutzte Swap-Space sofort nach der Rückkehr der Box zu wachsen beginnt. Siehe Munin-Diagramme unten, die Lücke zeigt (offensichtlich) den Zeitrahmen in STR.

Speichernutzung bei Tag

Tagsüber ein- und auswechseln

Unnötig zu erwähnen, dass die Box beim Tauschen unbrauchbar wird und die Last über 10 steigt.

Was ich bisher gemacht habe:

  • Die Swappiness wurde von Standard (60) auf 10 gesenkt (über /etc/sysctl.conf: vm.swappiness = 10) - dies hat die Situation erheblich verbessert, aber manchmal kommt das Problem zurück, ich habe keinen Auslöser gefunden (wie die Speichernutzung) ) dafür vorerst
  • Senkung der Swappiness auf 5 - vielleicht hat dies wieder eine Verbesserung gebracht

Vor dem Wechsel zu STR lief die Box stundenlang ohne (Austausch-) Probleme stabil. Als das Problem heute erneut auftrat, habe ich dieses Skript (-> /programming/479953/how-to-find-out-which-processes-are-swapping-in-linux ) verwendet, um herauszufinden, welche Prozesse ausgeführt wurden haben den am häufigsten genutzten Swap Space. Das Ergebnis nach der Swap-Orgie ist wie folgt (alle PIDs mit mehr als 10 Millionen Nutzung):

Verwendeter Gesamttausch: 2121344 kB
=======================================
kB PID-Name
=======================================
439520 17491 Java
208148 22719 Firefox
136640 4337 / usr / bin / quodli
120852 5271 Chrom
81832 5264 Chrom
74284 17003 Chrom
65368 16960 Chrom
57088 3675 Chrom
56184 30923 Chrom
54412 11331 Chrom
54264 3878 Chrom
51508 18382 Chrom
50088 3163 zeitgeist-fts
49772 15543 Chrom
41344 15355 compiz
35040 1161 mysqld
32124 18374 Chrom
30940 11339 Chrom
30044 5752 Chrom
28780 4235 Plugin-Containe
24576 31246 Empathie-Chat
23840 17703 Chrom
22512 3207 Ubuntuone-Syncd
21588 1937 ntop
Sternchen 18336 2021
17200 3915 Chrom
13964 1935 Xorg
12036 10679 Chrom
11104 30782 Empathie
11056 2889 Python
10932 16565 knotify4

Die Java-Instanz oben ist IntelliJ. IntelliJ, Firefox und Chrome wurden ebenfalls verwendet, bevor die Box auf STR gestellt wurde.

Meine Frage ist also: Kann ich diese Auslagerungen irgendwie verhindern UND warum passieren sie? Hat es vielleicht etwas mit einer falschen Identifizierung von Leerlaufprozessen zu tun?

Ich suche keine Auflösungen wie:

  • Swap ausschalten
  • kaufe mehr RAM

Danke im Voraus!

BEARBEITEN: Weiterer Fortschritt der Speichernutzung am selben Tag, wobei im Allgemeinen immer dieselben Apps verwendet werden:

Geben Sie hier die Bildbeschreibung ein

EDIT2 (behoben): Ich habe meine diskrete ATI-Karte am Abend des 20. November deaktiviert und neu gestartet. Die Swap-Nutzung sank dann (siehe den fehlenden roten Bereich im Munin-Diagramm) und wurde seitdem nicht mehr angezeigt, während die Box einige Suspend / Full-On-Zyklen durchführte.

Geben Sie hier die Bildbeschreibung ein

Die Hauptursache scheint AMDs ATI fglrx-Treiber (Catalyst) für Radeon zu sein (in meinem Fall Radeon Mobility HD 3650).

mdo
quelle
Mit welchem ​​Programm haben Sie diese Grafiken erstellt? Sie sind äußerst nützlich.
Nanofarad
1
@ ObsessiveSSOℲ: Dies ist Munin ( munin-monitoring.org ). Um es mit Debian / Ubuntu zu verwenden apt-get install munin munin-node. munin-node ist das Paket, das die Daten tatsächlich sammelt, und munin ist eine "Serveranwendung", die Daten mehrerer Knoten sammeln kann. Das einfachste Setup: nur von localhost. Ubuntu platziert das Ergebnis in / var / cache / munin / www /.
mdo
Gutes Puzzle. Ich frage mich, ob es eine Möglichkeit gibt, die Werte von distressundmapped_ratio zu überprüfen .
ændrük
@ ændrük: Ich habe mir das von Ihnen verlinkte Thema angesehen, aber bisher keine Möglichkeit gefunden, diese Werte zu überwachen. Jetzt habe ich jedoch versucht, in die Dunkelheit zu schießen, und vm.overcommit_memory von Standard 0 auf 2 geändert. Ein Neustart der IDE danach führte dazu, dass der festgeschriebene Speicher auf über 7 GB anstieg. Ich betrachte das Verhalten für die nächsten Tage, da die Swap-Orgie nicht bei jedem Standby-Poweron-Zyklus stattfindet. Danke für deinen Beitrag.
Mdo

Antworten:

2

Ich vermute, dass Ihr Lenevo eine ATI-Grafikkarte verwendet. Obwohl ich nicht sicher bin, ob es die Grafikkarte ist, die Ihr Problem verursacht, kann das Folgende in der Reihenfolge der Auflistung hilfreich sein.

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

Unity wird nach der Installation der fglrx-Treiber nicht gestartet

Ich hoffe, das hilft Ihnen irgendwie weiter. Auf eigene Gefahr.

James
quelle
ATI ist korrekt, wird dies in den nächsten Tagen überprüfen.
mdo
Wahrscheinlich war dies die Hauptursache. Ich habe die diskrete ATI-Karte über das BIOS deaktiviert und laufe jetzt auf dem integrierten Intel-Chipsatz, allerdings mit reduzierter Aufmerksamkeit aufgrund fehlender glx-Unterstützung. Der Austausch fand seit einigen Tagen nicht mehr statt. Ich habe den neuesten ATI-Treiber vor einigen Monaten installiert (habe zuvor Intel ausgeführt) und ihn direkt von AMD heruntergeladen.
mdo