अमेज़न EC2 नेटवर्क स्पीड टेस्ट

अमेज़न के साथ काम करते समय, पर्दे के पीछे बहुत कुछ रहता है। औसत उपयोगकर्ता के लिए, यह और भी अच्छा है, उसे एक कार्यशील सेवा की आवश्यकता है और इससे कोई फर्क नहीं पड़ता कि यह सेवा कैसे लागू की गई है। लेकिन जो लोग अमेज़ॅन या अन्य क्लाउड प्रदाताओं के लिए सिस्टम डिज़ाइन करते हैं, उनके लिए यह एक समस्या हो सकती है। काम के कुछ आंतरिक पहलुओं को स्पष्ट किया जाता है जब उन लोगों के साथ संवाद किया जाता है। समर्थन, लेकिन ज्यादातर मामलों में, एक बेहतर समझ के लिए, आपको विभिन्न परीक्षणों और प्रयोगों का संचालन करना होगा।
उदाहरण के लिए, नेटवर्क प्रदर्शन। अमेज़ॅन किसी भी मशीन के लिए एक निश्चित नेटवर्क बैंडविड्थ की गारंटी देता है या नहीं, नेटवर्क की गति सर्वर संसाधनों, क्षेत्र या दिन के समय पर कैसे निर्भर करती है। मैं तुरंत ही कहूंगा कि अगर नेटवर्क की गति एक महत्वपूर्ण मानदंड है और अधिकतम गति 1G / s है, तो अमेज़न समर्थन बड़ी मशीनों का उपयोग करने की दृढ़ता से अनुशंसा करता है। लेकिन व्यवहार में जांच करने के लिए सब कुछ हमेशा बेहतर होता है।


1. परीक्षण की स्थिति और परीक्षण स्थल की तैयारी
हमें एक स्वच्छ अधिकतम नेटवर्क बैंडविड्थ की आवश्यकता थी, जो कि ऑपरेटिंग सिस्टम और सॉफ्टवेयर के आधार पर जितना संभव हो उतना कम था, इसलिए iperf को टूल के रूप में चुना गया था, उबंटू 12.04 प्लेटफॉर्म के रूप में।

सभी मशीनों को मैन्युअल रूप से चलाना, उन पर आवश्यक सॉफ़्टवेयर स्थापित करना और मैन्युअल रूप से परीक्षण चलाना, ज़ाहिर है, "हमारी पद्धति नहीं"।

इसलिए, लगभग सभी ऑपरेशन स्वचालित थे। स्वचालन के लिए, निम्नलिखित का चयन किया गया था:
  1. एएमआई में एक शुरुआत स्क्रिप्ट शामिल है जो उपयोगकर्ता-डेटा से सभी आवश्यक डेटा प्राप्त करती है, यहां वर्णित है
  2. स्थापित करने, कॉन्फ़िगर करने और iperf शुरू करने के लिए शेफ चलाने का नुस्खा
  3. क्लाउड फ़ार्मेशन अनुसूचित वर्चुअल मशीन स्टैक लॉन्च करने के लिए


जो चीज स्वचालित नहीं रह गई है वह है क्लाउड फॉर्मेशन टेम्प्लेट का निर्माण, आंकड़े प्रदर्शित करना और रेखांकन बनाना। यह सब आसानी से स्वचालित किया जा सकता है अगर नियमित रूप से ऐसे परीक्षण करने की आवश्यकता हो।

मशीनों को जोड़े में लॉन्च किया जाता है: सर्वर / ग्राहक, प्रत्येक आकृति, उपलब्धता क्षेत्र और क्षेत्र के लिए एक जोड़ी।

उपयोगकर्ता-डेटा को बावर्ची सर्वर का पता, बावर्ची ग्राहक की भूमिका, नुस्खा के लिए विशेषताएँ और मशीनों के प्रत्येक जोड़े के लिए एक टैग दिया गया है:

chefserver = \ "chefserver: 4000 \"; chefrole = \ "iperf \"; chefattributes = \ "iperf.role = client \"; tag = \ "us1a-us -a1a-t1micro \"

