2009-03-18 11 views
20

Potrafię zrozumieć większość informacji zawartych w /proc/meminfo, takich jak całkowita pamięć, bufory, pamięć podręczna itp. Czy możesz mi powiedzieć, co robią te mniej oczywiste, jak te wymienione poniżej? oznaczać?Wpisy w/proc/meminfo

  • AnonPages
  • Zmapowane
  • Strop
  • NFS_Unstable
  • Bounce
  • VmallocTotal
  • VmallocUsed
  • VmallocChunk

Jeśli ktoś zastanawia się, mówię o wyjściu z komendy linux cat/proc/meminfo

Odpowiedz

30

Kanonicznym źródłem tej informacji jest /usr/src/linux/Documentation/filesystems/proc.txt. Konkretnie

AnonPages: Non-file backed pages mapped into userspace page tables 
     Mapped: files which have been mmaped, such as libraries 
     Slab: in-kernel data structures cache 
NFS_Unstable: NFS pages sent to the server, but not yet committed to stable 
     storage 
     Bounce: Memory used for block device "bounce buffers" 
VmallocTotal: total size of vmalloc memory area 
VmallocUsed: amount of vmalloc area which is used 
VmallocChunk: largest contigious block of vmalloc area which is free 
+0

alternatywny Link podczas kernel.org jest w dół: https://github.com/torvalds/linux/blob/master/ Dokumentacja/systemy plików/proc.txt – fennec

0

Od RedHat

VMallocTotal - Łączna kwota pamięci w kilobajtach, z całości przydzielona wirtualna przestrzeń adresowa. VMallocUsed - Łączna ilość pamięci , w kilobajtach, używanej przestrzeni adresowej wirtualnego . VMallocChunk - największy przylegający do siebie blok pamięci w kilobajtach dostępnej wirtualnej przestrzeni adresowej .

13

Moje rozumienie jest następujący.
I zgadzam się, że te liczby są trudne do zrozumienia i pokazują niespójne wartości.

  • MemTotal

    = MemFree + Active + Inactive + Slab + PageTables + VmallocUsed + X 
    (X : alloc_pages() (get_free_pages(), etc)) 
    

    Ale wartość vmallocused ostatnie jądro mogłoby być źle. Dzieje się tak, ponieważ zlicza regiony VM_xxx, takie jak VM_IOREMAP, VM_MAP, ... inne niż obszar VM_ALLOC.

    Region VM_IOREMAP może mapować pamięć, która może znajdować się poza zarządzaniem pamięcią jądra jądra, więc powyższa formuła może być nieprecyzyjna lub całkowicie błędna.

    Można zrobić:

    • Sprawdź/proc/vmallocinfo uporządkować wszystkie wpisy i przefiltrować przez siebie,
    • Zmienić fs/proc/MMU.c: get_vmalloc_info(), aby liczyć tylko wtedy, gdy regiony if (vma-> flagi & VM_ALLOC)
  • Aktywny + Nieaktywne

    = Buffers + Cached + SwapCached + AnonPages 
    
  • AnonPages

    = /proc/*/task/*/smaps anonymous area all sum 
    (anonymous: no name|[heap]|/dev/zero|/dev/shm/*|[stack]) 
    

    chociaż Haven” mogliśmy dopasować te liczby. Zobacz here i pomóż mi, jeśli masz jakąkolwiek wskazówkę.

  • Razem Obsługi KlientaSchowek

    = Buffers + Cached + SwapCached 
    
  • Slab

    = SReclaimable + SUnreclaim 
    
Powiązane problemy