February 16, 2025

Apa analisisnya: 

Milisampleradalah salah satu alat karakterisasi terbaru Meta dan memungkinkan kami tiktok88 login untuk mengamati, mengkarakterisasi, dan men-debug kinerja komunitas pada rentang waktu perincian tinggi secara efektif. Instrumen karakterisasi pengunjung situs komunitas yang ringan ini untuk pemantauan berkelanjutan beroperasi pada rentang waktu berkualitas tinggi yang dapat dikonfigurasi. Ini mengumpulkan koleksi waktu masuk dan keluar volume pengunjung situs, berbagai arus aktif, tanda ECN yang masuk, dan transmisi ulang masuk dan keluar. Selain itu, Millisampler juga dapat menentukan pengunjung situs dalam wilayah dan pengunjung situs lintas wilayah (RTT lebih panjang). Millisampler berjalan di armada server kami yang mengumpulkan snapshot cepat dan berkala dari informasi ini pada perincian waktu 100us, 1ms, dan 10ms, menyimpannya di disk asli, dan membuatnya tersedia selama beberapa hari untuk evaluasi sesuai permintaan. Karena informasi hanyalah kumpulan data header tingkat aliran, informasi tersebut tidak terdiri dari data identitas pribadi (PII). Bahkan dengan jumlah data minimal yang dikumpulkannya, informasi Millisampler telah terbukti sangat membantu dalam tindak lanjut, terutama jika digabungkan dengan informasi berbutir kasar saat ini — kami dapat melihat dengan jelas bagaimana mengubah buffer atau NIC host, misalnya, dapat tidak dapat menangani sampel pengunjung situs yang masuk.

Cara kerjanya: 

Millisampler berisi kode ruang pengguna untuk menjadwalkan operasi, informasi pengecer, dan menyajikan informasi, dan filter tc berbasis eBPF yang berjalan di dalam kernel untuk mengumpulkan informasi skala waktu yang baik. Kode konsumen melampirkan filter tc dan memungkinkan bermacam-macam informasi. Filter tc adalah salah satu dari banyak langkah pertama yang dapat diprogram pada penerimaan paket dan mendekati langkah terakhir pada transmisi. Saat masuk, yang berarti kode eBPF dijalankan pada inti CPU yang memproses irq nyaman (bagian belakang) karena paket diarahkan ke soket yang dimilikinya. Karena pemrosesan terjadi pada banyak inti CPU, untuk menghindari pemblokiran, kami menggunakan variabel per-CPU, yang meningkatkan persyaratan memori untuk menghilangkan ancaman persaingan. Untuk mengurangi overhead, kami membuat pola secara berkala dan untuk interval waktu yang singkat.interval sampling dan variasi sampel. Kami menjadwalkan operasi dengan tiga interval pengambilan sampel: 10 md, 1 md, dan 100 μs, dengan variasi sampel yang keras dan cepat hingga 2.000 untuk semua interval pengambilan sampel. Artinya, interval pernyataan kami berkisar dari 200 md (kecepatan pengambilan sampel 100 μs) hingga 20 dtk (kecepatan pengambilan sampel 10 md), memungkinkan kami menonton acara pada skala waktu sub-RTT hingga lintas wilayah RTT, dan, pada waktu yang sama, memperbaiki jejak memori dari setiap proses hingga 2.000 penghitung 64-bit per inti CPU untuk setiap nilai yang kami ukur.

Millisampler mengumpulkan berbagai metrik. Itu menghitung masuk dan keluar seluruh byte dan masuknya byte bertanda ECN dari panjang dan bit CE dari paket. Millisampler juga membunyikan transmisi ulang bertanda TTLd. Millisampler menggunakan sketsa 128-bit untuk memperkirakan jumlah koneksi aktif (masuk dan keluar). Menggunakan sketsa mengarah ke perkiraan jumlah koneksi yang tepat sebanyak selusin koneksi dan jenuh pada sekitar 500 koneksi per interval pengambilan sampel. Meskipun ada ruang untuk ketelitian ekstra, dalam hal ini, lebih dari jumlah koneksi yang sebenarnya, variasi kualitatif antara hanya beberapa koneksi hingga lusinan atau banyak koneksi telah berguna untuk mengetahui pola lalu lintas dengan lebih banyak koneksi (incast berat). ) versus pengunjung situs ekstra dengan koneksi yang lebih sedikit.

Mengapa masalah ini:

Millisampler adalah instrumen yang tangguh untuk pemecahan masalah dan evaluasi efisiensi.Dua kesalahan efisiensi komunitas yang kontras yang kami selesaikan di Meta dalam beberapa tahun sebelumnya bergantung pada kebutuhan kami untuk melihat pengunjung situs secara mendetail. Kelemahan utama menampilkan semburan lalu lintas yang disinkronkan pada skala waktu berkualitas tinggi, dan melihat ini memotivasi kami untuk membangun dan menerapkan Millisampler untuk segera menangkapnya jika itu terjadi lagi. Yang kedua, yang dibantu oleh prototipe Millisampler awal, menampilkan bug driver NIC yang memicunya untuk menghentikan pengiriman paket selama milidetik pada satu waktu, sehingga membuktikan nilai Millisampler dalam penyelidikan lanjutan. Sedangkan Millisampler (atau informasi seperti Millisampler) melakukan posisi penting dalam penyelidikan ini,

Di luar insiden tersebut, informasi Millisampler juga telah terbukti membantu dalam mengkarakterisasi dan menganalisis karakteristik lalu lintas perusahaan, memungkinkan kami merancang dan menerapkan berbagai fitur untuk membantu meningkatkan efisiensinya. Misalnya, kami telah dapat mengkarakterisasi karakter semburan di banyak perusahaan untuk memahami kedalaman incast dan menyesuaikan efisiensi transportasi yang sesuai. Kami juga telah dapat melihat interaksi lanjutan antara aliran RTT pendek dan RTT panjang dan melihat bagaimana semburan keduanya mempengaruhi ekuitas untuk yang lain. Dalam publikasi berikut, kami

Pelajari makalah selengkapnya:

Ucapan terima kasih:

Ehab Ghabashneh, Cristian Lumezanu, Raghu Nallamothu, dan Rob Sherwood juga berkontribusi pada desain dan implementasi Millisampler.