Forum: Mikrocontroller und Digitale Elektronik Raspi: Swapping abschalten, um Dateisystem härter gegen Stromabaschaltung zu machen?


von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Bei einem Kunden passiert es immer wieder, dass eingesetzte Raspis 
"kalt" vom Strom genommen werden, so dass es ebenfalls oft notwendig 
ist, die SD-Karten neu zu schreiben, weil der nächste Bootvorgang 
irgendwo mit einem blinkenden Cursor abstirbt.

Zwar wird immer das gleiche Image verwendet, lästig ist es aber 
trotzdem. Eine Raspi-USV passt leider vom Volumen her nicht in das 
System.

Hilft hier das Abschalten des Swappings? Dass das nicht absolut sicher 
ist, ist mir klar, es wäre aber schon ein Gewinn, wenn die SD-Karten 
weniger oft neu geschrieben werden müssten.

Ist: "sudo service dphys-swapfile stop" auch nach dem nächsten 
(regulären) Neustart noch gültig?

von Dergute W. (derguteweka)


Lesenswert?

Moin,
swap hat imho auf einem embedded system eh nix zu suchen. Wozu soll das 
gut sein? Wenn die "normale" Software nicht mehr ins RAM passt, brauchts 
mehr RAM; heimlich Flash ausleiern ist da sicher die falsche 
Alternative.

Aber gegen unsauber runtergefahrene filesysteme hilft Verzicht auf swap 
auch nicht. Vielleicht hilft sowas wie hier - klingt zumindest 
schluessig:

http://wiki.psuter.ch/doku.php?id=solve_raspbian_sd_card_corruption_issues_with_read-only_mounted_root_partition


Gruss
WK

von Ralf (Gast)


Lesenswert?


von Nein (Gast)


Lesenswert?

Ralf schrieb:
> Ich werfe mal das Stichwort "USV" in die Runde:

Hast du den Ursprungspost überhaupt gelesen?

von Nein (Gast)


Lesenswert?

Frank E. schrieb:
> Ist: "sudo service dphys-swapfile stop" auch nach dem nächsten
> (regulären) Neustart noch gültig?

Nein.
Mit systemctl disable dphys-swapfile lässt sich der Service dauerhaft 
deaktivieren.

von Stefanus kj (Gast)


Lesenswert?

härter zu machen?!?

HAst Du mal versucht die A hochzuskillen? :-) hehe

von disk-doctor (Gast)


Lesenswert?

Frank E. schrieb:
> Bei einem Kunden passiert es immer wieder, dass eingesetzte Raspis
> "kalt" vom Strom genommen werden, so dass es ebenfalls oft notwendig
> ist, die SD-Karten neu zu schreiben, weil der nächste Bootvorgang
> irgendwo mit einem blinkenden Cursor abstirbt.

Mach es so wie die 10⁹ Androiden: / read-only mounten

von Mike J. (linuxmint_user)


Lesenswert?

Frank E. schrieb:
> Bei einem Kunden passiert es immer wieder, dass eingesetzte Raspis
> "kalt" vom Strom genommen werden, so dass es ebenfalls oft notwendig
> ist, die SD-Karten neu zu schreiben, weil der nächste Bootvorgang
> irgendwo mit einem blinkenden Cursor abstirbt.

Hat der Kund die Möglichkeit vorher auf einen Ausschalter zu drücken und 
kurz zu warten bis die grüne LED nicht mehr blinkt?

https://howchoo.com/g/mwnlytk3zmm/how-to-add-a-power-button-to-your-raspberry-pi

Dazu brauchst du aber etwas Platz für den Taster und einen freien 
GPIO-Pin auf dem Pi.

von Stefan F. (Gast)


Lesenswert?

Linux greift zögerlicher auf den Swap Speicher zu, als Windows. Wenn du 
da mehr als 200 Kilobytes drin hast, kannst du bereits von (RAM) 
Speichermangel ausgehen, oder einen Softwarefehler mit Memory Leck.

Wenn der Rechner häufig auf die Auslagerungsdatei zugreift, wird er 
unerträglich langsam. Dann sind primär andere Maßnahmen angesagt, als 
den Speicher abzuschalten.

Wenn du schon so fragst bist du vermutlich bereits sicher, die 
Auslagerungsdatei nicht zu benötigen. In diesem Fall kann man aber auch 
davon ausgehen, dass Linux nur sehr selten darauf zugreift.

Ich habe seit 2 Monaten einen Raspberry Pi unter Tisch liegen, der 
ununterbrochen ein Shell Script ausführt, und Messwerte in zwei Logfiles 
schreibt. Vom Swap nutzt er genau 0 Bytes.

