Scroll to navigation

slabinfo(5) File Formats Manual 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:

Liczba aktualnie aktywnych obiektów (tj. w użyciu).
Całkowita liczba przydzielonych obiektów (tj. obiektów w użyciu i nieużywanych)
Rozmiar obiektów w tej płycie, w bajtach.
Liczba obiektów przechowywanych w każdej płycie.
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:

Maksymalna liczba obiektów, które będą zbuforowane.
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.
[do udokumentowania]

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

Liczba aktywnych płyt.
Całkowita liczba płyt.
[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/vm/slub.txt i tools/vm/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 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.

2 maja 2024 r. Linux man-pages 6.9.1