مقارنة أداء API

بمساعدة الخادم الأداء

يشغّل العيّنة المحدودة نفسها على عنواني URL عامّين ويعرض مقارنة جنباً إلى جنب لمئينيات زمن الاستجابة والحجم واتساق رموز الحالة.

الخصوصية: ترسل هذه الأداة الطلب عبر خادم متقن للوصول إلى الهدف. يُنقل فقط العنوان والترويسات والمحتوى الذي تدخله، ولا يُحفظ أي شيء.
جارٍ تحميل الأداة…

ما هو اختبار الأداء؟

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

اقرأ الدليل: ما هو اختبار الأداء؟

كيفية استخدام مقارنة أداء API

  1. أدخل نقطة النهاية A ونقطة النهاية B (مثل v1 وv2، أو منطقتين جغرافيتين) مع تسميات اختيارية.
  2. اختر عدد الطلبات لكل نقطة نهاية (≤ 25) والتزامن والطريقة؛ وأضف ترويسات مشتركة عند الحاجة.
  3. انقر «قارن» (Compare) — يقيس المرحّل A ثم B بالإعدادات نفسها.
  4. اقرأ الحكم: أي نقطة نهاية أسرع عند الوسيط، وهل الفرق ذو دلالة.
  5. كرّر التشغيل بعدد أكبر من العيّنات إذا كانت النتيجة «ضمن حدود الضوضاء» (within noise).

مزايا مقارنة أداء API

  • يشغّل العيّنة المحدودة نفسها على نقطتي نهاية عامّتين، واحدة تلو الأخرى
  • جدول جنباً إلى جنب للوسيط والمتوسط وp90/p95/p99 والحد الأدنى/الأقصى والإنتاجية
  • فرق بالنسبة المئوية وعمود «الأفضل» (better) لكل مقياس
  • تلميح للدلالة: هل يختلف الوسيطان بنسبة 20% على الأقل وبأكثر من الانحراف المعياري الأكبر؟
  • معدل الأخطاء وتفصيل رموز الحالة لكلتا نقطتي النهاية
  • مخطط يقارن p50 وp95

مثال على مقارنة أداء API

v1 مقابل v2 لنقطة نهاية بحث

الإدخال:

A: https://api.example.com/v1/search?q=shoes
B: https://api.example.com/v2/search?q=shoes
Requests: 10 each

النتيجة:

Faster (median): v2 (1.6× at p50)
p50 A → B: -38% · p95 A → B: -41%
Significance: likely real
Median: 412 ms vs 256 ms · p95: 640 ms vs 377 ms

الأسئلة الشائعة حول مقارنة أداء API

كيف تُضمن عدالة المقارنة؟

تتلقى كلتا نقطتي النهاية الطريقة والترويسات وعدد الطلبات والتزامن نفسها من المرحّل نفسه، وتُشغَّلان واحدة تلو الأخرى حتى لا تتنافسا على عرض النطاق.

ماذا تعني «ضمن حدود الضوضاء» (within noise)؟

أن الوسيطين يختلفان بأقل من 20%، أو بأقل من أكبر الانحرافين المعياريين للتشغيلين، فقد يكون الفرق تبايناً عشوائياً. زد حجم العيّنة أو كرّر التشغيل قبل استخلاص النتائج.

هل يمكنني مقارنة بيئة staging بالإنتاج؟

نعم، ما دام كلا العنوانين عاماً ويُسمح لك بإرسال حفنة من الطلبات إليهما. أبقِ عدد الطلبات منخفضاً مع بيئة الإنتاج.

لماذا نقارن p95 إلى جانب الوسيط؟

قد تتساوى نقطتا نهاية في الوسيط بينما يكون لإحداهما ذيل أثقل بكثير. يعرض عمود p95 تجربة أبطأ المستخدمين.

هل تُقارن أحجام الاستجابات؟

عندما يبلّغ المرحّل عن أحجام الأجسام تظهر في صف إضافي؛ وإلا فاستخدم محلّل حجم الاستجابة على كل عنوان URL.

ملاحظات تقنية

يتجنّب التنفيذ المتتابع تنافس التشغيلين على عرض نطاق المرحّل نفسه، وهو ما كان سيضرّ بأي نقطة نهاية تُشغَّل ثانيةً تحت الحمل. أما المقابل فهو احتمال تغيّر ظروف الشبكة بين التشغيلين؛ لذا لا يَعُدّ تلميح الدلالة الفرق «حقيقياً على الأرجح» (likely real) إلا إذا كان الوسيط الأبطأ 1.2 ضعف الأسرع على الأقل وكان الفرق بينهما أكبر من أكبر الانحرافين المعياريين؛ وما عدا ذلك يُعلَّم بأنه قد يكون ضوضاء.

المراجع