Wenn ich die Swap Datei auf meinem Gerät deaktivieren würde, würde sich 
dadurch praktisch nichts ändern.

Stromausfall bei Zugriff auf die SD Karte sollte theoretisch keine 
Probleme auslösen. Ich habe bei meinem Gerät schon öfters einfach das 
Netzteil ausgesteckt, ohne irgendwelche negativen Folgen. Von den 
Laptops und Smartphones in meiner Familie kenne ich das auch nicht 
anders. Alte Reste im Swap stören nicht und die Filesysteme ext3 und 
ext4 sind ziemlich unempfindlich.

An deiner Stelle würde ich mal gezielt untersuchen, was den Ausfall der 
Speicherkarte auslöst. Ich vermute sehr stark, dass es nicht der 
Stromausfall ist, sondern vielleicht eher simpler Verschleiss durch zu 
viele Schreibzugriffe.

Die Basis Installation (Raspbian ohne GUI) ist in dieser Hinsicht 
jedenfalls in Ordnung. Aber wenn du da z.B. eine Datenbank, einen 
Webserver oder gar einen Web Browser drauf laufen lässt, dann wundert es 
mich nicht.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Stefanus F. schrieb:

> Die Basis Installation (Raspbian ohne GUI) ist in dieser Hinsicht
> jedenfalls in Ordnung. Aber wenn du da z.B. eine Datenbank, einen
> Webserver oder gar einen Web Browser drauf laufen lässt, dann wundert es
> mich nicht.

Es läuft ein Browser (Chromium) im Kiosk-Mode. Das (vorübergehende) 
Abschalten des Swap mit oben beschriebenem Kommando hat keine 
Leistungseinbuße sichtbar werden lassen, also wird Swap wohl nicht 
benötigt.

Die SD-Karten sind überigens nicht kaputt, mur das Dateisystem ist 
hinüber. Ich kann sie immer wieder mit einem frischen Image 
überschreiben und sie funktionieren.

Wie kann ich dem Browser abgewöhnen, zeigs zu speichern? (Cache 
abschalten?)

Wo und wie geht das bei Chromium?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Frank E. schrieb:
> Wie kann ich dem Browser abgewöhnen, zeigs zu speichern? (Cache
> abschalten?)

Du könntest das Problem mit einer Ramdisk umgehen, die Du so mountest, 
daß das vom Browser (unnötig) gespeicherte Geraffel dort untergebracht 
wird. Setzt natürlich voraus, daß der Pi dafür genug RAM hat.

