20 poin oleh xguru 2024-11-19 | 2 komentar | Bagikan ke WhatsApp
  • 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

 
xguru 2024-11-19

Opini Hacker News

  • Ada kekhawatiran bahwa mendiagnosis dan menyelesaikan masalah sistem bisa menjadi lebih sulit
  • Konsep "feedback loop" penting untuk menjelaskan kemungkinan terjadinya masalah
    • Ini bukan karena masalah pada kernel Linux, BPF, atau program itu sendiri, melainkan karena cara kerjanya
    • Mungkin tidak ada risiko, mungkin ada mekanisme kontrol, dan bahkan jika masalah muncul, sistem bisa saja konvergen ke keadaan yang stabil
  • Teori kontrol tampaknya masih agak kurang diterapkan dalam rekayasa perangkat lunak
  • Ingin mendengar pendapat dari orang-orang yang menggunakan alat ini
    • Penasaran apakah ini efektif dan apakah waktu yang dibutuhkan untuk menyiapkannya sepadan
  • bpftune dirancang sebagai alat yang tidak memerlukan konfigurasi
    • Bagus karena tidak perlu mempelajari banyak pengaturan dan dukungan otomatis sangat disambut
  • Bisa langsung digunakan di CachyOS
    • Setelah instalasi, bisa diakses melalui CachyOS Hello -> Apps/Tweaks
  • Penasaran dengan efektivitasnya di lingkungan multi-tenant seperti klaster k8s bersama
    • Setiap aplikasi memiliki tujuan yang berbeda dan berpindah antar-node seiring waktu
    • Namun, kemungkinan besar ada kesamaan di antara sebagian besar aplikasi
  • Penasaran apakah penyesuaian ukuran buffer TCP benar-benar bernilai
  • Ada pertanyaan apakah, jika menyesuaikan parameter ke nilai optimal itu mudah, kernel seharusnya sudah melakukannya sejak awal
  • Sangat bagus melihat evolusi dari sekadar pemfilteran paket menjadi pelacakan dan pemantauan
    • Ini alat yang hebat yang seharusnya diketahui kebanyakan orang
    • Sudah menggunakannya selama beberapa tahun