kernel i SLAB allocator
: 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.
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.