Bekerja dengan Onload
Halaman ini menjelaskan cara menggunakan Onload untuk instance Compute Engine Latensi Sangat Rendah (ULL).
Onload adalah stack jaringan berperforma tinggi untuk aplikasi yang sensitif terhadap latensi dan memerlukan latensi sangat rendah, jitter minimal, dan performa yang konsisten. Onload menyediakan penerapan TCP/IP yang mengabaikan kernel sistem operasi dan berjalan langsung di ruang pengguna sambil memungkinkan aplikasi menggunakan API soket BSD standar.
Penggunaan Onload dengan Solusi ULL mencakup dukungan untuk berikut ini:
- Pengarahan alur: Dengan antarmuka jaringan ULL, Anda dapat melewati hashing Penskalaan Sisi Penerima (RSS) default dengan mengarahkan alur traffic tertentu langsung ke Antrean Penerima (RX) yang ditentukan. Untuk traffic unicast dan multicast ULL, pengarahan aliran 3-tuple didukung (protokol, alamat IP tujuan, port tujuan).
Jenis instance dan image OS yang diperlukan
Untuk menggunakan Onload, Anda harus membuat instance Compute Engine ULL (U4P atau U4C) dengan menggunakan project image dan image yang disediakan oleh Google untuk pengujian seperti yang dijelaskan dalam Membuat instance Compute Engine ULL.
Saat Anda menggunakan image yang diperlukan, Onload sudah diinstal sebelumnya dan dimuat saat booting. Kemudian, Anda dapat menjalankan proses dengan Onload seperti yang dijelaskan dalam prosedur di halaman ini.
Memulai dan menghentikan onload
Bagian ini menjelaskan cara memulai dan menghentikan Onload. Anda harus memulai Onload untuk menyelesaikan prosedur di bagian berikut.
Untuk memulai Onload, jalankan perintah berikut:
sudo /opt/gcp_tp-scripts/load-onload-and-tune
Untuk menghentikan Onload, jalankan perintah berikut:
sudo /opt/gcp_tp-scripts/unload-onload
Mengaktifkan polling sibuk
Untuk membantu mencapai latensi ultra-rendah dan meminimalkan jitter, aktifkan polling sibuk.
Untuk mengaktifkan polling sibuk, lakukan hal berikut:
Jika belum, hubungkan ke instance menggunakan SSH.
Anda dapat mengaktifkan polling sibuk untuk semua antrean atau secara lebih terperinci. Pilih opsi yang sesuai dengan kasus penggunaan Anda:
Semua antrean:
sudo /opt/gcp_tp-scripts/busypoll-all-queues
Antrean RX tertentu yang digunakan oleh stack Onload:
Jika belum, mulai stack Onload dengan menjalankan perintah berikut:
gcp_tp-onload /opt/neper/tcp_rr &
Untuk mendapatkan
stack-idstack yang Anda mulai, jalankan perintah berikut:onload_stackdump
Untuk mendapatkan nomor indeks antarmuka jaringan Anda, jalankan perintah berikut:
cat /sys/class/net/NIC_NAME/ifindex
Ganti
NIC_NAMEdengan nama antarmuka jaringan di OS tamu, sepertieth1,eth2.Untuk mengaktifkan polling sibuk, jalankan perintah berikut:
sudo /opt/gcp_tp-scripts/busypoll-onload-stack STACK_ID enable NIC_INDEX CPU_ID
Ganti kode berikut:
STACK_ID: ID stack yang Anda peroleh sebelumnyaNIC_INDEX: nomor indeks antarmuka jaringan yang ingin Anda aktifkan polling sibuknya, misalnya1atau2.CPU_ID: ID CPU yang akan diaktifkan polling sibuknya.- Sebaiknya jangan gunakan CPU
0atau CPU apa pun yang sedang digunakan oleh aplikasi. Pastikan Anda menggunakan core CPU yang lokal ke node NUMA antarmuka jaringan yang Anda tentukan. Contoh:
eth1menggunakan node NUMA0, yang menggunakan core CPU0-29.eth2menggunakan node NUMA2. yang menggunakan core CPU60-89.
- Sebaiknya jangan gunakan CPU
Anda dapat menonaktifkan polling sibuk menggunakan perintah berikut:
sudo /opt/gcp_tp-scripts/busypoll-onload-stack STACK_ID disable NIC_INDEX CPU_ID
Langkah berikutnya
- Untuk menyinkronkan jam sistem instance Anda dengan jam NIC fisik server host-nya, lihat Mengonfigurasi waktu yang akurat.