slabinfo(5)

NAZWA
slabinfo - statystyki alokatora płyt (slab) w jądrze

SKŁADNIA
cat /proc/slabinfo

OPIS
Często używane obiekty w jądrze Linux (nagłówki buforów, i-węzły, dentry itp.) mają swoje własne bufory. Plik /proc/slabinfo udostępnia statystyki tych buforów. Poniższe (zmodyfikowane) wyjście pokazuje przykład zawartości tego pliku:

    $ sudo cat /proc/slabinfo;
    slabinfo - version: 2.1
    # name    <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> ...
    sigqueue      100  100  160   25  1 : tunables  0  0  0 : slabdata   4   4  0
    sighand_cache 355   405 2112  15  8 : tunables  0  0  0 : slabdata  27  27  0
    kmalloc-8192   96   96  8192   4  8 : tunables  0  0  0 : slabdata  24  24  0
    ...

Pierwszy wiersz zawiera numer wersji, pozwalającym aplikacjom odczytującej plik na obsługę zmian w formacie pliku (zob. WERSJE poniżej). Następny wiersz zawiera listę nazw kolumn będących w pozostałych wierszach

Każdy z pozostałych wierszy wyświetla informacje o określonym buforze. Po nazwie bufora, pokazane wyjście w każdym wierszu wyświetla trzy składowe każdego bufora:

•   statystyki

•   tunables

•   slabdata

Występują poniższe statystyki:

active_objs
    Liczba aktualnie aktywnych obiektów (tj. w użyciu).

num_objs
    Całkowita liczba przydzielonych obiektów (tj. obiektów w użyciu i nieużywanych)

objsize
    Rozmiar obiektów w tej płycie, w bajtach.

objperslab
    Liczba obiektów przechowywanych w każdej płycie.

pagesperslab
    Liczba stron przydzielonych do każdej płyty.

Wpisy tunables w każdym wierszu pokazują parametry, które można zmodyfikować dla poszczególnego bufora. Przy korzystaniu z domyślnego alokatora SLUB, takie wartości nie występują, plik /proc/slabinfo nie jest zapisywalny, a w tych polach wyświetlana jest wartość 0. Jeśli korzysta się ze starszego alokatora SLAB, wartości dla poszczególnego bufora można ustawić zapisując wiersz w poniższej postaci do /proc/slabinfo:

    #  echo 'nazwa limit batchcount sharedfactor' > /proc/slabinfo;

Nazwa jest tu nazwą bufora, a limit, batchcount i sharedfactor stanowią liczby całkowite definiujące poszczególne nowe wartości. Wartość limit powinna być dodatnia, wartość batchcount powinna być dodatnia i mniejsza lub równa wartości limit, a sharedfactor powinno być nieujemne. Jeśli dowolna z podanych wartości będzie nieprawidłowa, ustawienia bufora nie ulegną zmianie.

Wpisy tunables w każdym wierszu zawierają poniższe wpisy:

limit
    Maksymalna liczba obiektów, które będą zbuforowane.

batchcount
    W systemach SMP, określa to liczbę obiektów, które będą przetransferowane jednocześnie, przy ponownym wypełnianiu listy dostępnych obiektów.

sharedfactor
    [do udokumentowania]

Wpisy slabdata w każdym wierszu zawierają poniższe wpisy:

active_slabs
    Liczba aktywnych płyt.

nums_slabs
    Całkowita liczba płyt.

sharedavail
    [do udokumentowania]

Proszę zauważyć, że ze względu na wyrównanie obiektów i narzut bufora płyt, obiekty nie są zwykle umieszczane ściśle w stronach. Strony zawierające choć jeden obiekt w użyciu są uważane za w użyciu i nie mogą być zwolnione.

Jądra skonfigurowane z opcją CONFIG_DEBUG_SLAB będą zawierać również dodatkowe pola ze statystykami w każdym wierszu, a pierwszy wiersz w pliku będzie zawierał łańcuch „(statistics)”. Pola statystyk obejmują: szczytową liczba aktywnych obiektów; ile razy obiekty były przydzielone, ile razy bufor został zwiększony (dodano do danego bufora nowe strony); ile razy bufor został wyrwany (reaped; nieużywane strony usunięto z danego bufora) i ile razy przy przydzielaniu nowych stron do tego bufora wystąpił błąd.

WERSJE
Plik /proc/slabinfo pojawił się pierwotnie w Linuksie 2.1.23. Plik jest wersjonowany, a z biegiem czasu pojawiło się wiele wersji z różnym rozmieszczeniem danych:

1.0 Obecny w serii jąder Linux 2.2.x.

1.1 Obecny w serii jąder Linux 2.4.x.

1.2 Format obecny przez chwilę w serii rozwojowej Linuksa 2.5.

2.0 Obecny w jądrach Linux 2.6.x do 2.6.9 włącznie.

2.1 Aktualny format, pojawił się pierwotnie w Linuksie 2.6.10.

UWAGI
Jedynie root może odczytywać i (jeśli jądro skonfigurowano z opcją CONFIG_SLAB) zapisywać plik /proc/slabinfo.

Całkowita ilość pamięci przydzielonej do bufora SLAB/SLUB widnieje w polu Slab w pliku /proc/meminfo.

ZOBACZ TAKŻE
slabtop(1)

Pliki Documentation/mm/slab.rst i tools/mm/slabinfo.c w źródłach jądra.

TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.