اختبار أداء خادم السحابة باستخدام قلعة القزم

Dwarf Fortress هي لعبة أسطورية تحاكي عالم الخيال بالتفصيل ، ويمكن للاعب (في أحد الأوضاع) بناء وإدارة تسوية (حصن) من التماثيل (الأقزام). لقد كتب ما يكفي عن اللعبة ، لذلك لن أخوض في التفاصيل. من المهم أنه نظرًا للحجم الكبير لعالم اللعبة والتفاصيل العالية للمحاكاة ، فإن اللعبة تتطلب الكثير من الموارد - كل من المعالج والذاكرة / ذاكرة التخزين المؤقت. تدعم اللعبة جميع أنظمة التشغيل الرئيسية الثلاثة.

هناك مشروع DFHack للعبة ، والذي يشارك في الهندسة العكسية لهياكل بيانات اللعبة ويسمح لك بإنشاء الإضافات والنصوص البرمجية في C ++ أو Lua أو Ruby.

أنا مؤلف التطبيق ورمز الخادم المصاحب الذي ينفذ بالكامل واجهة مستخدم اللعبة على أجهزة iOS. أي أن المستخدم يضع اللعبة الأصلية والمكون الإضافي والتطبيق ويمكنه اللعب عن بعد من جهاز محمول بكل وسائل الراحة.

يمكن تثبيت الخادم في المنزل واستئجاره من أحد مزودي الخدمات السحابية. وقد ولدت فكرة هذه الدراسة - أولاً ، لمعرفة أي الخدمات السحابية الأنسب ويمكن التوصية بها للمستخدمين في المقام الأول ، وثانياً ، مقارنة أداء الخادم باستخدام شيء مختلف عن خوادم الويب والمرافق الخاصة .

للاختبار ، تم استخدام إصدار Dwarf Fortress / DFHack 0.43.03-r1. لدي صورة عامة لـ Docker ، بما في ذلك اللعبة نفسها والحد الأدنى من إصدار DFHack (بالإضافة إلى رمز الخادم نفسه للعبة البعيدة ، ولكن في هذه الحالة لا يتم استخدامه). تمت كتابة برنامج نصي في Lua لإجراء الاختبارات وإرسال النتائج إلى خادم الويب. أيضًا للأتمتة ، تم استخدام البرنامج النصي التالي ، المحدد في بيانات المستخدم عند تكوين الخوادم. أي أنك تحتاج فقط إلى إنشاء خادم ، وانتظر حتى تصل النتائج وحذفها.

#!/bin/bash fallocate -l 4G /swp ; chmod 600 /swp ; mkswap /swp ; swapon /swp ; echo '/swp none swap sw 0 0' >>/etc/fstab apt-get update apt-get install -fy docker.io apt install unzip wget https://github.com/mifki/dfremote-cloud-benchmark/raw/master/benchmark.lua wget http://mifki.com/a/t/gloveloved.zip unzip gloveloved.zip -d save/ docker run --name=df -dt -v $PWD/save:/df_linux/data/save -v $PWD/benchmark.lua:/df_linux/hack/scripts/benchmark.lua mifki/dfremote sleep 5 docker exec df /df_linux/dfhack-run benchmark server_name 

تم اختبار الموفرين التاليين: Digital Ocean و Amazon Lightsail و Amazon EC2 و Vultr و Linode و Google Compute Engine و Macbook Pro Late 2013 2Ghz Core i7.

إذا كانت الخدمة السحابية تدعم إنشاء خادم باستخدام Docker بنقرة واحدة ، فعندئذٍ تم استخدام هذه الميزة ، إذا لم تكن كذلك ، فقد تم تحديد إصدار Ubuntu 16.04. وبالتالي ، لم يستخدم Vultr سوى Ubuntu ، ولكن CentOS 7. بالنسبة للخوادم التي تحتوي على أكثر من 2 غيغابايت من الذاكرة ، لم يتم استخدام ملف المبادلة. بالنسبة لمحرك Google Compute Engine الصغير والصغير ، تم تحديد محرك أقراص SSD.

تم اختيار أرخص خيارات الخادم ، أولاً ، لأنها أكثر إثارة للاهتمام لأولئك الذين سيستخدمونها للعبة ، وثانيًا ، لأن Dwarf Fortress لا يزال يستخدم نواة معالج واحدة فقط للمحاكاة و (في الإصدار المحدد) تطبيق 32 بت.

