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.