von Hasso (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
>
> Du könntest das Problem mit einer Ramdisk umgehen, die Du so mountest,
> daß das vom Browser (unnötig) gespeicherte Geraffel dort untergebracht
> wird. Setzt natürlich voraus, daß der Pi dafür genug RAM hat.

Wenn das RAM für eine Ramdisk nicht ausreicht, oder wenn du Daten noch 
permanent halten möchtest, kannst du Caches, Logfiles, etc. auch auf 
einen zusätzlich gesteckten USB Stick auslagern. Wenn es hier auch 
Probleme mit dem Filesystem gibt, dann ruf bei jedem Boot noch "fsck" 
auf und lass es reparieren.

von Tim T. (Gast)


Lesenswert?

Bau doch einfach mit Buildroot ein Live System, dann brauchst du die SD 
nach dem Starten garnicht mehr...

von Axel S. (a-za-z0-9)


Lesenswert?

Frank E. schrieb:
> Bei einem Kunden passiert es immer wieder, dass eingesetzte Raspis
> "kalt" vom Strom genommen werden, so dass es ebenfalls oft notwendig
> ist, die SD-Karten neu zu schreiben, weil der nächste Bootvorgang
> irgendwo mit einem blinkenden Cursor abstirbt.

> Hilft hier das Abschalten des Swappings?

Nein. Bzw. nur um drei Ecken.

Ohne swap wird in der Summe vermutlich weniger auf die Karte 
geschrieben, was die Karte insgesamt schont (denn per wear leveling 
verteilt der Controller der Karte den "Schaden" ja auf der ganzen 
Karte).

Wenn der RasPi beim Boot hängen bleibt, liegt das aber fast sicher 
nicht an einer defekten swap-Partition, sondern an einem defekten 
Filesystem. Denn selbst wenn es beim Schreiben des swaps einen Fehler 
geben sollte (power loss z.B.) dann ist nur der eben geschriebene Sektor 
fehlerhaft. Das ist Linux aber egal, weil der swap beim Boot ohnehin als 
leer angenommen wird. Ausnahme: Hibernate im swap. Linux prüft nur die 
Signatur der swap-Partition, die wird im Betrieb aber nicht geschrieben, 
kann also auch nicht korrumpieren.

von Nein (Gast)


Lesenswert?

Axel S. schrieb:
> Wenn der RasPi beim Boot hängen bleibt, liegt das aber fast sicher
> nicht an einer defekten swap-Partition

Beim Raspi wird in der Regel eine Swap-Datei auf / verwendet.

von S. R. (svenska)


Lesenswert?

Frank E. schrieb:
> Es läuft ein Browser (Chromium) im Kiosk-Mode. [...]

Kannst du das Gesamtsystem aus einer Ramdisk laufen lassen?
Das wird dann beim Start geladen und gut ist.

> Wie kann ich dem Browser abgewöhnen, zeigs zu speichern? (Cache
> abschalten?)

Das wirst du so einfach nicht hinbekommen, zumindest nicht zuverlässig. 
Am einfachsten mountest du /home in eine Ramdisk. Mit zram ist das auch 
nicht so verschwenderisch wie man vermuten würde.

Der aus meiner Sicht sinnvollste Weg wäre aber, das gesamte System 
schreibgeschützt zu mounten oder - besser - an sich "immutable" zu 
machen (z.B. mit squashfs als Root-Dateisystem).

Mit einem normalen Debian ist das aber nicht ganz trivial.

von Daniel (Gast)


Lesenswert?

Wirf diese Distro weg und zieh was eigenes hoch, so dass du haargenau 
weißt, was alles auf dem System Dateien zum schreiben öffnet. Dann mach, 
wie oben schon erwähnt, ein read-only Rootfs und pack den Cache von 
Chromium in eine separate Partition. Nimm da ein robustes Dateisystem. 
Wenn ext4, dann mit data=journal mounten. Falls sich die Partition beim 
Booten nicht mounten lässt, formatier sie neu. Ist ja eh nur der Cache 
drauf.

von S. R. (svenska)


Lesenswert?

Daniel schrieb:
> Nimm da ein robustes Dateisystem.
> Wenn ext4, dann mit data=journal mounten.

Das bringt bei SD-Karten, je nach Hersteller, wenig oder nichts.
Wir hatten die Diskussion schon, manche SD-Karten zerstören bei 
"Stromausfall ohne Herausziehen" zufällige Eraseblocks. Da kann auch ein 
Dateisystem nichts mehr machen.

von Daniel (Gast)


Lesenswert?

Oder ersetz /sbin/init durch ein Shellskript, das dem read-only 
gemounteten Rootfs ein Overlayfs verpasst. Danach kannst du dann ein 
exec auf das richtige init machen.

S. R. schrieb:
> Wir hatten die Diskussion schon, manche SD-Karten zerstören bei
> "Stromausfall ohne Herausziehen" zufällige Eraseblocks.

Da es kein privates Projekt ist, sollte man in der Lage sein die 
Hersteller abzuklappern um einen zu finden, der bei einem bestimmten 
Modell garantiert, dass keine zufälligen Eraseblöcke zerstört werden.

von Jan L. (ranzcopter)


Lesenswert?

Stefanus F. schrieb:
> Linux greift zögerlicher auf den Swap Speicher zu, als Windows.

Steile These. Unter Linux bestimmt der Systemparameter „swappiness“ 
(vm.swappiness in sysctl.conf) den Grad der Swap-Nutzung.
Kann jeder selber setzen wie er‘s braucht, und Distris nehmen halt 
irgendeinen im Schnitt sinnvollen Default...

von S. R. (svenska)


Lesenswert?

Daniel schrieb:
> Da es kein privates Projekt ist, sollte man in der Lage sein die
> Hersteller abzuklappern um einen zu finden, der bei einem bestimmten
> Modell garantiert, dass keine zufälligen Eraseblöcke zerstört werden.

Kann man machen, gilt aber im Zweifelsfall nur für eine bestimmte 
SD-Kartenreihe mit einer bestimmten Firmware. Lothar hatte da auch mal 
Kontakt.

Es gibt SD-Karten für den professionellen Einsatz (mit SLC-Flash und 
geringen Kapazitäten), aber die kosten entsprechend. Und wenn man sowas 
hat, dann funktioniert auch das jetzige System zuverlässig.

von Stefan F. (Gast)


Lesenswert?

Ich würde das persönliche Verzeichnis, wo der Browser all seine Files 
speichert, sowie /tmp in eine Ramdisk auslagern. Zusätzlich noch im 
Browser einstellen, dass er möglichst wenig Cachen soll und keine 
Chronik anlegen soll (sonst muss die Ramdisk groß sein). Dann könnte es 
klappen.

von David R. (Gast)


Lesenswert?

Swissbit z.B. bewirbt seine SD-Karten mit "Power Fail protection & Read 
Disturb Management".

von Weihnachtsmann (Gast)


Lesenswert?

Unter Ubuntu (und vermutlich auch unter Debian) gibt es das Paket 
overlayfs.
Damit macht man mit einer Konfigurationsoption das System Read-Only, 
muss sich aber nicht mit Fehler von Software rumschlagen, die 
irgendwohin schreiben will.
Falls mal neue Software oder ein Update drauf soll, die Option 
zurücksetzen, Software installieren, Option wieder auf overlay und 
fertig.

von Harry L. (mysth)


Lesenswert?

Der einfachste Weg um ohne große Konfigurations-Orgien zu einem Ro-FS 
auf einem RPi zu kommen ist OpenWRT.

Raspbian "kann" man zwar auf Ro umbauen, aber dazu sollte man über 
profundes Linux-Grundlagen-KnowHow verfügen, und "Linux from Scratch" 
schon mal abgearbeitet haben.

Von OpenWRT gibt es auch eine RaspberryPi-Variante.

: Bearbeitet durch User
von Mike J. (linuxmint_user)


Lesenswert?

Jan L. schrieb:
> Stefanus F. schrieb:
>> Linux greift zögerlicher auf den Swap Speicher zu, als Windows.
>
> Steile These. Unter Linux bestimmt der Systemparameter „swappiness“
> (vm.swappiness in sysctl.conf) den Grad der Swap-Nutzung.
> Kann jeder selber setzen wie er‘s braucht, und Distris nehmen halt
> irgendeinen im Schnitt sinnvollen Default...

Mein XUbuntu zeigt bei dem SWAP 0MByte an und bei anderen Linux-Systemen 
war es eigentlich auch so. Die Standardeinstellung legt einfach fest 
dass man erst mal den RAM nutzt bevor man etwas auf die Festplatte 
auslagert.

Bei WinDos wird immer gleich in die SWAP-Datei geschrieben damit der RAM 
möglichst leer ist und gleich viel Speicher verfügbar ist im Falle dass 
man ein Programm startet und dann nicht noch ausgelagert werden muss.


Windows geht aber allgemein nicht gerade sparsam mit dem RAM um.

Wenn ich auf einem Windows-System (Win7  4GByte RAM  SWAP 
ausgeschaltet da es eine SSD ist) das CodeComposerStudio starte und dann 
noch Firefox öffne, dann meckert er schon rum dass ein Programm 
geschlossen werden soll.

Unter XUbuntu kann ich den CCS öffnen, Thunderbird, und in Firefox 
einige Seiten öffnen ohne dass der RAM-Verbrauch bei über 2GByte liegt.

von Anon Y. (avion23)


Lesenswert?

Ich verwende BTRFS und ZRAM.

BTRFS sollte auf SD-Karten default ein copy-on-write ausführen. Einen 
Datenverlust wegen BTRFS hatte ich schon sehr sehr lange nicht mehr, bei 
ext4 auf SD-Karten kann ich die wochen abzählen.

von Axel S. (a-za-z0-9)


Lesenswert?

Nein schrieb:
> Axel S. schrieb:
>> Wenn der RasPi beim Boot hängen bleibt, liegt das aber fast sicher
>> nicht an einer defekten swap-Partition
>
> Beim Raspi wird in der Regel eine Swap-Datei auf / verwendet.

Hmm. Fast. Das Package dphys-swapfile legt in der Tat ein swapfile unter 
/var/swap an. Welcher Idiot hat denn das verbrochen? Das schöne ist, daß 
man das relativ einfach los wird:
1
$sudo -i
2
#dphys-swapfile swapoff
3
#dphys-swapfile uninstall
4
#apt-get purge dphys-swapfile

(alles für RaspBian)

von S. R. (svenska)


Lesenswert?

Axel S. schrieb:
> Welcher Idiot hat denn das verbrochen?

Linux ohne Swap ist ... schwierig.

Lazy allocations, Overcommitment und so weiter haben dazu geführt, dass 
die meisten Anwendungen erstmal Speicher auf Vorrat reservieren (malloc 
gibt ja kein NULL zurück) und dann nur teilweise nutzen.

Ein normales Linux ohne Overcommitment zu benutzen, macht keinen Spaß. 
Ich hab das eine Weile probiert - die meisten Apps stürzen schlicht ab 
oder greifen sich alles an RAM, was da ist. Man bekommt regelmäßig einen 
OOM-Killer zu gesicht.

Normales Linux mit Overcommitment (also die Standardeinstellung) braucht 
ein bisschen Swap zum atmen, weil sich daraus einige Tunables ableiten.

von Axel S. (a-za-z0-9)


Lesenswert?

S. R. schrieb:
> Axel S. schrieb:
>> Welcher Idiot hat denn das verbrochen?
>
> Linux ohne Swap ist ... schwierig.
>
> Lazy allocations, Overcommitment und so weiter haben dazu geführt, dass
> die meisten Anwendungen erstmal Speicher auf Vorrat reservieren (malloc
> gibt ja kein NULL zurück) und dann nur teilweise nutzen.

Da gebe ich dir durchaus Recht. Nur ...

1. das swapfile ist gerade mal 100MB groß (bei 256MB RAM, ein RasPi A+). 
Das ist im Zweifel ohnehin zu klein. Als ich damals<tm> mit Linux 
angefangen habe, hatte ich 8MB RAM. Und 16M Swap. Jetzt ist das eine 8G 
µSD. Da sind weit mehr als 100MB frei. IIRC hatte ich damals um 500MB 
Festplatte.

2. ein swap file ? RLY ?

> Normales Linux mit Overcommitment (also die Standardeinstellung) braucht
> ein bisschen Swap zum atmen, weil sich daraus einige Tunables ableiten.

Jo. Nur macht man dann halt eine Swap Partition. Ist von den Kosten her 
genau gleich. Vermeidet aber des Gerödel auf dem / Filesystem.

Wie gesagt: wer macht sowas ? Muß man wirklich jedem hinterher 
feudeln? Das macht keinen Spaß!

von Mike J. (linuxmint_user)


Lesenswert?

Axel S. schrieb:
> Jo. Nur macht man dann halt eine Swap Partition. Ist von den Kosten her
> genau gleich. Vermeidet aber des Gerödel auf dem / Filesystem.

Das Wear Leveling passiert aber glaube ich nur innerhalb der 
entsprechenden Partition. Wenn du z.B. eine 7,5GByte Partition hast, 
dann können alle Sektoren dort genutzt werden wenn etwas in die 
SWAP-Datei geschrieben wird.

Dann hast du noch eine 500MByte SWAP-Partition erstellt und dort muss 
sich das System dann mit den vorhandenen Sektoren zufrieden geben, es 
kann dann nur die anfassen.

So gesehen ist bei einem Flash-Speicher dann die Zellenabnutzung besser 
verteilt wenn man quasi den ganzen Speicherbereich nutzen kann und nicht 
nur die Sektoren der kleinen SWAP-Partition.

von Bauform B. (bauformb)


Lesenswert?

Mike J. schrieb:
> Axel S. schrieb:
>> Jo. Nur macht man dann halt eine Swap Partition. Ist von den Kosten her
>> genau gleich. Vermeidet aber des Gerödel auf dem / Filesystem.
>
> Das Wear Leveling passiert aber glaube ich nur innerhalb der
> entsprechenden Partition.

Echt jetzt? Seit wann kann der Kernel das denn? Die SD-Karte kann es 
jedenfalls nicht, die weiß nichts von Partitionen oder Dateisystemen.

> So gesehen ist bei einem Flash-Speicher dann die Zellenabnutzung besser
> verteilt wenn man quasi den ganzen Speicherbereich nutzen kann und nicht
> nur die Sektoren der kleinen SWAP-Partition.

Wie konfiguriert man das (CONFIG_xxx)? Oder Alternative Fakten?

Beitrag #5666509 wurde von einem Moderator gelöscht.
von Bauform B. (bauformb)


Lesenswert?

SCO schrieb im Beitrag #5666509:
> Wenn eine Applikation xyz MB anfordert, dass System aber
> weniger hat und den Mehrbedarf nicht durch Swap befriedigen
> kann, fliegt dafür irgendwas raus.

Ja, wenn. Auf einem normalen Desktop-PC. Aber:

Frank E. schrieb:
> Es läuft ein Browser (Chromium) im Kiosk-Mode. Das (vorübergehende)
> Abschalten des Swap mit oben beschriebenem Kommando hat keine
> Leistungseinbuße sichtbar werden lassen, also wird Swap wohl nicht
> benötigt.

In so einer wohl definierten Anwendung tritt das Problem eigentlich 
nicht auf. Oder man hat wirklich zu wenig RAM. Hier laufen ein paar 
Dutzend Rechner mit 256MB RAM ohne Swap. Zwar ohne Browser, aber mit 
graphischer Oberfläche. / ist ro gemountet, für /var/log usw. gibt es 
ein tmpfs. Witzigerweise kann man die (als User) garnicht sauber runter 
fahren.

von Weihnachtsmann (Gast)


Lesenswert?

SCO schrieb im Beitrag #5666509:
> Ohne Swap macht jedes Unix mit laufenden Prozessen Hara Kiri.
> Dazu muss noch nicht mal der Speicher besonders knapp sein.

So ein Unsinn.

> Wenn eine Applikation xyz MB anfordert, dass System aber
> weniger hat und den Mehrbedarf nicht durch Swap befriedigen
> kann, fliegt dafür irgendwas raus.

Noch mal Unsinn. Dafür ist ja Overcommitment da.
Einfach mal auf einem Linux unter /proc/meminfo den Wert von 
Committed_AS anschauen. Das ist der gesamte von Applikationen 
angeforderte Speicher.
Auf meinem 8GiB-Notebook hier ohne Swap sind das ca. 12GiB und es läuft 
ohne Abstürze oder sonstwas.

Es fliegt auch nicht "irgendwas" raus. Das folgt nämlich Regeln. Und 
kann unter Linux auch schön für jeden Prozess konfiguriert werden.
Man kann nämlich Prioritäten zuordnen und auch Prozesse vom oom-killer 
ausnehmen. Dafür ist der Parameter oom_adj_score da.

von S. R. (svenska)


Lesenswert?

Axel S. schrieb:
> 1. das swapfile ist gerade mal 100MB groß (bei 256MB RAM, ein RasPi A+).
> Das ist im Zweifel ohnehin zu klein.

Nein, denn die Standardeinstellungen für Overcommitment begrenzen, 
wieviel Speicher der Kernel maximal rausrückt. Wenn ich mich recht 
entsinne, sind das 1.5x RAM.

Wichtig ist nicht die Größe des Swaps, sondern dessen Existenz. Das 
war zu Zeiten von 8 MB RAM anders. :-)

