Linux ağ yığını
Linux ağ paketlerinin alınması
- Ağ cihazında NIC (Network Interface Card), bir paketin geldiğini bildirmek için IRQ (Interrupt Request) üretir
- IRQ işleyicisi çok yüksek öncelikle çalışır ve ek IRQ oluşumunu engeller
- softIRQ sistemi, aygıt sürücüsü IRQ bağlamı dışında işleri işlemek için kullanılır
- softIRQ çekirdek iş parçacığı oluşturulur ve
softnet_data yapısı oluşturulur
- NIC, ağ verisinin RAM’deki halka arabelleğine yazılması için DMA (Direct Memory Access) kullanır
- NAPI softIRQ polling döngüsü başlatılır
net_rx_action döngüsü NAPI yapısını kontrol eder ve paketi napi_gro_receive fonksiyonuna iletir
- Paket,
netif_receive_skb üzerinden protokol yığınına aktarılır
Linux çekirdeğinde ağ iletimi
- Uygulama bir mesaj gönderdiğinde TCP başlığı oluşturulur ve L3 işleyicisi çağrılır
- Paket parçalanır ve L2 iletim fonksiyonu çağrılır
- Sürücü paketi
tx halka arabelleğine kuyruğa alır
- NIC paketi RAM’den alıp iletir
- İletim tamamlandığında NIC bir donanım IRQ’su üretir
- Sürücü bu IRQ’yu işler ve NAPI polling sistemini zamanlar
Ağ performansı ayarlama
Hızlı HOWTO
/proc/net/softnet_stat & /proc/net/sockstat
/proc/net/softnet_stat dosyası her CPU çekirdeği için istatistikler sağlar
/proc/net/sockstat dosyası soket kullanım istatistikleri sağlar
ss
ss, soket istatistiklerini inceleyen ve bellek kullanımını kontrol etmeye yarayan bir yardımcı programdır
netstat
netstat, ağ bağlantıları ve protokol yığını istatistikleri sağlayan bir komut satırı yardımcı programıdır
sysctl
sysctl komutu kullanılarak sistem/ağ ayarları değiştirilebilir
/etc/sysctl.conf dosyası düzenlenerek değerler kalıcı olarak değiştirilebilir
NIC halka arabelleği
- NIC halka arabelleği, RAM’de bulunan sabit boyutlu bir FIFO arabellektir
- Ani bağlantı yüklerini sorunsuz karşılamak için bu kuyruğun artırılması gerekebilir
GN⁺ özeti
- Bu rehber, Linux ağ yığınının nasıl çalıştığını ayrıntılı şekilde açıklar ve ağ performansını optimize etmek için çeşitli yöntemler sunar
- Ağ paketlerinin alınması ve iletilmesi sırasında IRQ ile softIRQ’nun rollerini anlamak önemlidir
sysctl komutu kullanılarak sistem ayarları düzenlenebilir ve NIC halka arabelleğinin boyutu ayarlanarak performans artırılabilir
- Ağ performansı ayarlama, sistemin özel gereksinimlerine göre değişebilir; bu nedenle çeşitli ayarları denemek gerekir
Henüz yorum yok.