في أنظمة البرمجيات ال Latency و Throughput هما من أهم مقاييس الأداء وغالبًا بنشوفهم جنبًا لجنب في نفس ال Dashboards، لكن كل واحد بيقيس حاجة مختلفة.

1. Latency (زمن الاستجابة)
التعريف: هو الوقت الذي يستغرقه النظام لإنجاز طلب واحد من لحظة إرساله حتى استلام النتيجة.
بمعنى تاني: “هستني قد إيه عشان يجيلي الرد؟”
مثال: إذا أرسلت طلب API الساعة 10:00:00 ووصل الرد الساعة 10:00:00.200 » فالـ Latency = 200 ms
أمثلة على Latency
- وقت تحميل صفحة ويب.
- زمن استجابة قاعدة البيانات لاستعلام معين.
- الوقت بين الضغط على زر وإظهار النتيجة للمستخدم.
كلما كان أقل كان أفضل
2. Throughput (معدل الإنتاجية)
التعريف: هو عدد العمليات أو الطلبات التي يستطيع النظام معالجتها خلال فترة زمنية معينة.
و دايمًا بنسأل: “كم كمية الشغل اللي يقدر النظام ينجزها في وقت معين؟”
مثال: إذا كان السيرفر يعالج: 10,000 Request في الثانية فالـ Throughput = 10,000 Requests/sec
أمثلة على Throughput
- عدد الطلبات في الثانية (RPS).
- عدد الرسائل التي يعالجها Queue في الدقيقة.
- عدد المعاملات البنكية في الثانية.
- عدد الملفات التي تتم معالجتها في الساعة.
كلما كان أعلى كان أفضل
العلاقة بينهما
وفقًا لـ Little’s Law في أنظمة الطوابير:
Latency = Concurrency / Throughput
وهنا ال Concurrency = عدد الطلبات الموجودة داخل النظام في نفس الوقت وفي بعض الأوقات بنقول عليها Work in progress.
فلو عندي 100 طلب في نفس الوقت و ال Latency في حدود 100 مللي ثانية فكدا معدل إنتاجية النظام Throughput هيكون ألف طلب في الثانية.
المعاييرين مهمين في قياس أداء الأنظمة لكن بعض الأنظمة بيكون عندها معيار أهم من الثاني فمثلاً ال Chat systems بتهتم بال Latency عشان تجربة المستخدم بينما أنظمة معالجة البيانات وال Big Data لو مهتمة تعالج كميات ضخمة هتهتم بالعدد الكلي اللي تقدر تنجزه خلال الساعة أو اليوم بدل من وقت كل نتيجة فردية.
في معظم الأنظمة مثل ال E-Commerce بنهتم بالاثنين و بالتالي بنحدد SLI لكل واحد فيهم وغالبًا بنبتدي بال Latency عشان نحافظ علي تجربة المستخدم ونحاول نحسن في ال Throughput بتحسين النظام.
Discussion