क्लाउड फॉर्मेशन टेम्प्लेट को मान्य करने के लिए, क्लाउड फॉर्मेशन के बिना, डबल कोट्स बच जाते हैं, यह आवश्यक नहीं है।

Iperf.role विशेषता में मशीन की भूमिका होती है: सर्वर मोड में iperf या क्लाइंट मोड में iperf, टैग और भूमिका का उपयोग करके प्रत्येक मशीन के लिए एक विशिष्ट पहचानकर्ता उत्पन्न होता है:

tag = GetValue("#{node[:userdata]}","#{node[[:userdata]}","tag") node.override['iperf']['hostid'] = "#{tag}_#{node.iperf.role}" 


सर्वर सिर्फ iperf शुरू करता है:
 execute "iperf-server-run" do command "/usr/bin/iperf -s&" action :run end 


क्लाइंट एक ही टैग और सर्वर रोल के साथ होस्ट की खोज करता है, इसे public_hostname परीक्षण शुरू करता है और परिणाम मेल पर भेजता है। यह सब विशेषताओं के माध्यम से निर्धारित किया गया है:

 server = search(:node, "hostid:#{node['iperf']['tag']}_server").first[:ec2][:public_hostname] Chef::Log.info("Server: #{server}") if server.any? execute "iperf-client-run" do command "/usr/bin/iperf -t #{node.iperf.time} -c #{server} | mail #{node['iperf']['email']} -s #{node['iperf']['region']}#{node['ipe rf']['shape']}_#{node['iperf']['role']}" action :run end else Chef::Log.info("iperf server not found, wait.") end 


यदि वांछित टैग वाला सर्वर नहीं मिला है, तो खोज को शेफ क्लाइंट पर निर्दिष्ट अंतराल पर दोहराया जाता है।

क्लाउड फॉर्मेशन के लिए उदाहरण टेम्पलेट:
 { "AWSTemplateFormatVersion" : "2010-09-09", "Parameters" : { "InstanceSecurityGroup" : { "Description" : "Name of an existing security group", "Default" : "iperf", "Type" : "String" } }, "Resources" : { "US1atoUS1aT1MicroServer" : { "Type" : "AWS::EC2::Instance", "Properties" : { "AvailabilityZone" : "us-east-1a", "KeyName" : "test", "SecurityGroups" : [{ "Ref" : "InstanceSecurityGroup" }], "ImageId" : "ami-31308c58", "InstanceType" : "t1.micro", "UserData" : { "Fn::Base64" : { "Fn::Join" : ["",[ "chefserver=\"chefserver:4000\";chefrole=\"iperf\";chefattributes=\"iperf.role=client\";tag=\"us1a-to-us1a-t1micro\"" ]]}} } }, "US1atoUS1aT1MicroClient" : { "Type" : "AWS::EC2::Instance", "Properties" : { "AvailabilityZone" : "us-east-1a", "KeyName" : "test", "SecurityGroups" : [{ "Ref" : "InstanceSecurityGroup" }], "ImageId" : "ami-31308c58", "InstanceType" : "t1.micro", "UserData" : { "Fn::Base64" : { "Fn::Join" : ["",[ "chefserver=\"chefserver:4000\";chefrole=\"iperf\";chefattributes=\"iperf.role=server\";tag=\"us1a-to-us1a-t1micro\"" ]]}} } } } } 


सभी आवश्यक क्षेत्रों में आवश्यक एएमआई चित्र और चाबियाँ होनी चाहिए। सुरक्षा समूह बनाना सीधे टेम्पलेट में वर्णित किया जा सकता है।

ताज पर क्लाउड फॉर्मेशन स्टैक शुरू करने का उदाहरण:
05 00 * * * cfn-create-stack -template-file = iperf_us-east-1a-us-east-1a.template --stack-name iperf-us-1-us-us-us-east- 1 ए - भाग हमें पूर्व-1
50 00 * * * cfn-delete-stack iperf-us-east-1a-us-us-1-aregion us-east-1 --force

प्रत्येक स्टैक को बचाने के लिए एक घंटे से अधिक नहीं चलने की स्थिति में है।

