GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was bedeuten die Buff/Cache- und Avail-Mem-Felder oben?

top Die Manpage von beschreibt die Felder nicht, sondern free 's tut:

Puffer

Speicher, der von Kernelpuffern verwendet wird (Buffers in /proc/meminfo )

zwischenspeichern

Speicher, der vom Seitencache und Slabs verwendet wird (Cached undSReclaimable in /proc/meminfo )

Buff/Cache

Summe Puffer und Cache

verfügbar

Abschätzung, wie viel Speicher zum Starten neuer Anwendungen ohne Austausch zur Verfügung steht. Im Gegensatz zu den vom Cache bereitgestellten Daten oder freien Feldern berücksichtigt dieses Feld den Seitencache und auch, dass nicht alle zurückgewinnbaren Speicherblöcke zurückgefordert werden, da Elemente verwendet werden (MemAvailable in/proc/meminfo , verfügbar auf Kernel 3.14, emuliert auf Kernel 2.6.27+, ansonsten genauso wie kostenlos)

Im Grunde zählt „buff/cache“ den Speicher, der für Daten verwendet wird, die auf der Festplatte sind oder bald dort landen sollen und somit potenziell nutzbar sind (der entsprechende Speicher kann sofort verfügbar gemacht werden, wenn er seit dem Lesen nicht geändert wurde , oder ausreichend Zeit gegeben, falls vorhanden); „verfügbar“ misst die Menge an Speicher, die zugewiesen und verwendet werden kann, ohne dass mehr Auslagerungen verursacht werden (siehe Wie kann ich die Menge an verfügbarem Speicher portabel über Distributionen hinweg abrufen? für weitere Einzelheiten dazu).


Nur zur Verdeutlichung, Puffer bezieht sich auf Daten, die geschrieben werden -- dieser Speicher kann nicht zurückgewonnen werden, bis der Schreibvorgang abgeschlossen ist.

Cache bezieht sich auf Daten, die gelesen wurden -- es wird aufbewahrt, falls es erneut gelesen werden muss, kann aber sofort zurückgefordert werden, da es immer wieder von der Festplatte gelesen werden kann.


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

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

Hier finden Sie auch weitere Details.

Der Linux-Seiten-Cache ("Cached :" von meminfo ) ist auf den meisten Systemen der größte einzelne RAM-Verbraucher. Jedes Mal, wenn Sie ein read() von einer Datei auf der Festplatte ausführen, werden diese Daten in den Speicher gelesen und in den Pagecache (1.) verschoben.
Der Buffer-Cache ("Buffers :" in meminfo) ist näher verwandt mit den Dentry/Inode-Caches.

Oder den Quellcode so analysieren.

Der Betrag 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;
}

Der Betrag von cached :

global_page_state(NR_FILE_PAGES) – total_swapcache_pages – i.bufferram

Linux
  1. Was ist der Unterschied zwischen InnoDB und MyISAM?

  2. Die Top 20 Leitfäden und Tutorials für Systemadministratoren

  3. Was bedeuten die Zahlen auf einer Manpage?

  4. Über Mem und Vmem?

  5. Was bedeuten unter Linux alle Werte im obersten Befehl?

Der Linux-Kernel:Top 5 Innovationen

Was ist der Unterschied zwischen Linux und Unix?

Was ist der Unterschied zwischen DMA und Memory-Mapped IO?

Was bedeuten %MEM und VSZ von oben?

Was ist der debian-+ Benutzer?

Was bedeutet %st oben?