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:

  1. Jika belum, hubungkan ke instance menggunakan SSH.

  2. 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:

      1. Jika belum, mulai stack Onload dengan menjalankan perintah berikut:

        gcp_tp-onload /opt/neper/tcp_rr &
        
      2. Untuk mendapatkan stack-id stack yang Anda mulai, jalankan perintah berikut:

        onload_stackdump
        
      3. Untuk mendapatkan nomor indeks antarmuka jaringan Anda, jalankan perintah berikut:

        cat /sys/class/net/NIC_NAME/ifindex
        

        Ganti NIC_NAME dengan nama antarmuka jaringan di OS tamu, seperti eth1, eth2.

      4. 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 sebelumnya
        • NIC_INDEX: nomor indeks antarmuka jaringan yang ingin Anda aktifkan polling sibuknya, misalnya 1 atau 2.
        • CPU_ID: ID CPU yang akan diaktifkan polling sibuknya.

          • Sebaiknya jangan gunakan CPU 0 atau CPU apa pun yang sedang digunakan oleh aplikasi.
          • Pastikan Anda menggunakan core CPU yang lokal ke node NUMA antarmuka jaringan yang Anda tentukan. Contoh:

            • eth1 menggunakan node NUMA 0, yang menggunakan core CPU 0-29.
            • eth2 menggunakan node NUMA 2. yang menggunakan core CPU 60-89.

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