اختبار زمن الانتقال في شبكة الجهاز الظاهري
لتحقيق النتائج الأكثر دقة، قم بقياس زمن انتقال شبكة الجهاز الظاهري (VM) على Azure باستخدام أداة مصممة لهذه المهمة. يمكن للأدوات المتاحة للجمهور مثل SockPerf (لنظام التشغيل Linux) وlatte.exe (لنظام Windows) عزل زمن انتقال الشبكة وقياسه مع استبعاد أنواع أخرى من زمن الانتقال، مثل زمن انتقال التطبيق. تركز هذه الأدوات على نوع نسبة استخدام الشبكة التي تؤثر على أداء التطبيق (وتحديداً بروتوكول تحكم الإرسال [TCP] ونسبة استخدام شبكة بروتوكول مخطط بيانات المستخدم [UDP]).
قد تقيس أدوات الاتصالية الشائعة الأخرى، مثل أداة اختبار الاتصال، زمن الانتقال، ولكن نتائجها قد لا تمثل نسبة استخدام الشبكة المستخدمة في أحمال العمل الحقيقية. وذلك لأن معظم هذه الأدوات تستخدم بروتوكول التحكم برسائل الإنترنت (ICMP)، والذي يمكن معاملته بشكل مختلف عن نسبة استخدام شبكة التطبيقات والذي قد لا تنطبق نتائجه على أحمال العمل التي تستخدم TCP وUDP.
لإجراء اختبار دقيق لزمن انتقال الشبكة للبروتوكولات المستخدمة من قبل معظم التطبيقات، ينتج SockPerf (لنظام التشغيل Linux) وlatte.exe (لنظام التشغيل Windows) النتائج الأكثر صلة. تتناول هذه المقالة كلتا الأداتين.
نظرة عامة
باستخدام جهازين ظاهريين، أحدهما كمرسل والآخر كجهاز استقبال، تقوم بإنشاء قناة اتصالات ثنائية الاتجاه. باستخدام هذا النهج، يمكنك إرسال الحزم وتلقيها في كلا الاتجاهين وقياس وقت الرحلة ذهاباً وإياباً (RTT).
يمكنك استخدام هذا النهج لقياس زمن الانتقال على الشبكة بين جهازين ظاهريين أو حتى بين جهازي كمبيوتر فعليين. يمكن أن تكون قياسات زمن الانتقال مفيدة للسيناريوهات التالية:
- ضع معياراً لزمن الانتقال على الشبكة بين الأجهزة الظاهرية الموزعة.
- قارن آثار التغييرات في زمن الانتقال على الشبكة بعد إجراء تغييرات ذات صلة بما يلي:
- نظام التشغيل (OS) أو برنامج مكدس الشبكة، بما في ذلك تغييرات التكوين.
- طريقة لتوزيع الأجهزة الظاهرية، مثل التوزيع في منطقة توافر خدمات أو مجموعة موضع القرب (PPG).
- خصائص الجهاز الظاهري، مثل اتصال الشبكة المتسارع أو تغييرات الحجم.
- شبكة افتراضية، مثل تغييرات التوجيه أو التصفية.
أدوات الاختبار
لقياس زمن الانتقال، لديك خياران مختلفان للأداة:
- بالنسبة للأنظمة القائمة على نظام Windows: latte.exe (Windows)
- بالنسبة للأنظمة القائمة على نظام Linux: SockPerf (Linux)
باستخدام هذه الأدوات، يمكنك المساعدة في التأكد من أن أوقات تسليم حمولة TCP أو UDP فقط هي التي يتم قياسها وليس ICMP (أداة اختبار الاتصال) أو أنواع الحزم الأخرى التي لا تستخدمها التطبيقات ولا تؤثر على أدائها.
تلميحات لإنشاء تكوين جهاز ظاهري أمثل
عند إنشاء تكوين جهازك الظاهري، ضع في اعتبارك التوصيات التالية:
- استخدم أحدث إصدار من Windows أو Linux.
- قم بتمكين اتصال الشبكة المتسارع للحصول على أفضل النتائج.
- توزيع الأجهزة الظاهرية باستخدام مجموعة مواضع تقارب Azure.
- تعمل الأجهزة الظاهرية الأكبر حجماً عموماً بشكل أفضل من الأجهزة الظاهرية الأصغر.
تلميحات للتحليل
أثناء تحليل نتائج الاختبارات، ضع في اعتبارك التوصيات التالية:
- أنشئ خطاً أساسياً مبكراً، بمجرد اكتمال التوزيع والتكوين والتحسينات.
- قارن دائماً النتائج الجديدة بخط أساسي أو قارن من اختبار إلى آخر باستخدام تغييرات يتم التحكم فيها.
- كرر الاختبارات كلما لوحظت تغييرات أو تم التخطيط.
اختبار الأجهزة الظاهرية التي تعمل بنظام Windows
الحصول على latte.exe على الأجهزة الظاهرية
بادر بتنزيل أحدث إصدار من latte.exe.
ضع في اعتبارك وضع Latte.exe في مجلد منفصل، مثل c:\tools.
السماح بمرور latte.exe من خلال جدار حماية Windows Defender
على جهاز الاستقبال، قم بإنشاء قاعدة السماح على جدار حماية Windows Defender للسماح بوصول نسبة استخدام الشبكة latte.exe. من الأسهل السماح ببرنامج latte.exe بأكمله بالاسم بدلاً من السماح بمنافذ TCP محددة واردة.
اسمح بمرور latte.exe من خلال جدار حماية Windows Defender عن طريق تشغيل الأمر التالي:
netsh advfirewall firewall add rule program=<path>\latte.exe name="Latte" protocol=any dir=in action=allow enable=yes profile=ANY
على سبيل المثال، إذا قمت بنسخ latte.exe إلى المجلد c:\tools، فستجد الأمر التالي:
netsh advfirewall firewall add rule program=c:\tools\latte.exe name="Latte" protocol=any dir=in action=allow enable=yes profile=ANY
تشغيل اختبارات زمن الانتقال
على جهاز الاستقبال، ابدأ تشغيل latte.exe (قم بتشغيله من نافذة CMD، وليس من PowerShell):
latte -a <Receiver IP address>:<port> -i <iterations>حوالي 65,000 تكرار طويل بما يكفي لإرجاع النتائج التمثيلية.
أي رقم منفذ متاح على ما يرام.
إذا كان الجهاز الظاهري يحتوي على عنوان IP 10.0.0.4، فسيبدو الأمر هكذا:
latte -a 10.0.0.4:5005 -i 65100من المرسل، ابدأ تشغيل latte.exe (قم بتشغيله من نافذة CMD، وليس من PowerShell):
latte -c -a <Receiver IP address>:<port> -i <iterations>الأمر الناتج هو نفسه الموجود على جهاز الاستقبال باستثناء إضافة -c للإشارة إلى أن هذا هو العميل أو المرسل:
latte -c -a 10.0.0.4:5005 -i 65100
انتظر النتائج. اعتماداً على مدى تباعد الأجهزة الظاهرية، قد يستغرق الاختبار بضع دقائق ليكتمل. فكر في البدء بعدد أقل من التكرارات لاختبار النجاح قبل إجراء اختبارات أطول.
اختبار الأجهزة الظاهرية التي تعمل بنظام Linux
لاختبار الأجهزة الظاهرية التي تعمل بنظام التشغيل Linux، استخدم SockPerf.
تثبيت SockPerf على الأجهزة الظاهرية
في الجهازين الظاهريين اللذين يعملان بنظام التشغيل Linux، سواء المرسل والمستقبل، قم بتشغيل هذه الأوامر لإعداد SockPerf على الأجهزة الظاهرية. يتم توفير أوامر للتوزيعات الرئيسية.
بالنسبة إلى نظام Red Hat Enterprise Linux (RHEL)/CentOS
شغّل الأوامر التالية:
#RHEL/CentOS - Install Git and other helpful tools
sudo yum install gcc -y -q
sudo yum install git -y -q
sudo yum install gcc-c++ -y
sudo yum install ncurses-devel -y
sudo yum install -y automake
sudo yum install -y autoconf
sudo yum install -y libtool
بالنسبة إلى Ubuntu
شغّل الأوامر التالية:
#Ubuntu - Install Git and other helpful tools
sudo apt-get install build-essential -y
sudo apt-get install git -y -q
sudo apt-get install -y autotools-dev
sudo apt-get install -y automake
sudo apt-get install -y autoconf
sudo apt-get install -y libtool
sudo yum update
لكل التوزيعات
قم بالنسخ والتحويل البرمجي والتثبيت لـSockPerf وفقاً للخطوات التالية:
#Bash - all distros
#From bash command line (assumes Git is installed)
git clone https://github.com/mellanox/sockperf
cd sockperf/
./autogen.sh
./configure --prefix=
#make is slower, may take several minutes
make
#make install is fast
sudo make install
تشغيل SockPerf على الأجهزة الظاهرية
بعد اكتمال تثبيت SockPerf، تكون الأجهزة الظاهرية جاهزة لتشغيل اختبارات زمن الانتقال.
أولاً، ابدأ تشغيل SockPerf على جهاز الاستقبال.
أي رقم منفذ متاح على ما يرام. في هذا المثال، نستخدم المنفذ 12345:
#Server/Receiver - assumes server's IP is 10.0.0.4:
sudo sockperf sr --tcp -i 10.0.0.4 -p 12345
الآن والخادم يستمع، يمكن للعميل البدء في إرسال الحزم إلى الخادم على المنفذ الذي يستمع إليه (في هذه الحالة، 12345).
حوالي 100 ثانية فترة طويلة بما يكفي لإرجاع نتائج تمثيلية، كما هو موضح في المثال التالي:
#Client/Sender - assumes server's IP is 10.0.0.4:
sockperf ping-pong -i 10.0.0.4 --tcp -m 350 -t 101 -p 12345 --full-rtt
انتظر النتائج. اعتماداً على مدى تباعد الأجهزة الظاهرية، سيختلف عدد التكرارات. لاختبار النجاح قبل إجراء اختبارات أطول، فكر في البدء باختبارات أقصر مدتها حوالي 5 ثوان.
يستخدم مثال SockPerf هذا حجم الرسالة 350 بايت، وهو نموذجي لحزمة متوسطة. يمكنك ضبط الحجم على أكثر أو أقل لتحقيق نتائج تمثل بدقة أكبر حمل عمل يتم تشغيله على الأجهزة الظاهرية.
الخطوات التالية
- تحسين زمن الانتقال باستخدام مجموعة مواضع تقارب Azure.
- تعرّف على كيفية تحسين اتصال الشبكة للأجهزة الظاهرية للسيناريو الخاص بك.
- اقرأ عن كيفية تخصيص النطاق الترددي للأجهزة الظاهرية.
- لمزيد من المعلومات، راجع الأسئلة المتداولة عن شبكة Azure الظاهرية.