- Alat ringan yang dirancang untuk selalu menyetel performa sistem secara otomatis dengan memanfaatkan kemampuan observabilitas BPF (eBPF)
Masalah yang ingin diselesaikan
- Terlalu banyak opsi tuning: Kernel Linux memiliki lebih dari 1600 parameter sysctl yang dapat dituning. Menemukan pengaturan yang sesuai untuk berbagai lingkungan itu kompleks dan sulit
- Berkurangnya intervensi admin: Pada sistem cloud modern, pengelolaan otomatis lebih dibutuhkan daripada tuning manual. Sebagian besar sistem hampir tidak mendapat intervensi admin setelah konfigurasi awal
- Keterbatasan pengaturan statis: Karena lingkungan sistem terus berubah, tuning dengan nilai tetap bisa jadi tidak efisien
Prinsip desain utama
- Overhead minimal: Menghindari pelacakan event frekuensi tinggi, dan hanya menggunakan kemampuan observasi saat benar-benar diperlukan
- Kejelasan penjelasan kebijakan: Mencatat di syslog “apa” yang diubah dan “mengapa” itu diubah
- Admin sebagai prioritas: Jika admin menetapkan nilai, fitur tuning otomatis dinonaktifkan
- Prinsip tanpa konfigurasi: Menjalankan tuning otomatis tanpa konfigurasi terpisah. Sebisa mungkin menghindari magic number
- Penyesuaian dinamis: Jika penggunaan memori TCP meningkat, ukuran buffer dikurangi untuk menjaga keseimbangan sistem
Konsep utama
- Tuner: Setiap tuner memproses event yang terjadi di program BPF dan mengelola item tuning terkait
- Strategi: Tuner dapat memiliki beberapa strategi, dan tiap strategi memilih pendekatan yang efektif melalui fungsi evaluasi
- Event: Mencakup ID tuner, skenario, informasi network namespace, dan lainnya; tuner melakukan tindakan yang sesuai berdasarkan informasi ini
Arsitektur
bpftune adalah daemon yang memuat dan mengelola beberapa tuner plugin berformat .so.
- Setiap tuner memiliki ID unik dan memproses event di BPF maupun user space.
- Komponen BPF menyertakan
bpftune.bpf.h dan menggunakan variabel bersama serta definisi map.
Daftar tuner yang didukung
- TCP connection tuner: tuning otomatis algoritma kontrol kemacetan
- neighbour table tuner: perluasan otomatis ukuran neighbour table
- route table tuner: perluasan otomatis ukuran route table
- sysctl tuner: menonaktifkan tuner jika nilai sysctl hasil tuning bentrok dengan pengaturan manual
- TCP buffer tuner: penyesuaian otomatis ukuran buffer TCP
- net buffer tuner: penyesuaian otomatis tuning terkait jaringan inti
- netns tuner: mendeteksi penambahan dan penghapusan network namespace
2 komentar
Opini Hacker News
bpftunedirancang sebagai alat yang tidak memerlukan konfigurasiCachyOSCachyOS Hello->Apps/Tweaks