الاختبارات


تتكون طريقة اللعب في Dwarf Fortress من جزأين - جيل العالم والقصة الأولية ، حيث يمكنك تحديد حجم العالم وطول القصة (ومعلمات أخرى) ، وعملية اللعبة نفسها. باستمرار ، بدون إعادة تشغيل اللعبة ، تم إجراء الاختبارات التالية:

  1. توليد عالم بحجم صغير جدا مع تاريخ طويل جدا.
  2. توليد عالم كبير الحجم مع تاريخ قصير.
  3. اللعب. استخدام واحدة من "المجموعة" (عندما يلعب العديد من الأشخاص بدورهم) - إنقاذ القفازات (Anethadefíni ، 254). الاختيار ليس مهمًا جدًا ، طالما أن هناك حصنًا كبيرًا بما فيه الكفاية ، ولا يحدث أي شيء من شأنه إيقاف اللعبة تلقائيًا أثناء الاختبار ، والذي استمر لمدة 20 يومًا داخل اللعبة.

الاختبار الأخير هو الأهم ، أولاً ، لأنه اللعبة نفسها ، التي يحدث لها كل شيء ، وثانياً ، أنها أقل تأثراً بالصدفة من جيل العالم (حيث الحضارات والمستوطنات والمناظر الطبيعية والأحداث و إلى آخره).

النتائج


هذا هو الجدول الزمني. وقت التنفيذ بالثواني ، على التوالي ، الأقل هو الأفضل. الأسعار الشهرية بالدولار الأمريكي.

الصورة

يظهر انتشار غير طبيعي في نتائج الاختبار الأول على الفور ، ولا أعرف بالضبط ما يرتبط به. أعتقد ، جزئيًا مع التخزين المؤقت ، جزئيًا مع الأداء الضعيف للخادم الذي تم إنشاؤه حديثًا لسبب ما. لذلك ، يتم فرز النتائج حسب الاختبار الأخير ، وهو ، كما لوحظ ، هو الأكثر أهمية. يرتبط الاختبار الثاني بشكل عام بنتائج الاختبار الثالث.

بصرف النظر عن المركز الأول المتوقع على الخادم EC2 c4.large ، وهو نوع محسن من الأداء من C4 ، تبين أن Amazon Lightsail هو الأسرع ، والذي يعتبر السعر مفاجأة سارة للغاية ، بالنظر إلى السعر. ويتبعه نفس النتيجة تقريبًا من خادم Google أحادي المعالج والكمبيوتر المحمول. علاوة على ذلك ، تبين أن Vultr ، Linode ، التي لم تكن معروفة سابقًا ، والتي كنت أتوقع المزيد منها ، جيدة. جائزة الجمهور تذهب إلى Digital Ocean - أبطأ ، ولكنها الأسهل والأسرع في الاستخدام. تعد خوادم EC2 m3.medium باهظة الثمن بطيئة بشكل مدهش ، وأرخص خوادم GCE سيئة حقًا حتى مع SSDs ، لم أحصل على نتيجة اختبار الخادم الصغير الحجم.

بشكل منفصل ، يجب أن يقال عن حالات EC2 من النوع T2. ميزتهم هي أنه مع خادم بسيط يتلقى أرصدة المعالج (حتى حد معين) ، والتي يتم إنفاقها تحت الحمل. إنفاق القروض ، يعمل الخادم بكامل طاقته ، عندما تنفد - ينخفض ​​الأداء إلى 20٪. من ناحية ، فهو مناسب تمامًا لأغراضنا - فالأشخاص ، خاصة من جهاز محمول ، لا يلعبون بشكل مستمر طوال اليوم ، بالإضافة إلى توقف المحاكاة في اللعبة عندما يقوم شخص ما بعمل ما في القائمة ، وما إلى ذلك ، لذلك يعد هذا خيارًا جيدًا للحصول على أداء عالي مقابل القليل من المال. من ناحية أخرى ، هذا أداء "مزيف" ، لذلك لم أقم بتضمين أمثلة من هذا النوع في الاختبار حتى لا أخلط بين أي شخص. من الخبرة ، طالما كانت هناك قروض ، فهي سريعة جدًا ، عندما تنفد - بطيئة جدًا.

هذا كل شيء.

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


All Articles