Apache Benchmark + GNUPlot: قياس أداء خادم الويب ورسمه البياني

لا يهم إذا تم استخدامه إنجن إكس, أباتشيأو Lighttpd أو غير ذلك ، سيرغب أي مسؤول شبكة لديه خادم ويب في مرحلة ما في معرفة مدى سرعة استجابة خادم الويب لعدد معين من الاستعلامات.

الخدمات المدارة - إدارة الخادم - e1368625038693

معيار أباتشي + GNUPlot

هذه المرة سوف نستخدم أداة تسمى معيار اباتشيعلى الرغم من أنه يحتوي على "apache" في اسمه ، إلا أنه ليس فقط لقياس أداء Apache ، ولكن يمكن استخدامه أيضًا مع Nginx وغيرها. في الواقع ، سأستخدمه لقياس أداء إنجن إكس.

سوف نستخدم أيضًا ملفات GNUPlot، مما سيساعدنا في عمل رسوم بيانية مثل هذه ببضعة أسطر:

النتائج

تثبيت Apache Benchmark و GNUPlot

Apache Benchmark هي أداة يمكننا استخدامها بعد تثبيت حزمة Apache ، سيكون GNUPlot متاحًا بعد تثبيت الحزمة التي تحمل الاسم نفسه. وماذا بعد ...

على توزيعات مثل Debian أو Ubuntu أو ما شابه ذلك:

sudo apt-get install apache2 gnuplot

في توزيعات مثل ArchLinux أو المشتقات:

sudo pacman -S apache gnuplot

نحتاج فقط إلى تثبيت حزمة Apache ، ولسنا بحاجة إلى بدء تشغيلها أو تكوين أي شيء آخر ، يكفي فقط تثبيتها.

باستخدام Apache Benchmark

ما سنفعله هو إرسال عدد محدد من الطلبات (100) في مجموعات من عدة (من 20 إلى 20) إلى موقع معين. سنحفظ النتيجة في ملف .csv (result.csv) ثم نعالجها باستخدام GNUPloit ، سيكون السطر كما يلي:

ab -g resultados.csv -n 100 -c 20 http://nuestro-sitio-web.com/

من المهم جدًا وضع عنوان URL النهائي / في عنوان URL للموقع المراد قياسه.

هذا هو الإخراج أو السجل الذي يظهر لي عندما أختبر موقعًا على شبكتي:

هذا هو ApacheBench ، الإصدار 2.3 <$ Revision: 1638069 $> حقوق الطبع والنشر لعام 1996 ، Adam Twiss، Zeus Technology Ltd ، http://www.zeustech.net/ مرخص لـ Apache Software Foundation ، http://www.apache.org/ Benchmarking gutl.jovenclub.cu (تحلى بالصبر) ..... تم

برنامج الخادم: اسم مضيف خادم nginx: منفذ خادم gutl.jovenclub.cu: 80

