it-swarm.com.de

Was bedeuten die Felder "Buff / Cache" und "Available Mem" oben?

Innerhalb der Ausgabe von top befinden sich zwei Felder mit den Bezeichnungen "Buff/Cache" und "Available Mem" in den Speicher- und Swap-Nutzungszeilen:

(enter image description here

Was bedeuten diese beiden Felder?

Ich habe versucht, sie zu googeln, aber die Ergebnisse zeigen nur allgemeine Artikel an, und sie erklären nicht, was diese Felder bedeuten.

37
user2064000

Die Manpage von top beschreibt die Felder nicht, aber free :

Puffer

Von Kernelpuffern verwendeter Speicher (Buffers in /proc/meminfo)

Cache

Der vom Seitencache und den Slabs verwendete Speicher (Cached und SReclaimable in /proc/meminfo)

Buff/Cache

Summe von Puffern und Cache

verfügbar

Schätzung, wie viel Speicher zum Starten neuer Anwendungen ohne Austausch verfügbar ist. Im Gegensatz zu den Daten, die vom Cache oder den freien Feldern bereitgestellt werden, berücksichtigt dieses Feld den Seitencache und auch, dass nicht alle wiederherstellbaren Speicherplatten aufgrund von verwendeten Elementen zurückgefordert werden (MemAvailable in /proc/meminfo, verfügbar auf Kernel 3.14, emuliert auf Kernel 2.6.27+, ansonsten das gleiche wie free)

Grundsätzlich zählt "Buff/Cache" den Speicher, der für Daten verwendet wird, die sich auf der Festplatte befinden oder bald dort landen sollten, und ist daher möglicherweise verwendbar (der entsprechende Speicher kann im Falle eines Caches sofort verfügbar gemacht werden oder wenn genügend Zeit zur Verfügung steht). im Falle von Puffern - letztere sollen sowieso klein bleiben); "Verfügbar" misst die Menge an Speicher, die zugewiesen und verwendet werden kann, ohne dass mehr Austausch erforderlich ist (siehe Wie kann ich die Menge an verfügbarem Speicher portabel über Verteilungen hinweg portieren? für weitere Einzelheiten dazu).

38
Stephen Kitt

Nur um ein bisschen zu verdeutlichen, bezieht sich Puffer auf Daten, die geschrieben - dieser Speicher kann nicht zurückgefordert werden, bis der Schreibvorgang abgeschlossen ist.

Cache bezieht sich auf Daten, die gelesen - aufbewahrt werden, falls sie erneut gelesen werden müssen, kann jedoch sofort zurückgefordert werden, da sie immer wieder gelesen werden können von der Festplatte.

4
WallStProg

Die kanonische Quelle dieser Informationen ist / usr/src/linux/Documentation/filesystems/proc.txt

Puffer : Relativ temporärer Speicher für unformatierte Festplattenblöcke sollte nicht sehr groß werden (ca. 20 MB) Zwischengespeichert : In-Memory-Cache für Dateien, die von der Festplatte gelesen werden (der Seiten-Cache). Enthält SwapCached nicht.

Weitere Details finden Sie auch hier .

Der Linux-Seiten-Cache (" Cached :" von meminfo) ist auf den meisten Systemen der größte Einzelkonsument von RAM). Jedes Mal, wenn Sie ein read () von einer Datei auf der Festplatte ausführen, werden diese Daten in den Speicher eingelesen und in den Seitencache (1.).
Der Puffer-Cache (" Puffer :" in meminfo) ist ein enger Verwandter zu den Dentry/Inode-Caches.

Oder analysieren Sie den Quellcode wie this .

Die Menge von buffers ist der Rückgabewert der Funktion nr_blockdev_pages(void)

long nr_blockdev_pages(void)
{
        struct block_device *bdev;
        long ret = 0;
        spin_lock(&bdev_lock);
        list_for_each_entry(bdev, &all_bdevs, bd_list) {
                ret += bdev->bd_inode->i_mapping->nrpages;
        }
        spin_unlock(&bdev_lock);
        return ret;
}

Die Menge von cached:

global_page_state(NR_FILE_PAGES) – total_swapcache_pages – i.bufferram
2
axiqia