zur Startseite

Druckausgabe von https://privat.albicker.org
Iveco Daily 4x4, Hunde und multithematisches Blog

Linux-Systemwartung: Wenn swap den Rechner ausbremst

veröffentlicht am 06.06.2024 mit 651 Worten - Lesezeit: 4 Minute(n) in * LINUX *

Seit etwas mehr als 10 1/2 Jahren betreibe ich nun meinen PC hier zu Hause, Linux läuft auf der Maschine als Hauptbetriebssystem seit genau 10 Jahren. Und das Teil läuft und läuft und … 😄

Auch mit der Geschwindigkeit bin ich nach wie vor zufrieden - könnte mir aber vorstellen, irgendwann mal ein update zu tätigen, um mindestens dieselbe Rechenleistung mit geringerem Leistungsbedarf/Stromverbrauch zu realisieren.

Hardware

Derzeit sieht die Hardware hinsichtlich CPU und Grafik so aus:

~$ inxi -Fzx
System:
  Kernel: 6.1.0-21-amd64 arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
    Desktop: Cinnamon v: 5.6.8 Distro: Debian GNU/Linux 12 (bookworm)
Machine:
  Type: Desktop Mobo: ASUSTeK model: P8Z77-M v: Rev 1.xx
    serial: <superuser required> UEFI: American Megatrends v: 2203
    date: 12/18/2015
CPU:
  Info: quad core model: Intel Core i5-3570 bits: 64 type: MCP
    arch: Ivy Bridge rev: 9 cache: L1: 256 KiB L2: 1024 KiB L3: 6 MiB
  Speed (MHz): avg: 1625 high: 1700 min/max: 1600/3800 cores: 1: 1600
    2: 1600 3: 1700 4: 1600 bogomips: 27282
  Flags: avx ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
  Device-1: Intel Xeon E3-1200 v2/3rd Gen Core processor Graphics
    vendor: ASUSTeK P8H77-I driver: i915 v: kernel arch: Gen-7 bus-ID: 00:02.0
  Device-2: Logitech Webcam C270 type: USB driver: snd-usb-audio,uvcvideo
    bus-ID: 3-1.5:3
  Display: x11 server: X.Org v: 1.21.1.7 with: Xwayland v: 22.1.9 driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: crocus gpu: i915 resolution:
    1: 1920x1200~60Hz 2: 1920x1200~60Hz
  API: OpenGL v: 4.2 Mesa 22.3.6 renderer: Mesa Intel HD Graphics 2500 (IVB
    GT1) direct-render: Yes

und RAM wird mit Memory: 15.44 GiB ausgegeben, also 16GB. Und dann ist da noch eine Festplatte mit 2TB verbaut.

Wenn RAM nicht reicht

Nun kann man einen solchen Rechner schon bzgl. RAM an seine Grenzen bringen: Firefox mit etlichen Fenstern mit jeweils vielen offenen Tabs, Thunderbird, Hugo Server (zum Schreiben dieser Webseite), darktable (RAW-Konverter und Bildarchiv), Chromium für spezielle Web-Angebote, Gnucash und noch etliches mehr - und dann sieht die Auslastung ganz gerne mal so aus:

=Bildbeschreibung=

Solch eine Information läßt sich auch per Terminal abfragen:

~# free -m
              gesamt       benutzt     frei      gemns.  Puffer/Cache verfügbar
Speicher:      15805       12346         593        3206        6424        3459
Swap:          24575        3309       21266

Bei einer Auslagerung in dieser Größenordnung (hier: 3,3GB) führt dann schon mal zu einer etwas zähen Performance des Rechners, insbesondere sind die vielen Festplatten-Zugriffe beim Zugriff auf den Swap-Speicher deutlich hörbar (eine SSD ist auch nur eine bedingte Lösung, denn deren Lebensdauer ist nicht wirklich auf die vielen schnellen Zugriffe ausgelegt).

Einfaches Schließen einzelner Fenster oder Anwendungen senkt zwar die Belegung des Speichers, führt aber nicht zur sofortigen Rückverlagerung aus dem Swap in den RAM-Speicher. Das kann aber händisch veranlaßt werden (im root-Terminal):

~# swapoff -a

Der Fortschritt der Aktion kann dann in einem normalen Terminal mit Benutzerrechten verfolgt werden:

~$ free -s 3 | grep Swap 
Swap:         292188      292188           0
Swap:         246564      246564           0
Swap:         215692      215692           0
Swap:         207016      207016           0
Swap:         197092      197092           0
Swap:         187624      187624           0

Wenn hier die Belegung auf 0 “heruntergezählt” ist, dann kann der Swap-Speicher im root-Terminal wieder zugeschaltet werden:

~# swapon -a

und kann mit leerem Swap-Speicher weiterarbeiten:

=Bildbeschreibung=

Swappiness

Das Speichermanagement - also auch die Aufteilung der Belegung zwischen RAM und swap - folgt recht komplexen Regeln. Eine ausführliche Beschreibung findet sich in diesem Artikel.

Ein Parameter, der auf diese Aufteilung Einfluss nimmt, ist die sog. Swappiness. Stark vereinfacht geht es hier darum, wie lange das System Daten von Dateien, die eigentlich auch von der Festplatte gelesen werden könnten, im Arbeitsspeicher (RAM ) behält zw. wie schnell dieser Speicher freigegeben wird.

Der aktuelle Wert kann im Root-Terminal wie folgt ausgelesen werden:

~# cat /proc/sys/vm/swappiness
60

Der Wert kann geändert werden wie folgt:

~# sysctl vm.swappiness=30
vm.swappiness = 30

Diese Änderung bleibt bis zum nächsten Neustart wirksam. Für eine permanente Änderung muß der Datei /etc/sysctl.conf eine Zeile hinzugefügt werden:

vm.swappiness=30

… und nun werde ich mal beobachten, wie sich das auf meiner alten Kiste hier auswirkt …

 


weitere Artikel