Storm
स्टॉर्म स्क्रीन एक लोड स्रोत है: यह एक लक्ष्य पर UDP डेटाग्राम भेजती है, या TCP कनेक्शन खोलती है, जितनी तेज़ी से आप कहें, उतनी देर तक जितना आप कहें, और मापती है कि असल में क्या बाहर गया। इसका उपयोग यह देखने के लिए करें कि आपका ही सर्वर, डिवाइस या लिंक बाढ़ में कैसे टिकता है — क्या वह जवाब देता रहता है, पैकेट गिराता है, या गिर जाता है।
ज़िम्मेदार उपयोग
एक स्टॉर्म असली होस्ट पर असली ट्रैफ़िक भेजता है। इसे केवल उन्हीं होस्ट और नेटवर्क पर निशाना बनाएँ जो आपके हैं या जिन्हें जाँचने का आपको अधिकार है। ऊँची दरें उन पर मौजूद सबके लिए लिंक भर सकती हैं और घुसपैठ का पता लगाने वाली प्रणाली को चालू कर सकती हैं। इंजन स्टॉर्म की दर पर कोई सीमा नहीं लगाता: 0 का अर्थ है जितना तेज़ यह कंप्यूटर भेज सके।
स्टॉर्म शुरू करना
- लक्ष्य host:port सेट करें: जिस पर भेजना है वह
IP:portयाhost:port, जैसे127.0.0.1:9000याtest-rig.local:9000। शुरू करते समय एक होस्ट नाम खोजा जाता है, और उसका IPv4 पता ले लिया जाता है जब उसके पास एक हो। - प्रोटोकॉल चुनें: UDP फ़्लड या TCP कनेक्ट फ़्लड।
- पेलोड (बाइट), दर, pps और अवधि, s सेट करें।
- स्टॉर्म शुरू करें दबाएँ।
स्टॉर्म एक जॉब के रूप में चलता है: यह कंसोल पट्टी में दिखता है, और तब रुकता है जब उसकी अवधि पूरी हो जाए, जब आप स्टॉर्म रोकें दबाएँ, या सभी रोकें के साथ। चलते हुए फ़ील्ड स्थिर रहते हैं।
| फ़ील्ड | क्या | डिफ़ॉल्ट |
|---|---|---|
| लक्ष्य host:port | लक्ष्य का IP:port या host:port। | 127.0.0.1:9000 |
| प्रोटोकॉल | UDP फ़्लड: अलग-अलग डेटाग्राम। TCP कनेक्ट फ़्लड: हर "पैकेट" के लिए एक नया TCP कनेक्शन। | UDP फ़्लड |
| पेलोड (बाइट) | हर डेटाग्राम या कनेक्शन में बाइट, 1–65 507। इससे बड़ा या छोटा मान इसी सीमा में ले आया जाता है। | 512 |
| दर, pps | लक्ष्य पैकेट (या कनेक्शन) प्रति सेकंड। 0: जितना तेज़ संभव। | 1000 |
| अवधि, s | चलने के सेकंड। 0: जब तक आप रोक न दें। | 10 |
UDP फ़्लड
Signal Lab पेलोड आकार के डेटाग्राम भेजता है, हर बाइट 0x55, अपने एक पोर्ट से लक्ष्य तक। जिस भेजाव को सिस्टम अस्वीकार कर दे वह त्रुटि गिना जाता है — उदाहरण के लिए जब लक्ष्य जवाब दे कि उस पोर्ट पर कोई नहीं सुनता।
TCP कनेक्ट फ़्लड
हर "पैकेट" के लिए Signal Lab लक्ष्य से एक TCP कनेक्शन खोलता है, पेलोड लिखता है, और उसे बंद कर देता है। कनेक्शन एक के बाद एक बनाए जाते हैं, एक साथ नहीं, इसलिए TCP स्टॉर्म जिस दर तक पहुँचता है वह इस बात से सीमित है कि लक्ष्य उन्हें कितनी तेज़ी से स्वीकार करता है। जो कनेक्शन अस्वीकार हो, या 500 ms के भीतर स्वीकार न हो, वह त्रुटि गिना जाता है; जिस कनेक्शन ने पेलोड ले लिया वह पैकेट गिना जाता है।
दर कैसे बनाए रखी जाती है
दर एक शेड्यूल है। पहला पैकेट तुरंत बाहर जाता है, और पैकेट n शुरू होने के n ÷ दर, pps सेकंड बाद देय होता है। हर बार जब स्टॉर्म जागता है तो वह भेजता है जो देय है, फिर अगले पैकेट के देय होने तक सो जाता है। इसलिए 50 प्रति सेकंड 50 प्रति सेकंड है और 250, 250 — एक सेकंड का रन लगभग उतने ही भेजता है — सिस्टम की टाइमर महीनता चाहे जो हो। अवधि, s स्टॉर्म को समय पर समाप्त कर देता है, भले ही अगला पैकेट बाद में देय होता।
स्टॉर्म खोए समय की भरपाई के लिए अपनी दर से ऊपर कभी नहीं भेजता। अगर यह कंप्यूटर, या धीरे स्वीकार करने वाला कोई TCP लक्ष्य, 256 पैकेट से ज़्यादा पीछे रह जाए, तो पुराने पैकेट शेड्यूल से गिरा दिए जाते हैं बजाय इसके कि बाद में बाढ़ में भेजे जाएँ। PPS बताता है कि क्या हासिल हुआ।
दर, pps 0 होने पर कोई शेड्यूल नहीं है: स्टॉर्म 256 पैकेट भेजता है, दूसरे काम को चलने देता है, और अगले 256 भेजता है, जितना तेज़ यह कंप्यूटर कर सके।
थ्रूपुट पढ़ना
लाइव थ्रूपुट सेकंड में चार बार अद्यतन होता है:
| मीट्रिक | क्या |
|---|---|
| पैकेट | शुरू से भेजे गए डेटाग्राम, या पेलोड लेने वाले कनेक्शन। |
| PPS | पिछले एक-चौथाई सेकंड में पैकेट प्रति सेकंड। |
| दर | पिछले एक-चौथाई सेकंड में पेलोड के मेगाबिट प्रति सेकंड। हेडर (IP, UDP, TCP) नहीं गिने जाते। |
| मात्रा | शुरू से भेजे गए पेलोड बाइट। |
| त्रुटियाँ | विफल भेजाव या कनेक्शन। |
उनके नीचे का चार्ट पिछले एक मिनट का PPS दिखाता है।
स्टॉर्म समाप्त होने पर काउंटर अंतिम योग दिखाते हैं, और PPS तथा दर 0 पर चले जाते हैं।
संख्याएँ आपको क्या बताती हैं:
- UDP पर PPS दर, pps से काफ़ी नीचे: यह कंप्यूटर इससे तेज़ भेज नहीं सकता। दर या पेलोड आकार घटाएँ।
- UDP पर त्रुटियाँ बढ़ता हुआ: लक्ष्य का पोर्ट बंद है, या नेटवर्क ट्रैफ़िक अस्वीकार कर रहा है।
- TCP पर त्रुटियाँ बढ़ता हुआ: लक्ष्य कनेक्शन अस्वीकार कर रहा है या उन्हें स्वीकार करने में 500 ms से ज़्यादा ले रहा है — हो सकता है वह अपनी सीमा तक पहुँच गया हो।
एक स्टॉर्म बताता है कि कितना बाहर गया, यह नहीं कि कितना पहुँचा। लक्ष्य ने क्या प्राप्त किया यह देखने के लिए उसे देखें: उसके अपने लॉग, एक OSC मॉनिटर, या उसकी जगह एक एमुलेटर।
इंस्पेक्टर में
कैप्चर चालू होने पर एक UDP स्टॉर्म अपने एक डेटाग्राम को हर सेकंड इंस्पेक्टर में रखता है, sampled 1/s चिह्नित — वे सब एक जैसे हैं। फ़ैसला यह भी बताता है कि पिछले वाले के बाद से कितने छोड़े गए, sampled 1/s · +999 not shown के रूप में। एक TCP स्टॉर्म वहाँ कुछ भी नहीं रखता।
संबंधित
- इम्पेयरमेंट — बाढ़ के बजाय एक धीमी या गिरावट वाली लिंक।
- HTTP — HTTP रिक्वेस्टों के लोड बर्स्ट, विलंबों के साथ।
- लोड — किसी प्रयोग में HTTP लोड, थ्रेशोल्ड के साथ।