> 2. ein swap file ? RLY ?

Ein Swapfile ist die für den Nutzer einfachste Lösung.

Weihnachtsmann schrieb:
> Auf meinem 8GiB-Notebook hier ohne Swap sind das ca. 12GiB und es läuft
> ohne Abstürze oder sonstwas.

Dein Notebook hat auch genug RAM. Ein 256 MiB Raspberry nicht. Da fällt 
das auf.

Weihnachtsmann schrieb:
> Es fliegt auch nicht "irgendwas" raus. Das folgt nämlich Regeln. Und
> kann unter Linux auch schön für jeden Prozess konfiguriert werden.
> Man kann nämlich Prioritäten zuordnen und auch Prozesse vom oom-killer
> ausnehmen. Dafür ist der Parameter oom_adj_score da.

Meiner Erfahrung nach funktioniert das ... eher mäßig. Mir hat der 
OOM-Killer öfter mal die gesamte XFCE4-Leiste pluginweise weggeschossen, 
bis er den RAM-Fresser erwischt hat.

Schalte einfach mal Overcommitment bei dir für ne Woche ab und schau zu, 
wie gut der OOM-Killer in der Praxis auf einem Desktop-System 
funktioniert.

von Stefan F. (Gast)


Lesenswert?

Ob Swap File oder Partition macht bei der Performance keinen großen 
Unterschied. Sobald RAM Mangel besteht, wird der Rechner so oder so 
extrem langsam.

