Warum habe ich so viele RAM-Festplatten?

15

Ich habe Arch Linux auf meinem Raspberry Pi 2.

Direkt nach der Installation ich lief lsblk, fdiskund dfBefehle (leider habe ich nicht die Ausgabe sparen) , aber ich hatte eine Scheibe, die die SD-Karte und zwei Partitionen auf sich. Dann habe ich das System mit aktualisiert pacman -Syu, installiert sudound konfiguriert ssh. Wenn ich fdiskes jetzt starte, habe ich 16 RAM-Disks im Speicher mit Parametern:

Disk /dev/ram15: 4 MiB, 4194304 bytes, 8192 sectors 

Units: sectors of 1 * 512 = 512 bytes 

Sector size (logical/physical): 512 bytes / 4096 bytes 

I/O size (minimum/optimal): 4096 bytes / 4096 bytes

und alle Arten von Dateisystemen, die an verschiedenen Einhängepunkten eingehängt sind (während ich nur /dev/rootund selbst erstellt habe /dev/boot):

Filesystem      Size  Used Avail Use% Mounted on
/dev/root       1.8G  1.1G  557M  67% /
devtmpfs        458M     0  458M   0% /dev
tmpfs           462M     0  462M   0% /dev/shm
tmpfs           462M  328K  462M   1% /run
tmpfs           462M     0  462M   0% /sys/fs/cgroup
tmpfs           462M     0  462M   0% /tmp
/dev/mmcblk0p1  100M   18M   83M  18% /boot
tmpfs            93M     0   93M   0% /run/user/1000

Meine Frage ist also: Was sind all diese RAM-Disks und warum befinden sie sich in meinem System, da ich sie definitiv nicht erstellt habe und welche Dateisysteme sind gemountet?

Bearbeiten :

cat /proc/partitions Ausgabe:

major minor  #blocks  name

   1        0       4096 ram0
   1        1       4096 ram1
   1        2       4096 ram2
   1        3       4096 ram3
   1        4       4096 ram4
   1        5       4096 ram5
   1        6       4096 ram6
   1        7       4096 ram7
   1        8       4096 ram8
   1        9       4096 ram9
   1       10       4096 ram10
   1       11       4096 ram11
   1       12       4096 ram12
   1       13       4096 ram13
   1       14       4096 ram14
   1       15       4096 ram15
 179        0   31472640 mmcblk0
 179        1     102400 mmcblk0p1
 179        2    1853439 mmcblk0p2
RusI
quelle
1
Ich habe diese verwandte Frage gefunden . Diese Frage hat auch keine guten Antworten, aber ein Kommentar deutet darauf hin, dass /proc/partitionsdies relevant sein könnte. Sie sollten die Ausgabe von cat /proc/partitionsin Ihre Frage aufnehmen.
Kasperd
Auf einer Raspberry Pi-spezifischen Site finden Sie nicht unbedingt Antworten auf allgemeine Linux-Fragen. Ein schnelles Google findet Antworten.
Joan
1
@joan Oh, ich habe ausgiebig gegoogelt, aber ich konnte keine klare und prägnante Antwort finden, nur Kleinigkeiten.
RusI
1. Diese RAM-Disks müssen vor dem Kompilieren des Kernels aktiviert werden. 2. Sie sollten eigentlich keinen RAM verwenden, bevor sie einen FS anbringen.
Flakeshake
Der Grund für die Zuweisung dieser RAM-Datenträger bleibt dann ein Rätsel ... Es scheint, dass der Grund sein muss: 1) Speichern von Schreibvorgängen auf der SD-Karte und / oder 2) Verbessern der Leistung durch Reduzieren der E / A-Latenzzeit des Datenträgers Niemand (glaubwürdig) hat eine solche Aussage registriert.
Seamus

Antworten:

4

Erstens sind RAM-Festplatten nicht dasselbe wie tmpfs .

Auf Ihrem Root-Laufwerk befinden sich viele Verzeichnisse, in denen temporäre Dateien gespeichert werden. In diesen Ordnern wird beim Erstellen, Ändern und Löschen von Anwendungen während der Ausführung häufig gelesen und geschrieben.

Auf einer mechanischen Festplatte, bei der die Anzahl der Lese- / Schreibzyklen keine Rolle spielt, ist dies vollkommen in Ordnung. Auf dem Raspberry Pi, bei dem das Hauptspeicher-Backend eine SD-Karte ist, auf der es nur eine begrenzte Anzahl von Lese- / Schreibzyklen gibt, kann die Karte bei so vielen E / A-Vorgängen vorzeitig abgenutzt werden.

