TR7 üzerinden bir vService'e ya da Kurum Servisine yük testi yapabilir miyim?
Kısa cevap
Evet, WEB-CLI'daki iki yük üreticisiyle. sys-cmd wrk belirtilen süre boyunca eşzamanlı bağlantılarla istek gönderir ve test bitince saniyedeki ortalama istek hızını ve gecikme dağılımını tek özet olarak yazar (sys-cmd wrk -t2 -c50 -d30s --latency <adres>). sys-cmd h1load HTTP/1 adresine yük üretir ve değerleri saniye saniye yazar. vService testi için adres vService'in frontend IP'si ve portu, Kurum Servisi testi için sunucunun adresidir; Kurum Servisi doğrudan test edilirken önce sys-cmd route-table set ile Kurum Servisinin route table'ı seçilir. Yük üreticisi TR7'nin kendi işlemcisini kullanır ve testler gerçek istek gönderir; canlı hedefte düşük bağlantı sayısı ve kısa süreyle başlanır.
Sorun: Uygulamanın Hangi Yükü Karşıladığı Bilinmiyor
Yeni bir vService'i canlıya almadan, bir Kurum Servisi eklendikten ya da bir profil değiştirildikten sonra saniyede kaç isteğin hangi gecikmeyle karşılandığı ölçülmek istenir. Ayrı bir yük testi makinesi her zaman hazır değildir; TR7'nin bulunduğu ağdan hızlı bir ölçüm yeterli olabilir.
Çözüm: İki Yöntem
İki araç birbirinin alternatifidir; aynı hedefe aynı anda çalıştırılmaz.
| Durumunuz | Uygun yöntem |
|---|---|
| Test sonunda toplam istek hızını ve gecikme yüzdeliklerini görmek istiyorum; hedef HTTP ya da HTTPS | Yöntem 1: sys-cmd wrk |
| Yükün saniye saniye nasıl karşılandığını, gecikmenin hangi anda arttığını izlemek istiyorum; hedef HTTP/1 | Yöntem 2: sys-cmd h1load |
Yöntem 1: sys-cmd wrk Önerilen
- Nasıl çalışırsys-cmd wrk seçili route table'dan hedef adrese
-dsüresi boyunca-csayıda açık bağlantıyla istek gönderir; bağlantılar-tsayıda iş parçacığına bölünür. Sonuçlar süre bitince tek özet olarak gelir. - Nerede açılırWEB-CLI
- GereksinimUser Type'ı Admin olan kullanıcı.
- vService tipi HTTP; arkadaki uygulama HTTP konuşuyorsa L7 TCP
Adım adım yapılandırma
vService test edilecekse frontend IP'sine ulaşılan route table, Kurum Servisi doğrudan test edilecekse Kurum Servisinin Route Table değeri seçilir; cihazın kendisi için v-device alanına Host yazılır, route table adı Tab listesinden alınır:
sys-cmd route-table set v-device Host route-table <route-table>Örnekte 203.0.113.10 frontend IP'li vService'e 2 iş parçacığı ve 50 bağlantıyla 10 saniye yük verilir:
sys-cmd wrk -t2 -c50 -d10s http://203.0.113.10/| Parametre | Ne yapar |
|---|---|
-t | İş parçacığı sayısı; cihazın işlemci çekirdeği sayısını aşmayacak biçimde seçilir |
-c | Toplam açık bağlantı sayısı; -t değerinden küçük olamaz |
-d | Test süresi, birimle bitişik (10s, 1m) |
--latency | Özetin sonuna gecikme yüzdeliklerini ekler |
-H | İsteğe başlık ekler; boşluklu değer tırnakla yazılır |
--timeout | Yanıt gelmeyen isteğin zaman aşımı sayılacağı süre |
vService birden çok alan adına hizmet veriyorsa Host başlığı eklenir; değerler adım adım artırılır:
sys-cmd wrk -t2 -c50 -d30s --latency -H "Host: www.example.com" https://203.0.113.10/Kurum Servisi doğrudan test edilirken adres sunucunun adresi ve portudur (ör. http://192.0.2.21:8080/); bu test vService'in aksiyonlarından, önbelleğinden ve sıkıştırmasından geçmez.
Özet dosyaya yazılır; indirme bağlantısı sys-cmd file show wrk-vip.txt ile alınır (file show):
sys-cmd wrk -t2 -c50 -d30s --latency http://203.0.113.10/ | to-file wrk-vip.txtDoğrulama
Özetteki Requests/sec satırı ortalama istek hızını, Latency satırı gecikmeyi gösterir.
Non-2xx or 3xx responses satırı yokNon-2xx or 3xx responses satırı çıktıysa yanıtların bir kısmı hata ya da engellemedir; ölçüm hedefin değil kuralların davranışını gösterir.Test sürerken vService ekranında Live Stats açılır.
HTTP Request/s kartı test süresince yükselirYöntem 2: sys-cmd h1load
- Nasıl çalışırsys-cmd h1load seçili route table'dan bir HTTP/1 adresine
-csayıda eşzamanlı bağlantıyla istek gönderir ve test süresince her saniye için istek sayısını, hataları ve yanıt sürelerini satır satır yazar. - Nerede açılırWEB-CLI
- GereksinimUser Type'ı Admin olan kullanıcı.
- vService tipi HTTP
Adım adım yapılandırma
Yöntem 1'in 1. adımındaki gibi sys-cmd route-table set v-device Host route-table <route-table> çalıştırılır.
Örnekte 20 bağlantıyla 30 saniye yük verilir; süre yerine toplam istek sayısı için -n kullanılır:
sys-cmd h1load -c 20 -d 30 http://203.0.113.10/Süre ya da istek sayısı verilmezse test Ctrl+C ile durdurulur (sık kullanılan parametreler).
Doğrulama
Her saniye için yazılan satırlarda istek sayısı, hatalar ve yanıt süreleri izlenir.
Hata sayısı sıfır, yanıt süreleri test boyunca dengeliSık Yapılan Hatalar
Yük testi gerçek kullanıcıları etkiler
Testler hedefe gerçek istek gönderir. Canlı bir vService'e yüksek eşzamanlılıkla yük uygulamak kullanıcıları yavaşlatabilir; düşük bağlantı sayısı ve kısa süreyle başlanır, üretim hedefleri bakım penceresinde test edilir (HTTP & Load Testing).
- Sonucu hedefin sınırı sanmak. Yük üreticisi TR7'nin kendisinde çalışır ve cihazın işlemcisini kullanır; çok yüksek
-tve-cdeğerlerinde sonuç hedefin değil yük üreticisinin sınırını gösterir. Gerçek kapasite ölçümü için ayrı bir istemciden test yapılır. - Güvenlik kurallarını hesaba katmamak. vService'te WAF, Bot/DDoS ya da bağlantı limiti tanımlıysa test trafiği tek bir kaynaktan geldiği için engellenebilir ya da sınırlanabilir; özetteki hata sayısı bu durumda kuralların davranışını gösterir (Bağlantı limitine ulaşıldığında ne olur?).
-cdeğerini-tdeğerinden küçük vermek. Her iş parçacığı en az bir bağlantı kullanır.&ya da$içeren adresi tırnaksız yazmak. Sorgu dizgili adresler tek tırnakla yazılır ('http://203.0.113.10/?a=1&b=2');|bir değerin içinde kullanılamaz (yazım kuralları).- Test sürerken WEB-CLI penceresini kapatmak. Bağlantı kapandığında o oturumda çalışan komut sonlandırılır ve özet yazılmaz.
Dokümantasyonda nasıl yapılır