Die Aktualisierungen des Inhaltsverzeichnisses kann man durch die Option 
"noatime" in /etc/fstab reduzieren. Der Kernel trägt dann nicht mehr 
ein, wann eine Datei zuletzt gelesen wurde. Aber selbst ohne diese 
Option schreibt der Kernes nicht jeden einzelnen Zugriff auf's Filesystm 
sondern sammelt in gewissen Intervallen (ich glaube default war 10 
Sekunden).

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Sehr interessante Infos die sich hier ergeben.

Bei einem Privatprojekt hat sich das Problem erledigt indem wir das 
rootFS auf einen USB Stick geworfen haben.
Bootfiles und Kernel müssen aber immer von der SD Karte kommen.
Das läuft auf dem SD Kartefresser ala RasPi v1, der mit nur einem Kern.
Meine steile These: Der Kondesnator auf dem USB Stick lässt dem Flash 
noch genug Zeit die letzte Transaktion abzuschließen.

Auf dem RasPI sterben SD Karte und SoC gleichzeitig.

Der RasPI ist in einer 2m langen Uhr verbaut und die wird immer hart 
ausgeknipst über nen Netzschalter.

Billige USB Sticks frissts aber trotzdem nach so 2 Jahren, da hat dann 
wohl das SWAP file doch den billigen Flash durchgeknabbert.
Mit einem besseren USB Stick sollts länger halten.

