في هذه المقالة ، سنجرب أنفسنا في الهندسة العكسية ، كما يقول أحد. نحن ننظر بأيدينا القذرة تحت غطاء كل خادم من خوادم الويب ، ونستغلها كما لو لم يستغلها أحد.
هذا الاختبار هو قياس حصان كروي في فراغ ، لا شيء أكثر من البيانات التي تم تلقيها ، والآن لا نعرف ما يجب القيام به معهم.
تقنية
نظام التشغيل Nginx و Apache هو Ubuntu 18.04 LTS ، لـ IIS Windows Server Core 2019. تلقت جميع أنظمة التشغيل قبل الاختبارات آخر التحديثات في 04/04/2019.
وأجريت الاختبارات حصرا على HTTP. كان لكل خادم ويب نفس الصفحة ، وهو قالب مجاني لـ Jekyll من Codrops.
الارتباط . على كل من خوادم الويب تم إيقاف ضغط gzip.
تم إجراء اختبار النطاق الترددي باستخدام أدوات Httpd مع الوسائط:
ab -n 50000 -c 500 http://192.168.76.204:80/
تم تعيين الخوادم على حد 10 و 5 و 1 في المئة من النواة على 8 و 4 ونواة واحدة. كمقعد اختبار ، كان هناك كمبيوتر به 9900K @ 5400 ميغاهرتز ، مما يعني أن الخادم ، الذي حصل على حد 10 ٪ ، يتلقى حوالي 540 ميجاهرتز لكل قلب.
تم إجراء اختبار TTFB عند التمهيد الأول للخادم وتم قياسه باستخدام DevTools ، وبعد استلام النتيجة ، تم إيقاف تشغيل الخادم وتراجع إلى نقطة التحكم السابقة لاستبعاد ظهور أي نوع من ذاكرة التخزين المؤقت.
كان المختبر وخادم الويب على نفس المضيف وعلى نفس التبديل الظاهري.
لتقييم النظام الفرعي للقرص على الفور ، فإن نتائج مقاييس ATTO و CrystalDIskMark لفهم الاختناقات.
البيانات مأخوذة من الجهاز الظاهري: النتائج:
TTFB:
متوسط TTFB لـ IIS هو الأقل ، 0.5ms ، مقابل 1.4ms لـ Apache و 4ms لـ Nginx.الإنتاجية:أولاً ، ضع في اعتبارك مدى جودة كل خادم من حيث عدد النوى.
يوضح الرسم البياني عدد مكالمات الاختبار إلى خادم الويب والكمون. يوضح الرسم البياني أن NGINX حققت 98٪ من إجمالي الزيارات ، مما أعطى الموقع 20ms أو أقل. IIS وكذلك Apache آخر 5 ٪ من جميع المكالمات عملت على 76ms و 14ms ، على التوالي.
يوضح الرسم البياني متوسط وقت المعالجة لطلب واحد أثناء اختبار الإجهاد.
كما ترون من الرسوم البيانية ، فجر IIS كلا Apache و Nginx ، مما أدى إلى تباطؤ كبير في ظل التحميل العالي.
من الواضح أن معهد الدراسات الإسماعيلية فضل 4 نوى على ثمانية ، وأظهر تأخيرًا أقل في أربعة ، لكنه أيضًا لم يقر بقوة نواة واحدة.
NGINX يتناسب بشكل مثالي مع جميع النوى الثمانية ، وبالنسبة لـ Apache ، يبدو أن البرنامج النصي أحادي النواة يبدو أنه الخيار الأفضل.
التدرجية:
إنجن إكس:الآن النظر في قابلية التوسع في عدد النوى وعددها.
الاختبارات بحد أقصى 1 ٪ على 4 و 1 حبات Nginx لم تمر ، وترك 2000 طلبات ، وانفصلت عن اختبار.
أباتشي:بعد معالجة 2500 طلب ، استسلم Apache كما استسلم Nginx وفصله. لم يجتاز Apache الاختبار على حبات 8 و 4 و 1 بحد أقصى قدره 1٪ ، ولكن بالإضافة إلى ذلك ، فإن الاختبار عند حد 5٪ على نواة واحدة لم ينجح ، وهو أسوأ من Nginx
IIS:قام IIS أثناء الاختبارات بتجميع قائمة انتظار عملاقة من الطلبات ولكن قام بمعالجتها. على ما يبدو ، خارج المهلة مربع لمعالجة الطلب لم يتم تعيين فيه.
يوضح المخطط الوقت المستغرق لإكمال الاختبار. تم إسقاط تكوينات اختبار سخيفة سخيفة. يوضح الرسم التخطيطي كيف يطلب IIS على الأجهزة ، وكم هو جميل NGINX.
قابلية القرص:
إنجن إكس:الآن النظر في قابلية التوسع في عدد النوى وسرعة القرص.
هذه المرة فشل Nginx في 4 اختبارات ، بدلاً من اختبارين.
أباتشي:فشل Apache في نفس عدد الاختبارات ، كما حدث في المرة الأخيرة.
IIS:يُظهر IIS رسمًا بيانيًا متطابقًا تقريبًا ، كما لو لم تكن هناك قيود على القرص. بشكل عام ، لم تتغير الرسوم البيانية لجميع الخوادم كثيرًا ، مما يعني أن كل واحد منهم قام بتخزين الإحصائيات في ذاكرة الوصول العشوائي (RAM) وقدمها لهم. هنا نرى عنق الزجاجة الرئيسي - خادم الويب نفسه.
من السابق لأوانه استخلاص استنتاجات على أساس هذا الاختبار ؛ لم نختبر بعد HTTPS والضغط و HTTP / 2 بشهادة مباشرة من Let's Encrypt. سنتحدث عن هذا في المقال التالي.
نحن نقدم تعريفة محدثة UltraLite
Windows VDS مقابل 99 روبل مع تثبيت Windows Server 2019 Core.