Da wir die Dateien in diesen temporären Verzeichnissen während eines Neustarts nicht beibehalten müssen, versuchen viele Distributionen, die Abnutzung des Speichergeräts zu verringern, indem sie die temporären Dateien mit hohem Datenverkehr im RAM speichern. Tmpfs wird verwendet, da es ein Dateisystem ist, das RAM als Speicher-Backend verwendet. Aus diesem Grund werden so viele Verzeichnisse als tmpfs eingebunden.

RAM-Disks sind davon völlig unabhängig. Es handelt sich um Blockgeräte , die durch RAM gesichert sind, während tmpfs ein durch RAM gesichertes Dateisystem ist . RAM-Laufwerke sind Raw-Block-Geräte, die /dev/sdausw. ähnlich sind. Sie können ein Dateisystem auf einem RAM-Laufwerk erstellen, indem Sie es so ausführen, mkfs /dev/ramwie Sie es auf einem normalen Festplattenblock-Gerät tun würden.

Ich glaube, die Anzahl der verfügbaren RAM-Festplatten wird durch eine Kernel-Konfigurationsoption gesteuert . Seien Sie versichert, dass sie nicht wirklich Platz beanspruchen, bis Sie sie benutzen / schreiben.

tangrs
quelle
7

Das ist nichts Ungewöhnliches.

RAM-Disks werden üblicherweise für temporäre Dateisysteme verwendet.

Mein Debian-Laptop

Filesystem      Size  Used Avail Use% Mounted on
udev            1.5G     0  1.5G   0% /dev
tmpfs           301M   32M  269M  11% /run
/dev/sda2        47G   31G   14G  71% /
tmpfs           1.5G  1.7M  1.5G   1% /dev/shm
tmpfs           5.0M  8.0K  5.0M   1% /run/lock
tmpfs           1.5G     0  1.5G   0% /sys/fs/cgroup
tmpfs           1.5G   69M  1.5G   5% /tmp
/dev/sda4       386G  344G   23G  94% /home
tmpfs           301M   12K  301M   1% /run/user/114
tmpfs           301M   76K  301M   1% /run/user/1000

Mein Raspbian Pi Zero

Filesystem                     Size  Used Avail Use% Mounted on
/dev/root                      7.2G  3.8G  3.1G  56% /
devtmpfs                       214M     0  214M   0% /dev
tmpfs                          218M     0  218M   0% /dev/shm
tmpfs                          218M   17M  202M   8% /run
tmpfs                          5.0M  4.0K  5.0M   1% /run/lock
tmpfs                          218M     0  218M   0% /sys/fs/cgroup
/dev/mmcblk0p1                  56M   20M   37M  36% /boot
tmpfs                          100M  4.0K  100M   1% /ram
tmpfs                           44M     0   44M   0% /run/user/109
mercury.lan:/home/common/code  386G  344G   23G  94% /code
tmpfs                           44M     0   44M   0% /run/user/1000
joan
quelle
3
Sie beantworten die Frage nicht. Die Frage ist, warum /dev/ram15(und vermutlich auch 0-14) in der Ausgabe von fdisk auftauchen. In Ihrer Antwort wird nur erwähnt, tmpfswas überhaupt nichts damit zu tun hat /dev/ram*.
Kasperd
1
Ich bezweifle nicht Ihre Aussagen, aber ich bin wirklich daran interessiert, warum diese Änderungen in meinem System stattfanden. Während ich gerade Linux studiere und Arch sozusagen als "hardcore" auswähle, muss man dem Betriebssystem explizit mitteilen, was es tun soll, und jetzt habe ich ein System, das Festplatten und Dateisysteme erstellt und diese einbindet überall auf sich allein gestellt - also wer hat hier die Kontrolle?
RusI
2

Kurze Antwort : Es ist nur eine fdisk Besonderheit bei den neuesten Versionen. Alternativ können Sie auch partedund verwenden lsblk.

Aus diesem Thread bei AskUbuntu extrahiert:

Bei späteren Versionen von fdiskder Auswahl , was das Programm betrachtet als Blockgerät wesentlich verändert. In dem util-linuxPaket, zu dem unter anderem fdisk gehört, Version 2.21 basiert diese Entscheidung auf der gemeldeten Plattengeometrie, während in der (Stand Mai 2017) aktuellen Version 2.72.1 die Ausgabe von / proc / partitions analysiert wird

Und:

Die RAM-Disks sind schon lange im Kernel, es ist das Verhalten von fdisk, das sich geändert hat.

Weitere Details und verschiedene Workarounds (falls Sie diese RAM-Disks auf dem Bildschirm stören) finden Sie im oben genannten Thread.

Sopalajo de Arrierez
quelle
"Weitere Details und verschiedene Workarounds" ??? wo ???
ZEE
@Zee, schau dir den verwiesenen Thread auf AskUbuntu an. Sie listen sogar einige Patches für die Originalquelle von fdisk auf.
Sopalajo de Arrierez