Projekt:
http://www.fritzler-avr.de/HP/dasuhr.php

von offline (Gast)


Lesenswert?

Man kann auch die µC-Lösung (Kondensator+LowU-Trigger+EEPROM) auf einen 
rPi übertragen:

Nach 'sync' muss man dann noch 'echo 1 >/sys/block/mmcblk0/mmcblk0p2/ro' 
ausführen.

von Rolf M. (rmagnus)


Lesenswert?

Jan L. schrieb:
> Stefanus F. schrieb:
>> Linux greift zögerlicher auf den Swap Speicher zu, als Windows.
>
> Steile These.

Aber wahr. Windows fängt schon beim Booten an, auszulagern, selbst wenn 
man 128 GB RAM hat. Den Fall der leeren Auslagerungsdatei habe ich unter 
Windows noch nie gesehen.

S. R. schrieb:
> Lazy allocations, Overcommitment und so weiter haben dazu geführt, dass
> die meisten Anwendungen erstmal Speicher auf Vorrat reservieren (malloc
> gibt ja kein NULL zurück) und dann nur teilweise nutzen.

Da hast du Ursache und Wirkung verwechselt. Lazy allocation und 
Overcommitment wurden ja nicht zum Spaß eingeführt, sondern gerade weil 
so viele Programme erstmal fleißig Speicher allokieren, den sie (noch) 
gar nicht brauchen.

