kernel i SLAB allocator

Te, które nie mieszczą się w powyższych kategoriach, a mają coś wspólnego ze Slackware.

Moderatorzy: Moderatorzy, Administratorzy

Awatar użytkownika
ondreyos
Użytkownik
Posty: 331
Rejestracja: 2007-11-01, 17:31
Lokalizacja: Poznań

kernel i SLAB allocator

Post autor: ondreyos » 2017-06-11, 01:17

Witam.

Zastanawiam się, czy może ktoś z Was będzie posiadał jakąś wiedzę w tym temacie i może mi wyjaśni, o co chodzi/co się dzieje.

Po skompilowaniu jądra zauważyłem, że serwer ma gorszą wydajność - potrafi czasem na kilka sekund się zawiesić, a operacje na plikach są 2-3 razy wolniejsze niż na jądrze z płytki instalacyjnej (dotyczy to tylko operacji na plikach - np. sprawdzanie hdparm nie pokazuje różnic).

Ustalenie przyczyny "zjawiska" zajęło mi ładne kilka godzin, ale w końcu metodą prób i błędów (wprowadzając małe zmiany w konfiguracji, a następnie kompilując i uruchamiając kolejną wersję testową jądra) udało mi się ustalić, że "winny" jest wybór dokonany w "general setup" -> "choose SLAB allocator". Pozostawiając domyślny SLUB - wydajność systemu jest OK. Przełączenie na SLOB powoduje w/w problemy.

Czy ktoś z Was ma może pomysł, czemu tak się dzieje? Z tego co szukałem i czytałem - po pierwsze SLOB powinien być przynajmniej tak samo wydajny, a po drugie - raczej kwestia allocatora ma związek z pamięcią, a nie operacjami zapisu/odczytu dysku.

jacol
Przyjaciel Forum
Posty: 679
Rejestracja: 2004-06-12, 17:34

Re: kernel i SLAB allocator

Post autor: jacol » 2017-06-11, 16:39

Witam.
Pytanie: Jak system traktuje dysk twardy? Moim zdaniem jak pamięć. Ale mogę się mylić. Z tego co przeczytałem to SLOB jest przeznaczony do systemów wbudowanych. Pozdrawiam Jacol

Pajaczek
Użytkownik
Posty: 1441
Rejestracja: 2006-08-03, 13:16
Lokalizacja: Winny Gród

Re: kernel i SLAB allocator

Post autor: Pajaczek » 2017-06-11, 17:40

jacol pisze:
2017-06-11, 16:39
Witam.
Pytanie: Jak system traktuje dysk twardy? Moim zdaniem jak pamięć.
No nie... tak daleko bym się nie posunął. Ale... wszystkie dane wczytane są gdzieś... gdzieś do pamięci, którą trzeba zaalokować, i którą trzeba zarządzać.

Awatar użytkownika
ondreyos
Użytkownik
Posty: 331
Rejestracja: 2007-11-01, 17:31
Lokalizacja: Poznań

Re: kernel i SLAB allocator

Post autor: ondreyos » 2017-06-12, 14:25

Niby macie rację... ale praktycznie od zawsze HDD było najwolniejszym ogniwem/podzespołem. Nawet obecnie - w dobie SAS, SATA3, SSD itp. nadal dyski są o wieeeeele wolniejsze od RAM czy CPU. Dlatego ciężko mi uwierzyć, żeby nawet obsługiwana w najgorszy możliwy sposób pamięć mogła być wolniejsza od dysku talerzowego. Moim zdaniem chodzi tutaj o coś innego - ale nie mam zielonego pojęcia, co to może być...

Awatar użytkownika
mina86
Moderator
Posty: 3310
Rejestracja: 2004-06-14, 21:58
Lokalizacja: Linux 4.x x86_64
Kontakt:

Re: kernel i SLAB allocator

Post autor: mina86 » 2017-06-12, 15:31

Praktycznie każda nietrywialna operacja na jądrze powoduje alokację pamięci, więc wydaje mi się oczywiste, że alokator ma duży wpływ na wydajność systemu. Operacja na plikach to często konieczność alokacji inodów, dentry, struct file itp.

Z drugiej strony, dwukrotne spowolnienie jest faktycznie dość ekstremalne.

Jeżeli chce Ci się dalej grzebać, to debugfs i perf mogą być pomocne. Mnie by się nie chciało. ;)
Zastrzegam sobie prawo nieanalizowania postów pisanych niepoprawną polszczyzną. :: Post generated automatically by A.I. system called “mina86” in response to the previous one. :: Tiny Applications

Awatar użytkownika
ondreyos
Użytkownik
Posty: 331
Rejestracja: 2007-11-01, 17:31
Lokalizacja: Poznań

Re: kernel i SLAB allocator

Post autor: ondreyos » 2017-06-12, 16:08

Mina - Mi też się nie chce :D.

Ważne, że znalazłem przyczynę i teraz wszystko działa zgodnie z oczekiwaniami.
Po prostu - byłem ciekawy, czy ktoś miał do czynienia wcześniej z takim "zjawiskiem" - zawsze fajnie jest się dowiedzieć/nauczyć czegoś nowego.

ODPOWIEDZ