- BPF'nin (eBPF) gözlem yeteneklerinden yararlanarak sistem performansını sürekli otomatik olarak ayarlamak için tasarlanmış hafif bir araç
Çözmeyi hedeflediği sorunlar
- Çok fazla ayarlama seçeneği: Linux çekirdeğinde ayarlanabilir 1600'den fazla
sysctl parametresi bulunur. Farklı ortamlara uygun ayarları bulmak karmaşık ve zordur
- Yönetici müdahalesinin azalması: Modern bulut sistemlerinde manuel ayarlamadan çok otomatik yönetim gerekir. Çoğu sistemde ilk kurulumdan sonra yöneticinin müdahalesi neredeyse hiç olmaz
- Statik ayarların sınırları: Sistem ortamı sürekli değiştiği için sabit değerlerle ayarlama yapmak verimsiz olabilir
Temel tasarım ilkeleri
- Minimum ek yük: Yüksek frekanslı olay izlemelerinden kaçınır, gözlem yeteneklerini yalnızca gerçekten gerektiğinde kullanır
- Politika açıklığını netleştirme: Syslog'a "ne"yin "neden" değiştirildiğini kaydeder
- Yönetici önceliği: Yönetici bir değeri ayarlarsa otomatik ayarlama işlevi devre dışı kalır
- Yapılandırmasız yaklaşım: Ayrı bir yapılandırma olmadan otomatik ayarlama yapar. Mümkün olduğunca magic number kullanımından kaçınır
- Dinamik uyarlama: TCP bellek kullanımı artarsa tampon boyutunu küçülterek sistem dengesini korur
Başlıca kavramlar
- Tuner: Her tuner, BPF programında oluşan olayları işler ve ilgili ayarlanabilir öğeleri yönetir
- Strateji (
strategy): Bir tuner birden fazla stratejiye sahip olabilir ve her strateji, değerlendirme fonksiyonu üzerinden etkili olanı seçer
- Olay (
event): Tuner ID'si, senaryo ve ağ namespace bilgileri gibi verileri içerir; tuner bu bilgilere göre uygun işlemi yapar
Mimari
bpftune, bir daemon olarak çalışır ve birden fazla .so biçimindeki eklenti tuner'ı yükleyip yönetir
- Her tuner benzersiz bir ID'ye sahiptir ve BPF ile kullanıcı alanında olayları işler
- BPF bileşeni
bpftune.bpf.h dosyasını içerir ve paylaşılan değişkenler ile map tanımlarını kullanır
Desteklenen tuner listesi
- TCP connection tuner: Tıkanıklık kontrolü algoritmasını otomatik ayarlar
- neighbour table tuner: Komşu tablosu boyutunu otomatik genişletir
- route table tuner: Yönlendirme tablosu boyutunu otomatik genişletir
- sysctl tuner: Ayarlanmış
sysctl değeri manuel ayarla çakışırsa tuner'ı devre dışı bırakır
- TCP buffer tuner: TCP tampon boyutunu otomatik ayarlar
- net buffer tuner: Çekirdek ağ ile ilgili ayarları otomatik düzenler
- netns tuner: Ağ namespace ekleme ve kaldırmayı algılar
2 yorum
Hacker News yorumları
bpftune, yapılandırma gerektirmeyen bir araç olarak tasarlanmışCachyOSüzerinde doğrudan kullanılabiliyorCachyOS Hello->Apps/Tweaksyolundan erişilebilir