von Jan L. (ranzcopter)


Lesenswert?

Rolf M. schrieb:
> Jan L. schrieb:
>> Stefanus F. schrieb:
>>> Linux greift zögerlicher auf den Swap Speicher zu, als Windows.
>>
>> Steile These.
>
> Aber wahr. Windows fängt schon beim Booten an, auszulagern, selbst wenn
> man 128 GB RAM hat. Den Fall der leeren Auslagerungsdatei habe ich unter
> Windows noch nie gesehen.

der Punkt war: unter Linux ist das ein konfigurierbarer Parameter. 
Während Ubuntu das üblicherweise auf "60" setzt, setzt (mein älteres) 
Raspbian das auf "1".

Schau' halt nach, was aktuell eingestellt ist (cat 
/proc/sys/vm/swappiness)- - und dann schreibe mal "100" rein. Und 
schwupps swappt Linux schneller, als man gucken kann...

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

>> Aber wahr. Windows fängt schon beim Booten an, auszulagern, selbst wenn
>> man 128 GB RAM hat. Den Fall der leeren Auslagerungsdatei habe ich unter
>> Windows noch nie gesehen.

Jan L. schrieb:
> der Punkt war: unter Linux ist das ein konfigurierbarer Parameter.
> Während Ubuntu das üblicherweise auf "60" setzt, setzt (mein älteres)
> Raspbian das auf "1".

Auch mein Laptop (mit Debian 8GB RAM) nutzt gerade 0 Bytes von der Swap 
Partition. Solange genug RAM vorhanden ist, scheint dieser Parameter 
wenig zu bewirken.

von Linux T. (Gast)


Lesenswert?

Stefanus F. schrieb:
> Auch mein Laptop (mit Debian 8GB RAM) nutzt gerade 0 Bytes von der Swap
> Partition. Solange genug RAM vorhanden ist, scheint dieser Parameter
> wenig zu bewirken.

Warum spekulieren?
https://access.redhat.com/solutions/103833

von Mike J. (linuxmint_user)


Lesenswert?

Bauform B. schrieb:
> Echt jetzt? Seit wann kann der Kernel das denn? Die SD-Karte kann es
> jedenfalls nicht, die weiß nichts von Partitionen oder Dateisystemen.

Du scheinst mit dem "wear leveling" Recht zu haben, das passiert 
scheinbar unabhängig von einer Partition.

Bei zu kleinen Partitionen hat man aber immer noch ein paar Nachteile 
wegen der Funktion des Trim-Befehl, hier werden teilweise 
Blöcke/Sektoren die teilweise leer sind wieder mit anderen Daten 
zusammen kopiert, bei wenig Platz wird dann entweder viel kopiert oder 
die Speichermenge kann eben nicht sehr effektiv genutzt werden.

von Bauform B. (bauformb)


Lesenswert?

Mike J. schrieb:
> Bei zu kleinen Partitionen hat man aber immer noch ein paar Nachteile
> wegen der Funktion des Trim-Befehl

Vor allem sollten die Partitionen immer an den Erase Blocks der SD-Karte 
ausgerichtet sein. Leider ist deren Größe meistens geheim. Gerüchteweise 
sollten 4MB reichen, bei kleineren Karten auch weniger. Damit erzeugt 
man auch bei kleinen Partitionen keinen nennenswerten Verschnitt. Oder 
übersehe ich da noch ein Problem?

