5 puan yazan GN⁺ 2024-07-29 | Henüz yorum yok. | WhatsApp'ta paylaş

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.

Henüz yorum yok.