Strona 1 z 1

kernel i SLAB allocator

: 2017-06-11, 01:17
autor: ondreyos
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.

Re: kernel i SLAB allocator

: 2017-06-11, 16:39
autor: jacol
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

Re: kernel i SLAB allocator

: 2017-06-11, 17:40
autor: Pajaczek
jacol pisze: 2017-06-11, 16:39Witam.
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ć.

Re: kernel i SLAB allocator

: 2017-06-12, 14:25
autor: ondreyos
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ć...

Re: kernel i SLAB allocator

: 2017-06-12, 15:31
autor: mina86
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. ;)

Re: kernel i SLAB allocator

: 2017-06-12, 16:08
autor: ondreyos
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.