Bantgenişliği Ölçümü
Bu bölümde iki sunucu arasındaki ağ kullanımının test edilmesi için birkaç teknikten bahsedeceğiz. Bu tekniklerin bazıları GNU/Linux dağıtımlarının çoğunda halihazırda yüklü olan araçları kullanırken, bazıları yeni programların yüklenmesini gerektirebilir.
dd
ve netcat
Kullanımı
dd
ve netcat
KullanımıBu yöntem, iki makine arasında ham TCP veya UDP aktarım hızını ölçmek için temel Linux araçlarını kullanır. Bir makinede netcat
sunucu olarak dinlerken, diğer makinede dd
ile belirli miktarda veri oluşturulup netcat
istemcisi aracılığıyla sunucuya gönderilir. dd
komutunun çıktısı, transfer süresini ve hızını gösterir.
Uyarı: Bu yöntem veriyi şifrelemeden aktarır. Güvenilmeyen ağlarda kullanılmamalıdır.
Adımlar:
Sunucu Tarafı (
192.168.16.40
): Belirli bir portu (5566
) dinle ve gelen veriyi/dev/null
'a göndererek yok say:
Yukarıdaki durum şunu söylüyor: 5566 portunu dinle, ama gelen bütün verileri olduğu gibi sil. Şimdi dd ile client makinasından 1GB veriyi server'a gönderelim ve ne kadar sürdüğüne bakalım.
Burada dd'ye dedik ki
İçinde "0" bulunan Byte'lar gönder (/dev/zero)
Her Byte bloğu 1024KByte (yani 1MB) boyutunda olsun (bs=1024K)
Toplam 1024 tane blok gönder (yani 1024x1MB = 1GB)
Çıktıyı netcat ile 192.168.16.40'ın 5566 portuna yönlendir
Sonunda da 1GB verinin gönderiminin 10 saniyeden biraz daha uzun sürdüğünü görüyoruz, yani saniyede 102MB transfer hızına sahipmiş bu iki makina arasındaki bağlantı.
Bütün bunlar gerçekleşirken server tarafında şunlar oldu.
Gördüğünüz gibi bağlantı client tarafından kapatılınca server da kapattı kendisini. Bunun olmasını istemiyorsak (her testimizde server tarafındaki netcat'i yeniden çalıştırmak istemiyorsak) parametreler arasında -k
eklemek gerekir. Örneğin,
Bu test varsayılan olarak TCP üzerinden yapılır. UDP hızını test etmek için hem sunucu hem de istemci tarafında nc
komutuna -u
parametresini eklemeniz gerekir. Ancak UDP bağlantısız olduğu için, bu test paket kaybı gibi faktörleri tam olarak yansıtmayabilir ve iperf
gibi araçlar UDP testi için genellikle daha uygundur.
iperf
/ iperf3
iperf
/ iperf3
iperf
(ve modern versiyonu iperf3
), ağ bant genişliği performansını ölçmek için özel olarak tasarlanmış standart bir araçtır. TCP ve UDP testlerini destekler, çeşitli parametrelerle testin süresini, paralel akış sayısını, raporlama aralığını vb. ayarlama imkanı sunar.
Genellikle istemci-sunucu modunda çalışır. Test edilecek iki makineye de kurulması gerekir (sudo apt install iperf3
veya sudo dnf install iperf3
).
Sunucu tarafında aşağıdaki komutu çalıştırdığınızda kendisi zaten default port üzerinden dinlemeye başlar:
Client tarafındaysa bu sunucu üzerinde test yapmasını söylemek gerekiyor. Sırayla testleri yaptıktan sonra aşağıdaki gibi bir sonuç sunuyor.
Yaygın Seçenekler:
-s
: Sunucu modunda çalıştırır.-c <sunucu_ip>
: İstemci modunda çalıştırır ve belirtilen sunucuya bağlanır.-p <port>
: Kullanılacak port numarasını belirtir (iperf3 için varsayılan 5201).-u
: UDP testi yapar.-b <hız>
: UDP için hedef bant genişliğini belirtir (örn.100M
= 100 Mbit/s).
-P <sayı>
: Paralel istemci akışı (stream) sayısını belirtir.-t <saniye>
: Test süresini belirtir (varsayılan 10 saniye).-i <saniye>
: Raporlama aralığını belirtir.-R
: Test yönünü tersine çevirir (sunucu gönderir, istemci alır - download testi).--get-server-output
: İstemci tarafında sunucu tarafının raporunu da gösterir.
speedtest-cli
speedtest-cli
Bir sunucunun genel internet bağlantı hızını (download/upload ve ping) popüler Speedtest.net hizmetini kullanarak ölçmek için kullanılan bir komut satırı aracıdır.
Kurulum: Genellikle dağıtım depolarında bulunur:
Alternatif olarak, Python pip ile veya doğrudan GitHub'dan (https://github.com/sivel/speedtest-cli
) indirilebilir, ancak depo sürümü genellikle daha kolaydır.
Kullanım: Basitçe komutu çalıştırın:
Komut, en yakın Speedtest.net sunucusunu bulur, ping süresini ölçer, ardından indirme ve yükleme hızlarını test eder ve sonuçları gösterir.
curl
ile programı hiç indirmeden, tek seferde test edip sonuç almak için (GitHub'daki betiği kullanarak - URL değişebilir):
Bu komut çalıştırdığınızda doğrudan sonucu göreceksiniz ve program diske yazılmamış olacaktır. Eğer kodu saklamak ve tekrar tekrar kullanmak isterseniz wget
ile indirip sonra Python ile çalıştırabilirsiniz.
Ardından Python ile test ettiğinizde şöyle bir sonuç görebilirsiniz.
Last updated