مسار المستند: /
طول المستند: 206 بايت مستوى التزامن: 20 الوقت المستغرق للاختبارات: 0.101 ثانية الطلبات الكاملة: 100 الطلبات الفاشلة: 27 (الاتصال: 0 ، الاستلام: 0 ، الطول: 27 ، الاستثناءات: 0) الردود غير 2xx: 73 إجمالي المحولة: تم نقل 1310933 بايت HTML: 1288952 بايت
الطلبات في الثانية: 993.24 [# / ثانية] (متوسط)
الوقت لكل طلب: 20.136 [مللي ثانية] (متوسط) الوقت لكل طلب: 1.007 [مللي ثانية] (متوسط ​​، عبر جميع الطلبات المتزامنة) معدل النقل: 12715.49 [كيلو بايت / ثانية] متوسط ​​أوقات الاتصال المستلمة (مللي ثانية) [+/- sd] متوسط ​​الحد الأقصى للاتصال: 0 1 0.2 1 1 المعالجة: 1 17 24.8 4 86 الانتظار: 1 15 21.5 4 76 الإجمالي: 1 18 24.8 5 87 النسبة المئوية للطلبات التي تم تقديمها خلال فترة زمنية معينة (مللي ثانية) 50٪ 5 66٪ 6 75٪ 22 80٪ 41 90٪ 62 95٪ 80 98٪ 87 99٪ 87
100٪ 87 (أطول طلب)

لقد حددت باللون الأحمر ما أعتبره أهم شيء ، والذي كان أكثر أو أقل:

  1. بيانات الخادم الذي نقوم باختباره ، بالإضافة إلى عنوان URL المعني.
  2. عدد الطلبات في الثانية.
  3. كم عدد الميلي ثانية التي استغرقها الخادم لخدمة الطلب الذي استغرق وقتًا أطول ، أي الذي استغرق وقتًا أطول في الرد عليه.

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

أوصي بإجراء الاختبار مرتين أو ثلاث مرات ، بحيث يمكنك إنشاء شيء مثل الهامش ، لأن نتائج اختبارين متتاليين نادرًا ما تكون متطابقة.

خيارات أو معلمات Apache Benchmark مفيدة أخرى:

-k -H "قبول-ترميز: gzip ، انكماش" : باستخدام هذا ab ، سيقبل ذاكرة التخزين المؤقت والضغط التي قام الخادم بتكوينها ، وبالتالي ستكون الأوقات أقل.

-f urls.txt : بدلاً من مجرد اختبار فهرس الموقع ، سيتم إجراء اختبارات على عناوين URL التي نحددها في هذا الملف.

على أي حال ... الق نظرة على رجل أب لتراها.

اعرض النتيجة في رسم بياني:

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

في نفس المجلد حيث لدينا ملف results.csv (تذكر ، لقد أنشأنا للتو الأمر أعلاه) سننشئ ملفًا يسمى gnuplot.p:

nano plot.p

نضع فيه ما يلي:

تعيين الطرفية بحجم png 600 إخراج مجموعة "results.png"تعيين العنوان"100 الطلبات، 20 الطلبات المتزامنة "تعيين نسبة الحجم 0.6 الشبكة وتعيين xlabel"الطلبات"تعيين ylabel"وقت الاستجابة (مللي ثانية)"قطعة"results.csv"استخدام 9 أنواع صغيرة مع عنوان خطوط"Gutl.jovenclub.cu"

لقد حددت باللون الأحمر ما يجب عليك التحقق منه دائمًا. هذا ومن أعلى إلى أسفل:

  1. اسم ملف الصورة المراد إنشاؤه
  2. عدد الطلبات الإجمالية والمتزامنة.
  3. اسم الملف الذي أنشأناه للتو.
  4. المجال الذي نعمل عليه.

بمجرد إدخال ذلك ، احفظه واخرج (كترل + O ثم CTRL + X) ، سوف نقوم بتنفيذ ما يلي:

gnuplot plot.p

وفويلا ، التي ستنشئ الرسم البياني بالاسم المطلوب ، أنا هو:

results2

النهاية!

يحتوي Apache Benchmark على الكثير من الخيارات ، وهناك أيضًا العديد من المجموعات التي يمكننا استخدامها لجعل اختبار الأداء الخاص بنا أكثر اكتمالاً.

لكن مهلا ، هذه كانت الأساسيات

استمتعي!


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   فرانسيسكو قال

    اختبار أباتشي مثير للاهتمام ، لم أكن أعرف عن gnuplot ، هل من الممكن تعديل نمط الإخراج؟ أقول فيما يتعلق بتقرير رسمي.

    تحية من تشيلي.

    1.    KZKG ^ جارا قال

      نعم ، هناك الكثير من التكوينات على شبكة الإنترنت لـ gnuplot ، ابحث عن طريق Google لمعرفة ما إذا كنت تجد أي جاد أو احترافي بما يكفي لاستخدامه ، لأن هذا هو ذوق الجميع 🙂

  2.   Wolf119 قال

    سأختبرها الآن على خادم اباتشي افتراضي أستخدمه لأرى كيف ستسير الأمور ، فيما يتعلق بـ GUTL ، حيث تنطلق بسرعة كبيرة من 80 طلبًا ، أليس كذلك؟ دعنا نرى أن 100 مللي ثانية ليست كذلك لا شيء ، ولكن الارتفاع الذي يعطي 10 طلبات إضافية مقارنة بـ 70 إلى 80 مع 80 إلى 90 يلفت انتباهي

    1.    KZKG ^ جارا قال

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

  3.   تشارلي براون قال

    ممتع للغاية ، خاصة لاستخدام GNUPlot. من خلال ما أراه ، يمكن استخدامه لإنشاء رسوم بيانية من أي مجموعة بيانات تقريبًا ، أليس كذلك؟ ...

    1.    KZKG ^ جارا قال

      نعم بالطبع ، تقوم بتمرير البيانات في ملف مفصول بفواصل أو شيء من هذا القبيل ، تخبره بكيفية معالجته في ملف التكوين ، وفويلا

  4.   أدولفو قال

    مرحبًا ، أقضيها دائمًا في قراءة هذه المدونة ولكني لم أعلق مطلقًا على أي مقال ، ويبدو أن هذه فرصة جيدة.
    ما أريد مشاركته معك هو أنه يمكن إساءة تفسير هذا النوع من الرسم البياني ، لأن Apache Bench يفرز النتيجة باستخدام ttime (إجمالي الوقت) بدلاً من الوقت المتسلسل. على الرغم من أن البيانات لا تزال صحيحة ، إلا أن الرسم البياني ربما لا يظهر ما نريد.
    هنا أترك الرابط حيث أقرأه.
    http://www.bradlanders.com/2013/04/15/apache-bench-and-gnuplot-youre-probably-doing-it-wrong/

    تحية.

  5.   هوغو قال

    Apache Benchmark ليس هو أفضل أداة لقياس أداء خوادم HTTP في أجهزة الكمبيوتر ذات النوى المتعددة ، بالإضافة إلى أن 100 طلب فقط مع 20 اتصالًا متزامنًا يعد اختبارًا ضعيفًا للغاية ، والشيء الأكثر واقعية هو 1,000 أو 10,000 طلب مع 100 اتصال متزامن ( من المعروف أن Nginx هو أحد التطبيقات القادرة على تقديم أكثر من 10,000 طلب في الثانية) ولهذا من الأفضل استخدام أداة مثل weighttp ، وهي مصممة لأجهزة الكمبيوتر متعددة النواة وتستخدم epoll وهو أسرع ، على عكس Apache مقعد يستخدم خيطًا واحدًا وآلية أقل كفاءة لمعالجة الأحداث.

    للحصول على وجهة نظري ، بافتراض أن الخادم يحتوي على 4 مراكز فقط:

    weighttp -n 10000 -c 100 -t 4 -k "http://our-website.com/"

  6.   إيمان قال

    مرحبا بالجميع،
    عند رسم الرسم البياني (من ملف CSV) باستخدام gnuplot ، يعطيني الخطأ التالي ، هل يمكنك إخباري بكيفية حله؟

    "Plot.p" ، السطر 8: تحذير: تخطي ملف البيانات بدون نقاط صالحة

    ارسم «graph.csv» باستخدام 9 أشكال سلسة مع عنوان سطور «AB - localhost / web»
    ^
    "Plot.p" ، السطر 8: النطاق x غير صالح

    باستخدام gnuplot ، هل يمكنني أيضًا إنشاء صفحات HTML؟