iPerf testi, bir bilgisayar ağı üzerinde iki uç nokta arasındaki veri aktarım kapasitesini ölçmek amacıyla kullanılan bir ağ performans testidir. iPerf, istemci-sunucu mimarisiyle çalışan, açık kaynak kodlu bir yazılımdır. Bu test, ağın gerçek zamanlı bant genişliğini, veri aktarım hızını, gecikmeyi (latency), paket kayıplarını ve bağlantı kararlılığını ölçer.
iPerf aracı genellikle TCP (Transmission Control Protocol) ve UDP (User Datagram Protocol) üzerinden çalışır ve kullanıcıya ağ performansını değerlendirmek için çeşitli parametreler tanımlama olanağı sunar.
iPerf3 sürümü, yazılımın modern ve yeniden yazılmış sürümüdür; önceki sürüm olan iPerf2 ile geriye dönük uyumlu değildir. Bu sürüm, tek yönlü ve çift yönlü testleri, IPv4 ve IPv6 desteğini, çoklu akış (parallel stream) ölçümünü, QoS sınıfı belirteçlerini ve sonuçların JSON biçiminde dışa aktarılmasını destekler.
iPerf, OSI modelinin 4. katmanı (Taşıma katmanı) düzeyinde çalışır; ağ katmanı (L3) üzerindeki gecikme ve veri iletimini protokol düzeyinde test eder. Bu yönüyle ping veya traceroute gibi ICMP tabanlı araçlardan farklı olarak, gerçek TCP oturumları veya UDP akışları üzerinden ölçüm yapar.
Çalışma Prensibi
iPerf testi iki uç cihaz arasında yapılır:
- Sunucu (server): Testin alıcı tarafıdır, gelen veriyi dinler ve ölçüm sonuçlarını üretir.
- İstemci (client): Veriyi gönderen taraftır ve testin yönünü belirler.
İstemci, sunucuya belirli bir süre boyunca veri gönderir ve bu süre sonunda sistem, aktarım hızı, toplam veri miktarı ve paket istatistikleri gibi ölçümleri hesaplar. Bu yapı sayesinde ağın yalnızca bir segmentinde değil, iki uç arasındaki tam bağlantı hattında performans testi yapılabilir.
Bir iPerf testi başlatıldığında, istemci tarafında gönderim parametreleri belirlenir (örneğin süre, port numarası, protokol tipi, paralel bağlantı sayısı). Sunucu tarafında ise program dinleme modunda (iperf3 -s) çalıştırılır. Test tamamlandığında istemci tarafı, ortalama bant genişliği (throughput), jitter (dalgalanma), veri kaybı oranı, RTT (Round Trip Time) ve transfer sürelerini raporlar.
iPerf testleri, veri akışını tampon belleğe (buffer) yazarak ve paketleri belirli MTU (Maximum Transmission Unit) boyutlarında göndererek yürütür. TCP testlerinde akış kontrolü, pencere boyutu ve yeniden iletim mekanizmaları etkinken; UDP testlerinde paket sırası korunmadığından ölçüm doğrudan ağın ham kapasitesini temsil eder.
Kullanım Alanları
iPerf, ağ yöneticileri, sistem mühendisleri ve veri merkezi operatörleri tarafından farklı senaryolarda kullanılır:
- Sunucu–sunucu bağlantı testleri: Veri merkezinde iki fiziksel veya sanal sunucu arasındaki bağlantı hızının doğrulanması.
- Anahtar–uç cihaz performans kontrolü: Ağ anahtarlarının, yönlendiricilerin veya kablosuz erişim noktalarının kapasite değerlendirmesi.
- Servis sağlayıcı doğrulaması: İnternet servis sağlayıcısının taahhüt ettiği bant genişliğinin ölçümü.
- Ağ değişikliği sonrası testler: Yeni VLAN, kablolama veya yapılandırma değişikliklerinin performans etkisinin gözlenmesi.
- VPN ve WAN hat optimizasyonu: Şifreleme, tünelleme veya QoS sınıflarının etkisini görmek için uzun mesafeli ölçümler.
Bu testler genellikle LAN (Local Area Network), WAN (Wide Area Network), VPN, kablosuz bağlantılar (Wi-Fi, WLAN) ve yüksek hızlı veri merkezleri (10G/40G/100G Ethernet) ortamlarında uygulanır.
Temel Komutlar ve Parametreler
iPerf komut satırından çalıştırılır ve çok sayıda parametreyle özelleştirilebilir. iPerf3 sürümünde sık kullanılan bazı seçenekler şunlardır:
- iperf3 -s: Sunucuyu dinleme modunda başlatır.
- iperf3 -c [IP-adresi]: İstemciyi başlatır ve belirtilen IP adresine test gönderir.
- -p [port numarası]: Farklı bir port üzerinden test yapılmasını sağlar.
- -t [süre]: Test süresini saniye cinsinden belirler.
- -u: TCP yerine UDP protokolüyle test yapılmasını sağlar.
- -b [hız]: UDP testlerinde bant genişliği sınırı koyar.
- -P [akış sayısı]: Birden fazla paralel bağlantı oluşturur (örneğin çok çekirdekli işlemcilerde gerçekçi performans testi için).
- --reverse: Veri akışını ters yönde test eder (sunucudan istemciye).
- --bidir: Çift yönlü veri akışıyla eşzamanlı test yapar.
- --zerocopy: Bellek kopyalama işlemini azaltarak CPU yükünü minimize eder.
- --json: Çıktıyı JSON biçiminde verir; izleme sistemlerine entegrasyon için kullanılır.
iPerf ayrıca test süresince RTT (Round Trip Time) hesaplamalarını, TCP pencere boyutlarını (-w parametresi) ve tampon optimizasyonlarını da gösterir.
Test Türleri ve Ölçüm Kriterleri
iPerf testleri farklı protokollere göre ölçüm yapar:
- TCP testi: Ağın toplam bant genişliğini ve bağlantı kararlılığını ölçer. TCP bağlantı tabanlı olduğundan, veri kaybı durumunda yeniden iletim (retransmission) yapar; bu da gerçek kullanıcı trafiğine en yakın senaryoyu temsil eder.
- UDP testi: Paket kayıplarını, jitter değerini ve gerçek zamanlı uygulamalardaki performansı değerlendirir. UDP testleri, özellikle ses (VoIP) ve video akışı gibi gecikmeye duyarlı hizmetlerin uygunluğunu belirlemede kullanılır.
- Çift yönlü (bidirectional) test: Aynı anda hem istemci–sunucu hem sunucu–istemci yönünde veri akışını ölçer.
- Paralel test: Birden fazla TCP veya UDP akışı üzerinden eşzamanlı ölçüm yapar; bu sayede ağın çoklu bağlantı kapasitesi, buffer performansı ve QoS politikalarının etkisi test edilir.
Elde edilen temel ölçüm değerleri şunlardır:
- Throughput (bant genişliği): Saniyede iletilen veri miktarı (Mbps, Gbps).
- Jitter: Paketlerin varış süresi farkı (ms).
- Packet loss: Gönderilen toplam paket sayısına göre kaybedilen paket oranı.
- Retransmissions: TCP yeniden iletim oranı.
- RTT ve CWND: TCP oturumundaki ortalama gidiş-dönüş süresi ve pencere boyutu.
Örnek Test Senaryosu
Tipik bir iPerf3 testinde, sunucu tarafında aşağıdaki komut çalıştırılır:
iperf3 -s
İstemci tarafında ise örnek test komutu şu şekilde uygulanır:
iperf3 -c 192.168.1.10 -t 30 -P 4
Bu komut, 192.168.1.10 adresindeki sunucuya 30 saniye boyunca 4 paralel akışla TCP testi başlatır.
Test tamamlandığında çıktı aşağıdaki bilgileri içerir:
- Her akış için transfer edilen veri miktarı,
- Ortalama bant genişliği (örneğin 8.72 Gbps),
- Gecikme süresi,
- Paket kayıpları (UDP testlerinde).
Bu değerlerin analizinde, sistem CPU kullanım oranı, ağ kartı sürücüleri, IRQ dağılımı ve MTU boyutunun test sonuçlarını doğrudan etkilediği göz önünde bulundurulmalıdır. Özellikle 10 Gbps üzeri hızlarda tek çekirdek darboğazları veya NIC sürücü sınırlamaları ölçümleri düşürebilir.
Sonuçların Yorumlanması ve Optimizasyon
iPerf test sonuçları, ağ altyapısının verimliliğini, darboğaz noktalarını ve donanım sınırlarını ortaya koyar.
- Yüksek bant genişliği ve düşük jitter, ağın stabil çalıştığını gösterir.
- Yüksek paket kaybı veya düşük throughput değerleri, hat kalitesi, tamponlama, kablolama veya ağ arayüzü sorunlarına işaret edebilir.
- Tek yönlü düşük hızlar, yönlü QoS, firewall politikaları veya simetrik olmayan yönlendirme (asymmetric routing) problemlerinden kaynaklanabilir.
iPerf çıktıları JSON biçiminde kaydedilerek otomasyon sistemlerine, ağ izleme yazılımlarına (örn. Grafana, Zabbix, PRTG, NetAlly Link-Live) veya CI/CD ağ test pipeline’larına entegre edilebilir.
Geniş ölçekli ağlarda testler zamanlanmış olarak (cron, PowerShell, Ansible) yürütülür ve istatistiksel ortalamalar alınarak kapasite planlaması yapılır.
Donanım ve Güvenlik Faktörleri
iPerf ölçümleri sadece ağ değil, test yapılan sistemlerin donanım sınırlamalarına da bağlıdır.
- CPU yükü: Paket işleme hızı ve çekirdek sayısı throughput’u etkiler.
- NIC özellikleri: Donanımsal hızlandırma (offload), jumbo frame ve IRQ dengelemesi performansı artırır.
- MTU ayarları: Ethernet MTU (ör. 9000 byte jumbo frame) optimize edilmezse testte segmentasyon oluşabilir.
- Güvenlik duvarları ve IDS/IPS sistemleri: Paket denetimi test sonuçlarını sınırlayabilir.
Bu nedenle iPerf testleri genellikle izole edilmiş ağ segmentlerinde veya test VLAN’larında yapılır.
iPerf testi, ağ bağlantılarının performansını nesnel biçimde değerlendiren, protokol düzeyinde ölçüm yapabilen bir araçtır. İstemci-sunucu yapısı, TCP/UDP desteği, çift yönlü ve paralel test modlarıyla ağ yöneticilerine kapsamlı analiz olanağı sağlar. iPerf, bant genişliği doğrulamasından QoS analizine kadar birçok senaryoda, ağ altyapısının kapasite planlaması ve hata tespitinde kullanılan temel ölçüm yöntemidir.

