bpftune, nowy automatyczny system optymalizacji BPF dla systemu Linux

bpftune

bpftune ma na celu zapewnienie lekkiego, zawsze włączonego automatycznego dostrajania zachowania systemu.

Ostatnio Wyrocznia odsłonięta publikując swój nowy system "bpftune" który jest zaprojektowany do automatycznej optymalizacji konfiguracji jądra na podstawie wykonanych zadań, aktywności systemu i wzorców obciążenia.

bpftune działa w tle i monitoruje wykorzystanie systemu i stos sieciowy. Powodem powstania projektu jest potrzeba optymalizacji samodzielnych systemów zaprojektowanych do pracy przy minimalnej ingerencji administratora, a także rosnąca złożoność nowoczesnego jądra, co zwiększa pracochłonność ręcznych optymalizacji.

I jądro zapewnia ponad 1500 parametrów które wpływają na wydajność i zużycie zasobów, a często administrator po prostu kopiuje gotowe przepisy, nie zagłębiając się szczegółowo w ich istotę i licząc, że pomogą).

Bpftune automatycznie i stale dostosowuje konfigurację jądra. System jest monitorowany za pomocą odpowiednich funkcji Berkeley Packet Filter (BPF).

Jądro Linuksa zawiera ponad 1500 dostrajanych parametrów, a prawidłowe ustawienie tych parametrów może znacznie poprawić wydajność i wykorzystanie systemu! Przez lata staraliśmy się zapewnić prawidłowe wskazówki dotyczące tych dostrajanych parametrów, poprzez informacje o wersji oprogramowania i ulepszone ustawienia domyślne, ale wiele obciążeń systemowych skorzysta na dynamicznym dostrajaniu tych wartości.

Przedstawiamy bpftune, automatyczny konfigurator, który monitoruje obciążenia i ustawia prawidłowe wartości parametrów jądra! bpftune to projekt open source dostępny w repozytoriach Oracle Linux

Więcej o: Bpftune

Bpftune na bieżąco monitoruje stan systemu, adaptacyjnie dostosowuje parametry jądra, które wpływają na wydajność i ocenia zmieniające się zachowanie w celu uzyskania optymalnych wyników. Dzięki BPF, brane są pod uwagę nie tylko statystyki całego systemu, ale także szczegóły zachowania poszczególnych komponentów, która umożliwia np. dostosowanie ustawień na poziomie poszczególnych gniazd i urządzeń.

Implementacja indywidualne optymalizacje przeniesione do wtyczek które są ładowane podczas uruchamiania procesu w postaci bibliotek. Każda wtyczka implementująca określoną optymalizację zawiera sterownik BPF działający w jądrze oraz komponent działający w przestrzeni użytkownika.

Główne korzyści jakie zapewnia to:

  • Ciągłe monitorowanie i dostrajanie zachowania systemu za pomocą funkcji obserwowalności BPF (Berkeley Packet Filter).
  • Dostrajanie zachowania systemu na najdrobniejszym poziomie stało się możliwe, ponieważ możemy obserwować więcej szczegółów stanu systemu za pomocą BPF.

Wszystkie wtyczki używają wspólnego globalnego bufora pierścieniowego BPF do przekazywania zdarzeń jądra do przestrzeni użytkownika. Wtyczki można dobierać zgodnie z potrzebami administratora można je również wyłączyć automatycznie, jeśli administrator ręcznie zmieni powiązaną z nimi konfigurację jądra.

Podczas procesu automatycznego dostrajania bpftune stara się osiągnąć optymalną równowagę pomiędzy podażą a zużyciem zasobów, biorąc pod uwagę pośredni wpływ zmian. Na przykład, aby zwiększyć wydajność, należy zwiększyć rozmiar bufora sieciowego, ale zwiększenie go prowadzi do większego zużycia pamięci i dłuższych opóźnień w przesyłaniu danych, więc te parametry należy wziąć pod uwagę przy zwiększaniu rozmiaru bufora. .

Wtyczki dostępne do użytku obejmują:

  • bpftune-tcp-cong: automatyczny wybór optymalnego algorytmu kontroli przeciążenia sieci
  • bpftune-neigh: automatyczny wybór rozmiaru tablicy adresów MAC sąsiednich hostów
  • bpftune-route: automatyczny wybór rozmiaru tablicy routingu.
  • bpftune-sysctl – Monitoruje ustawienia sysctl i wyłącza powiązany tuner, jeśli jest on w konflikcie z ustawieniami ręcznymi.
  • bpftune-tcp-buffer: automatyczny wybór początkowych i maksymalnych rozmiarów buforów TCP
  • bpftune-net-buffer: automatyczna konfiguracja podstawowych buforów sieciowych
  • bpftune-netns – Śledzi dodawanie i usuwanie sieciowych przestrzeni nazw (net namespace)

W końcu jeśli chcesz dowiedzieć się więcej na ten temat, powinieneś wiedzieć, że kod projektu jest napisany w języku C i jest rozpowszechniany na licencji GPLv2, a szczegóły możesz sprawdzić w następujący link.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.