von Dracul (Gast)


Lesenswert?

Hier gibt es ja viele Anregungen zu möglichen Lösungen usw.

Das einfachste ist wohl die anfällige SD wegzulassen und nur noch USB 
Sticks einzusetzen. Seitdem ich das mache, habe ich kein Problem mehr 
mit nicht bootenden Rpi. Und ich bin faul. Ich kill sie alle per "Strom 
weg".

von Arthur (Gast)


Lesenswert?

Dracul schrieb:
> Hier gibt es ja viele Anregungen zu möglichen Lösungen usw.
>
> Das einfachste ist wohl die anfällige SD wegzulassen und nur noch USB
> Sticks einzusetzen.

Oder eine kleine SSD mit Adapter. So mach ich das.
Das Thema hier ist ansonsten ein schönes Beispiel, was für eine 
kleinkarierte Fummelei dieses Linux doch immer noch ist. Robuste 
Ausfallsicherheit samt unbedingter Flash-Eignung sollte ein 
Betriebssystem mal im Mindesten bieten!

von Mike J. (linuxmint_user)


Lesenswert?

Arthur schrieb:
> Robuste
> Ausfallsicherheit samt unbedingter Flash-Eignung sollte ein
> Betriebssystem mal im Mindesten bieten!

Und welches Betriebssystem kennst du welches besser ist?

von 900ss (900ss)


Lesenswert?

Arthur schrieb:
> Robuste Ausfallsicherheit samt unbedingter Flash-Eignung sollte ein
> Betriebssystem mal im Mindesten bieten

Es liegt nicht am OS, es liegt an dem verwendeten Medium SD-Karte. Das 
beste OS wird nicht boeten wenn relevante Daten fehlen.

von 900ss (900ss)


Lesenswert?

Dergute W. schrieb:
> Aber gegen unsauber runtergefahrene filesysteme hilft Verzicht auf swap
> auch nicht. Vielleicht hilft sowas wie hier - klingt zumindest
> schluessig:
>
> 
http://wiki.psuter.ch/doku.php?id=solve_raspbian_sd_card_corruption_issues_with_read-only_mounted_root_partition

Ich denke,  das ist das einzige, was hilft, wenn man nicht sauber 
runterfahren möchte.

von Stefan F. (Gast)


Lesenswert?

Arthur schrieb:
> Das Thema hier ist ansonsten ein schönes Beispiel, was für eine
> kleinkarierte Fummelei dieses Linux doch immer noch ist. Robuste
> Ausfallsicherheit samt unbedingter Flash-Eignung sollte ein
> Betriebssystem mal im Mindesten bieten!

Das liegt nicht an Linux, sondern an den Anwendungsprogrammen. Eine 
intensiv genutzte Datenbank auf SD Karte wird Dir unter jedem 
Betriebssystem Sorgen bereiten. Im Server Bereich verwendet man dafür 
aus dem selben Grund auch keine Consumer-SSD.

Und ein Web Browser, der quasi ununterbrochen schreibt, ist natürlich 
auch unabhängig vom Betriebssystem problematisch. Im Gegensatz zu 
Windows ist es bei Linux ganz einfach, von einem read-only Medium zu 
starten. Alle Systemprogramme sind dafür geeignet.

Linux startet mit seinen gewöhnlichen Filesystemen nach einem 
Stromausfall genau so zuverlässig, wie Windows mit NTFS. Du kannst ja 
zum Vergleich mal ein halbes Jahr mit Windows 95 (und DOS Filesystem) 
arbeiten und dabei immer schön den Stecker ziehen anstatt 
herunterzufahren. Dann wirst du sehen, was "anfällig" bedeutet.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

900ss D. schrieb:
> Dergute W. schrieb:
>> Aber gegen unsauber runtergefahrene filesysteme hilft Verzicht auf swap
>> auch nicht. Vielleicht hilft sowas wie hier - klingt zumindest
>> schluessig:
>>
>>
> 
http://wiki.psuter.ch/doku.php?id=solve_raspbian_sd_card_corruption_issues_with_read-only_mounted_root_partition
>
> Ich denke,  das ist das einzige, was hilft, wenn man nicht sauber
> runterfahren möchte.

Diese Lösung scheint überschaubar und auch für den 
Nicht-Super-Linux-Experten beherrschbar - werde ich ausprobirern.

Ich habe nat. auch schon selber nach sowas gesucht, was ich bisher fand 
war aber immer endlos kompliziert ... und nich selten ist plötzlich 
mittendrin Schluß, weil eben irgend ein Kommando nicht so beendet bzw. 
ausgeführt wird, wie in der Anleitung beschrieben.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.