5 poin oleh GN⁺ 2024-07-29 | Belum ada komentar. | Bagikan ke WhatsApp

Stack Jaringan Linux

Penerimaan paket jaringan di Linux

  • Pada perangkat jaringan, NIC(Network Interface Card) memicu IRQ(Interrupt Request) untuk memberi tahu bahwa paket telah tiba
  • Handler IRQ berjalan dengan prioritas sangat tinggi dan memblokir pembuatan IRQ tambahan
  • Sistem softIRQ digunakan untuk memproses pekerjaan di luar konteks IRQ driver perangkat
  • Thread kernel softIRQ dibuat, dan struktur softnet_data dibuat
  • NIC menggunakan DMA(Direct Memory Access) agar data jaringan ditulis ke ring buffer di RAM
  • Loop polling softIRQ NAPI dimulai
  • Loop net_rx_action memeriksa struktur NAPI dan meneruskan paket ke napi_gro_receive
  • Paket diteruskan ke stack protokol melalui netif_receive_skb

Transmisi jaringan kernel Linux

  • Saat aplikasi mengirim pesan, header TCP ditulis dan handler L3 dipanggil
  • Paket dipecah-pecah, lalu fungsi transmisi L2 dipanggil
  • Driver memasukkan paket ke antrean ring buffer tx
  • NIC mengambil paket dari RAM dan mengirimkannya
  • Setelah transmisi selesai, NIC memicu hard IRQ
  • Driver memproses IRQ ini dan menjadwalkan sistem poll NAPI

Tuning performa jaringan

HOWTO cepat

/proc/net/softnet_stat & /proc/net/sockstat
  • File /proc/net/softnet_stat menyediakan statistik untuk setiap core CPU
  • File /proc/net/sockstat menyediakan statistik penggunaan socket
ss
  • ss adalah utilitas untuk memeriksa statistik socket, dan dapat digunakan untuk melihat penggunaan memori
netstat
  • netstat adalah utilitas baris perintah yang menyediakan statistik koneksi jaringan dan stack protokol
sysctl
  • Pengaturan sistem/jaringan dapat diubah dengan perintah sysctl
  • Nilai dapat diubah secara permanen dengan mengedit file /etc/sysctl.conf

Ring buffer NIC

  • Ring buffer NIC adalah buffer FIFO berukuran tetap yang berada di RAM
  • Antrean ini perlu diperbesar agar dapat mengakomodasi koneksi burst dengan lebih lancar

Ringkasan GN⁺

  • Panduan ini menjelaskan secara rinci cara kerja stack jaringan Linux dan menyajikan berbagai metode untuk mengoptimalkan performa jaringan
  • Penting untuk memahami peran IRQ dan softIRQ yang muncul selama proses penerimaan dan transmisi paket jaringan
  • Performa dapat ditingkatkan dengan menyesuaikan pengaturan sistem menggunakan perintah sysctl dan mengubah ukuran ring buffer NIC
  • Tuning performa jaringan dapat berbeda tergantung pada kebutuhan spesifik sistem, sehingga perlu bereksperimen dengan berbagai pengaturan

Belum ada komentar.

Belum ada komentar.