2. परीक्षण के परिणाम।

सभी परीक्षणों को कई बार दोहराया गया था, यादृच्छिक विकृतियों से बचने के लिए, एकल संकेतक जो बाकी से बहुत अलग थे, उन्हें छोड़ दिया गया था, और बाकी डेटा औसत थे।

एक ही Mbits / सेकंड उपलब्धता क्षेत्र के भीतर :


अलग-अलग पहुंच क्षेत्र, एक ही क्षेत्र के भीतर, Mbits / sec :


आप देख सकते हैं कि m1.medium m1.large की तुलना में बेहतर परिणाम दिखाता है। यह माना जा सकता है कि कारें आकार t1 की हैं। m1.medium तक माइक्रो कमजोर भौतिक सर्वरों पर चलता है, और m1.medium लगभग पूरे चैनल को प्राप्त कर सकता है जो भौतिक सर्वर के पास है। जबकि m1.large अधिक शक्तिशाली, लेकिन अधिक लोड किए गए सर्वर पर शुरू होता है, इसके लिए नेटवर्क की गति कम होती है।

एक ही महाद्वीप के भीतर विभिन्न क्षेत्र, Mbits / sec :


US-EAST-1 और EU-WEST-1, Mbits / sec में क्षेत्रों के बीच:


यह देखा जा सकता है कि क्षेत्रों के बीच भी, विभिन्न आकारों के लिए नेटवर्क की गति में अंतर भिन्न होता है, लेकिन मेमोरी (एम 1) द्वारा अनुकूलित मशीनों के लिए, मशीन के आकार पर नेटवर्क की गति की निर्भरता सीधे आनुपातिक होती है। एक धारणा है कि इस मामले में, अमेज़ॅन अपने नेटवर्क उपकरणों पर जबरन गति को सीमित करता है।

US-EAST और AP-SOUTHEAST-2, Mbits / sec में क्षेत्रों के बीच:


इस परीक्षण ने लॉन्च से लॉन्च तक गति में बहुत बड़ा प्रसार दिया, सबसे अधिक संभावना यह मध्यवर्ती नोड्स और संचार चैनलों के मजबूत प्रभाव के कारण है।

दिन के समय के आधार पर, m1.medium, Mbits / sec , UTC के लिए:


दिन के समय के आधार पर नेटवर्क की गति में अंतर की जांच करने के लिए, m1.medium का चयन किया गया था, जो औसत मशीन आकार के साथ काफी अच्छी नेटवर्क गति दिखा रहा है। इस तथ्य को ध्यान में रखते हुए कि किसी भी आकार की मशीनों की एक ही जोड़ी, जब एक पंक्ति में कई परीक्षण चल रहे हों, 5-10 प्रतिशत के विचलन दिखा सकते हैं, हम यह निष्कर्ष निकाल सकते हैं कि दिन के समय का नेटवर्क की भीड़ पर मजबूत प्रभाव नहीं पड़ता है। चूंकि प्रसार भी 5-10 प्रतिशत है।

परीक्षणों के दौरान दिलचस्प तथ्य सामने आए:
  1. लगभग 5% मामलों में, जब स्टैक शुरू होता है, तो कम से कम एक मशीन ने स्वास्थ्य जांच पास नहीं की और सही तरीके से शुरू नहीं हुई
  2. लगभग 5% मामलों में, पूरे स्टैक की शुरुआत नहीं हुई, लेकिन "प्रगति में निर्माण" स्थिति में दुर्घटनाग्रस्त हो गया, इसे मैन्युअल रूप से हटा दिया गया और पुनः आरंभ किया गया
  3. प्रोसेसर के प्रदर्शन के लिए अनुकूलित मशीनें (सी 1) बाकी के रूप में दो बार शुरू हुईं, हालांकि जब वे क्लाउड फॉर्मेशन के बिना शुरू करते हैं तो वे बाकी की तरह तेजी से शुरू होते हैं


आशा है कि यह जानकारी आपके लिए उपयोगी रही होगी।

Source: https://habr.com/ru/post/In151329/


All Articles