حاسبة العمليات المطلوبة في الثانية لإنجاز العمل في موعده
تحول حاسبة العمليات المطلوبة في الثانية عبء عمل ثابتاً وموعداً نهائياً إلى معدل معالجة مستدام يجب أن يحققه نظامكم.
شغّل الأداة مجانًا
أدخلوا العدد الإجمالي للعمليات، واختاروا وحدة الزمن المتاح، فتحصلون على المعدل المتوسط الدقيق والحد الأدنى الصحيح للمعدل. تعرض النتيجة أيضاً الموعد بعد توحيده بالثواني والميزانية الزمنية لكل عملية، ولذلك تفيد في مراجعات السعة وأهداف اختبارات الحمل وخطط تصريف الطوابير والأعمال الدفعية وتحليل جدوى خطوط المعالجة الفورية.
حولوا موعد التسليم إلى هدف واضح للسعة
يصبح تخطيط السعة محدداً عندما يعبر عن عبء العمل بمعدل معالجة. ابدؤوا بالعدد الإجمالي للعمليات الواجب إكمالها وبكامل النافذة الزمنية المتاحة لمعالجتها. تحول الحاسبة الموعد إلى ثوان ثم تقسم عدد العمليات على تلك المدة. وتمثل النتيجة المتوسط المستدام للعمليات في الثانية اللازم للانتهاء في الموعد تماماً. فعلى سبيل المثال، يتطلب رصيد متراكم قدره 2,500,000 عملية ضمن خمس ثوان معدل 500,000 عملية في الثانية. ليست النتيجة اختبار أداء ولا تقديراً لما يستطيع خادم بعينه تنفيذه، بل هي مقدار الطلب الذي يجب أن يلبيه النظام المقترح. قارنوها بمعدل الأداء المقاس في اختبارات حمل واقعية. يقرب الحد الأدنى الصحيح للمعدل القيمة إلى الأعلى، وهو مناسب عندما لا يقبل المجدول أو تجمع العمال أو حقل السعة لدى المزود إلا أعداداً صحيحة. يتم التقريب انطلاقاً من المعدل غير المختصر، لذلك لا يؤدي تقليل دقة العرض إلى خفض السعة المطلوبة. استخدموا الحساب أساساً أولياً قبل إضافة هامش الأمان أو التكرار أو افتراضات الاندفاع المناسبة لبنية نظامكم.
حددوا عبء العمل والحد الزمني بصورة صحيحة
عرفوا العملية الواحدة تعريفاً ثابتاً قبل تفسير المعدل. قد تكون العملية رسالة مفكوكة الترميز أو سجلاً محولاً أو استدلالاً أو كتابة في قاعدة بيانات أو إطاراً مصيراً أو طلباً مكتملاً، لكن خلط هذه الوحدات يجعل الإجابة بلا معنى. احسبوا كل عملية يجب إنجازها فعلاً ضمن الموعد، بما فيها المحاولات المعادة أو الأعمال المتفرعة عندما تستهلك المورد المحدود نفسه. ثم اختاروا الحد الزمني بعناية. استخدموا النافذة المتاحة للمكون المراد تقدير سعته، وليس بالضرورة هدف مستوى الخدمة كاملاً. إذا وجب إكمال طلب خلال 200 مللي ثانية بينما تستهلك الشبكة والتسليم اللاحق 50 مللي ثانية، فلن تبقى لمرحلة المعالجة سوى 150 مللي ثانية. تقبل الحاسبة المللي ثانية والثواني والدقائق والساعات، ثم توحدها بالثواني لتفادي أخطاء التحويل. تبين الثواني لكل عملية متوسط ميزانية الخدمة عند تصور التنفيذ التسلسلي. ولأن الأنظمة المتوازية تنجز عمليات عدة في الوقت نفسه، فلا تمثل هذه المدة أقصى كمون لكل عملية، بل توفر تحققاً عكسياً مفيداً من معدل المعالجة الإجمالي المطلوب.
طبقوا النتيجة على الأنظمة الفعلية
يمثل المعدل المتوسط المطلوب بداية تحليل الجدوى، ولا يحدد بمفرده الحجم النهائي للنشر. قيسوا معدل الأداء المستدام باستخدام حمولات وكمون تبعيات وتزامن وتسجيل وحالات فشل ممثلة للواقع. اقسموا المعدل المطلوب على المعدل المستدام المقاس لكل عامل لتقدير عدد العمال، ثم قربوا العدد إلى الأعلى وأضيفوا سعة احتياطية. يعتمد الهامش المناسب على تفاوت وصول العمل وتأخر التوسع التلقائي والاندفاعات والصيانة وكلفة تجاوز الموعد. إذا كان العمل يصل أثناء النافذة بدلاً من وجوده كله في بدايتها، فصمموا منحنى الوصول أيضاً؛ إذ قد يخفي المتوسط الواحد موجة متأخرة. قارنوا في الطوابير معدل التصريف المطلوب بحركة الدخول، لأن العمال يعالجون العناصر الجديدة إضافة إلى تقليل الرصيد المتراكم. وفي خطوط الوسائط أو الأحداث الفورية، افحصوا كل مرحلة محدودة على حدة، فلا يكون الخط قابلاً للتنفيذ إلا إذا حققت جميع مراحله المعدل والكمون المخصصين. أعيدوا الحساب عند تغير عدد العمليات أو الموعد أو التعقيد أو البنية. تكلف كل مطالبة API مبلغ $0.002 وتعيد قيماً حتمية تصلح لأدوات التخطيط وإجراءات التشغيل وفحوص السعة الآلية القابلة للتكرار.
حالات الاستخدام
تقدير مجموعة عمال لتصريف طابور
حولوا رصيداً متراكماً معروفاً وموعد التعافي إلى معدل إجمالي مستدام يجب أن توفره مجموعة العمال.
تحديد هدف لاختبار الحمل
حولوا عدد الأحداث ونافذة المعالجة إلى حد قبول قابل للقياس بوحدة العمليات في الثانية.
التحقق من الجدوى الفورية
قارنوا المعدل الذي يفرضه موعد إطار أو رسالة أو استدلال بمعدل الأداء المقاس للنظام.
الأسئلة الشائعة
ما الصيغة التي تستخدمها الحاسبة؟
تقسم إجمالي العمليات على الموعد بالثواني: العمليات المطلوبة/ثانية = العمليات / ثواني الموعد.
لماذا تعرض الحاسبة حداً أدنى صحيحاً للمعدل؟
لا تقبل بعض إعدادات السعة إلا الأعداد الصحيحة. ويمنع التقريب إلى الأعلى اختيار معدل صحيح أقل من المطلوب.
هل تشمل النتيجة هامش أمان؟
لا. إنها المتوسط الرياضي اللازم للوفاء بالموعد. أضيفوا احتياطياً يناسب الاندفاعات والأعطال وتأخر التوسع وسياسة التشغيل.
هل يمكن إدخال الموعد بالمللي ثانية؟
نعم. اختاروا milliseconds في deadline_unit؛ كما تدعم الحاسبة الثواني والدقائق والساعات.
ما تكلفة الحساب عبر API؟
تكلف كل مطالبة API مبلغ $0.002. الحساب حتمي ولا يستخدم أي خدمة شبكة خارجية.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/required-ops-per-second \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"operations":2500000,"deadline":5}'const res = await fetch("https://api.kit.forhosting.com/dev/required-ops-per-second", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"operations": 2500000,
"deadline": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/required-ops-per-second",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"operations": 2500000,
"deadline": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/required-ops-per-second", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"operations":2500000,"deadline":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"operations":2500000,"deadline":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/required-ops-per-second", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"operations": 2500000,
"deadline": 5
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.required_ops_per_second",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |