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
Daha önce gördüğümüz iki program. dd sistemlerde standart olarak gelen bir araç olmasına rağmen, netcat'i genellikle yüklemek gerekir. Ancak daha önce belirttiğimiz gibi, netcat günlük kullandığınız araçlar arasında olmazsa olmazlardan olduğu için genellikle sunuculara yüklemekte fayda var.
Diyelim ki 192.168.16.30 (client) makinasından 192.168.16.40 (server) sunucusuna veri transferinin hızını test etmek istiyoruz. Bu durumda 192.168.16.40 üzerinde belirli bir portu dinleyen bir netcat process'i çalıştırırız.
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 testlerin tamamının TCP ile gerçekleştirildiğini hatırlatalım. Eğer UDP test etmek isterseniz, hem server hem de client tarafında -u
parametresini kullanmanız gerekir.
iperf
Bağlantı testi için standartlaşmış araçlardan birisi. Repolarda iki versiyonunu görebilirsiniz, iperf ve iperf3. Kullandıkları default portlar dahil bir takım farklılıklar var. Aşağıdaki ölçümleri iperf3 ile gerçekleştirdik ancak eski versiyonu ile de benzer sonuçlar elde edebilirsiniz. Sadece iki tarafta da (server ve client) aynı versiyonu kullanmaya özen göstermekte fayda var (teknik olarak buna mecbur olmasanız da).
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.
Standart portları kullanmak istemiyorsanız -p
ile port belirtebilirsiniz. Ayrıca server tarafındaki sonuçları almak için --get-server-output
işe yarayabilir. Bir diğer kullanışlı özelliği, testi tersine çevirebiliyorsunuz. Yani serverdan sizin upload hızınızı değil, download hızınızı test etmesini talep edebilirsiniz, bunun için -R
parametresi (reverse) kullanılabilir.
speedtest-cli
Pratik bir şekilde bir sunucunun internet hızını ölçmek istiyorsanız kullanışlı bir program. Tarayıcınızdan speedtest.net adresine girdiğinizde yaptığınız ölçüm benzerini gerçekleştirir. Doğrudan github üzerinden curl
veya wget
ile yükleyebilir ve test edebilirsiniz. Veya dağıtımınızın repository'lerinde varsa indirip kullanabilirsiniz.
curl
ile programı hiç indirmeden, tek seferde test edip sonuç almak için:
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