speicher

Swap unter Linux

Written by  on Dezember 28, 2019

Swap war ja schon öfter ein Thema im Blog. Irgendwie verwunderlich, dass das bei den heutigen Speichermassen noch immer Thema ist.
Aber weil es kürzlich im Linux Magazin war:
Find Out What Is Using Your Swap

Swap Space anlegen

Written by  on Januar 16, 2015

Zum Beispiel ein GB Swap anlegen geht einfach mit dd:

# time dd if=/dev/zero of=swapfile bs=1MB count=1024
1024+0 records in
1024+0 records out
1024000000 bytes (1.0 GB) copied, 14.979 s, 68.4 MB/s

real 0m14.986s
user 0m0.016s
sys 0m10.332s
# mkswap swapfile
Setting up swapspace version 1, size = 999996 KiB
no label, UUID=118351b9-94a4-4782-9470-643eaef3e5f4
# swapon swapfile
# cat /proc/swaps
Filename Type Size Used Priority
/dev/sda2 partition 1952764 211944 -1
/dev/sdb2 partition 1952764 0 -2
/root/swapfile file 999996 0 -3

Schneller gehts mit fallocate:

# fallocate -l 2G swapfile2
# mkswap swapfile2
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=50a99651-bb65-4ae7-a114-83d627670866
# swapon swapfile2
# cat /proc/swaps
Filename Type Size Used Priority
/dev/sda2 partition 1952764 211944 -1
/dev/sdb2 partition 1952764 0 -2
/root/swapfile file 999996 0 -3
/root/swapfile2 file 2097148 0 -4

Tritt dabei dieser Fehler auf

swapon: swapfile has holes

gibts vermutlich ein Problem mit dem verwendeten Dateisystem. Zum Beispiel auf NFS Freigaben lässt sich dieser Fehler erzeugen – aber dort macht der Swap doch keinen Sinn mehr.

Auch Abschalten geht ganz einfach:

# swapoff swapfile
# swapoff swapfile2
# cat /proc/swaps
Filename Type Size Used Priority
/dev/sda2 partition 1952764 211944 -1
/dev/sdb2 partition 1952764 0 -2

Das kann ziemlich lange dauern, falls der Swap schon gefüllt ist und vor dem aushängen erst leergeräumt werden muss.

 

 

Speicherfresser

Written by  on März 14, 2014

Anmerkung zum Artikel „Speicherfresser – Speicherverwaltung bei High-End-Systemen“ im Linuxmagazin 03/14

Einfach gesagt, geht es um eine Thema über das ich schon vor einiger Zeit gebloggt habe: Swap

Es geht in dem sieben seitigen Artikel unter anderem um die Frage, warum man auch auf modernen Systemen, mit massenhaft Speicher noch immer Swap-Speicher benötigt.

I/O intensive Prozesse können den Speicher von Anwendungen, die kaum I/O lastig sind, in den Swap Bereich zwingen. Am Besten verständlich wird das anhand eines Beispieles: Eine Datenbank hält jede Menge Speicher für verschiedene Buffer belegt. Der Großteil des nötigen Datensets liegt im RAM und alles ist gut. Dieses eingespielte System verursacht dann nur mehr wenig I/O. Läuft jetzt aber ein Backup, von dem die ganze Disk gelesen wird, wandern diese Daten in den Cache und zwingen so die eigentlichen Arbeitsdaten in den Swap. Im Anschluss wird die ursprüngliche Performance erst wieder erreicht, wenn die Daten den eigentlich unnötigen Cache wieder verdrängt haben.

Swap

Written by  on Januar 8, 2013

Ein weiterer Grund, warum der verbrauchte Speicher, nicht mit belegtem Speicher plus Swap übereinstimmt: …

As it turns out, swap means more than just pages swapped to disk. An application's binary and libraries need not stay in memory the whole time. The kernel can mark some of the memory pages as unnecessary at the time; but because the binary is at a known location on disk, there is no need to use the swap file. This is still counted as swap because the part of the code isn't resident. In addition, memory can be mapped to a disk file by the application. Because the whole size of the application (VIRT) includes the mapped memory, but it isn't resident (RES), it's counted as swap.

l-lpic3306-pdf.pdf

Speicherauslastung und Swap

Written by  on Februar 29, 2012

Wird der RAM in einem Linux-System zu wenig, wird auch der Swap-Bereich benutzt. Woher kommt es aber, dass manchmal noch Speicher frei ist, aber trotzdem schon Swap benutzt wird?
Laut Thorsten Robers, LPI 301, S. 306 gibt es zwei Bedingungen, wann Speicher in den Swap-Bereich ausgelagert wird:

Steht nicht genügend RAM zur Verfügung oder geht der Betriebssystemkern davon aus, dass der Prozess in nächster Zukunft nicht weiter ausgeführt werden muss, lagert der Kernel diese Daten in den Swap-Speicher aus.

Das bedeutet, dass der Kernel bereits präventiv den Swap-Bereich benutzt, um mehr Speicher für die tatsächlich aktiven Prozesse und den Platten-Cache frei zu haben.

Im Idealfall wird dieser (Anm: der Swap-Speicher) kaum genutzt, wobei nicht die Verwendung der [sic] Swap-Speichers per se auf einen Engpass hinweist. Erst wenn der Kernel Swap-Speicher exzessiv zur Auslagerung von Prozessen und Daten nutzt, wirkt sich das negativ auf die Gesamtperformance des Systems aus.

Das Verhalten "wie gerne" ein System den Auslagerungsspeicher benutzt, kann eingestellt werden unter der Bezeichnung swappiness:

# cat /proc/sys/vm/swappiness
60

60 ist der Default-Wert, 0 würde bedeuten, dass gar nichts mehr in den Swap-Bereich kommen soll.

Greift das PHP Memory Limit?

Written by  on November 1, 2011

Manchmal ticken PHP Prozesse einfach aus und belegen "unendlich viel" Speicher. Überlegt man sich Maßnahmen zur Limitierung des Speicherbedarfes, muss man sich auch darum kümmern, ob diese eingehalten werden und nicht wieder von einem PHP Script mit ini_set übergangen werden:

<?php

ini_set("memory_limit", "3G");

$array = array();

while (true) {
    $array[] = str_repeat("nureinstring", 10000);
}

Speicherverbrauch im Firefox

Written by  on Mai 2, 2011

Update: Die Ursache dürfte ein Problem mit der Firebug-Erweiterung sein.

Einmal kurz googlen und schon hat man ca. 1,7 Millionen Treffer zum Thema Firefox und den unglaublichen Speicherverbrauch. Viele Benutzer beschweren sich, dass der nette Mozilla-Browser ein paar Hundert MB verschlingt. Aber das ist in meinen Augen gar nicht das Problem. Das Problem das ich hier sehe ist einfach, dass FF den Speicher bereits im Leerlauf verschlingt. Es ist interessant eine Seite aufzumachen und den Browser einfach laufen zu lassen. Eine Stunde später wird der Rechner langsam… und langsamer und die Festplatte rattert wie wild. Firefox schließen und plötzlich ist wieder mehr als 1 GB Speicher frei!

Daraufhin hab ich natürlich das gleiche nochmal versucht. Und ich frage mich, wenn man die Sache im Windows-Taskmanager ansieht, warum der Browser außerdem permanent 10 – 50 % der CPU-Zeit verbraucht.

Zitat des Tages

Written by  on Mai 1, 2010

How Much Memory Do You Nee?
The answer is "more."

Web Performance Tuning