الأداء والمقاييس
يعتمد أداء Iroha على عبء العمل وتوبولوجيا المحقق، وشروط الشبكة، وإعدادات الإجماع. وبالتالي فإن رقم واحد TPS مفيد فقط عندما يكون مرتبطًا بتشغيل مقياس مع تشكيلة ثابتة .
للتخطيط للقدرة، اعتبر الأداء كغلاف تشغيلي:
- تقبل الشبكة معدل المعاملة المطلوب
- الالتزام بقاء التأخير داخل الميزانية المستهدفة
- صفوف المعاملات تبقى محدودة
- التوافق لا يعتمد على تغييرات مرارية في الرؤية أو مسارات التعافي
استخدم هذه الصفحة لتقدير ما إذا كان التنفيذ في حالة عالية أو متوسطة أو منخفضة الأداء لعدد عقد معين، وعتبة تأخر الشبكة، والهدف TPS.
ما يجب قياسه
بدءًا من السطحات التي يعرضها Torii:
export TORII=http://127.0.0.1:8180
curl -s "$TORII/status" | jq .
curl -s -H 'Accept: application/json' "$TORII/v1/sumeragi/status" | jq .
curl -s "$TORII/v1/sumeragi/phases" | jq .
curl -s "$TORII/v1/sumeragi/rbc" | jq .
curl -s "$TORII/v1/sumeragi/params" | jq .
curl -s "$TORII/metrics" > metrics.promيمكنك تجربة نفس النمط القراءة فقط ضد الجمهور Taira:
TAIRA=https://taira.sora.org
curl -fsS "$TAIRA/status" \
| jq '{blocks, txs_approved, txs_rejected, queue_size, peers}'
curl -fsS "$TAIRA/v1/time/status" \
| jq '{healthy: .health.healthy, peers, samples_used, rtt_count: .rtt.count}'
curl -fsS "$TAIRA/metrics" \
| grep -E '^(block_height|queue_size|sumeragi_tx_queue_depth|txs|view_changes)' \
| head -n 20المقاييس العامة Taira مفيدة لمعرفة أسماء الإشارات. لا تستخدمها كمعدلات القدرة الإنتاجية لنشرك الخاص.
تتوفر نفس صور الإجماع عبر CLI:
iroha --config ./localnet/client.toml --output-format text ops sumeragi status
iroha --config ./localnet/client.toml --output-format text ops sumeragi phases
iroha --config ./localnet/client.toml --output-format text ops sumeragi telemetry
iroha --config ./localnet/client.toml ops sumeragi paramsتعتمد مرئية التلفزيون على الملف الشخصي الذي تم تشكيله. استخدم extended عندما تحتاج إلى /metrics، واستخدم full أثناء عمليات الاختبار عندما تحتاج أيضًا إلى طرق المشغل التفصيلية Sumeragi.
telemetry_enabled = true
telemetry_profile = "full"نطاقات الأداء
استخدم هذه النطاقات للتشغيل الملاحظ عند الإنتاج الهدف Y TPS وميزانية التأخير L ملثواني. قم بتشغيل عبء العمل لفترة طويلة بما فيه الكفاية لتشمل الحرارة ، والحالة المستقرة ، ومرة واحدة على الأقل من الطاقة العالية المتوقعة.
| الفرقة | الشروط | المعنى |
|---|---|---|
| عالية | الإنتشار المقبول عند Y أو فوقها، وتخفيف التزام p95 أقل من 0.8 * L، والترتيبات تبقى تحت 10٪ من القدرة، ومعدلات تغيير الرؤية/التعافي ثابتة | التنفيذ يحتوي على مساحة كبيرة لحمل العمل المطلوب |
| متوسط | إن الانتقال المقبول قريب من Y ، و p95 تأخير المشاركة أقل من L، والصفوف مستقرة تحت 50٪ من القدرة، وتغيرات الرؤية نادرة | النشر يعمل، ولكن هناك قدرة محدودة على التسامح |
| منخفضة | إن الإنتاج المقبول أقل من Y ، وتجاوز تأخير المشاركة p95 L ، وتزداد الصفوف أثناء التشغيل، أو ترتفع معاكسات تغيير الرؤية / الضغط الخلفي باستمرار | عبء العمل المطلوب يتجاوز عقدة زجاجية واحدة على الأقل |
القاعدة الرئيسية هي اتجاه الصف. إذا كان مقدم TPS أكبر من الملتزم TPS واستمر في النمو، فإن التنفيذ يزداد الحمولة حتى لو كانت العينات القصيرة تبدو صحية.
عدد العقد والكواروم
مزيد من المحققين يحسنون تحمل الأخطاء ولكن يزيدون من التنسيق والتوقيع وتكاليف إنتاج الشبكة. في تنفيذ Sumeragi الحالي:
- عدد المحققين
nيستخرج ميزانية الخطأf = floor((n - 1) / 3) - بالنسبة ل
n >= 4، فإن الحكم المفروض هو2f + 1 - بالنسبة ل
n <= 3، جميع المؤكدين مطلوبون للالتزام. - أقرانهم المراقبون يزامنون الكتل ولكن لا يصوتون أو يقترحون أو يحصلون على
| المحققون | الميزانية الخطأ | إجراء حكم | ملاحظة القدرة |
|---|---|---|---|
| 1 إلى 3 | 0 عملية خارج الاتصال | جميع المحققين | مفيد للتطوير والاختبارات الصغيرة ؛ أي مؤكدة مفقودة يمكن أن تؤخر الالتزامات |
| 4 | 1 | 3 | الحد الأدنى المشترك للتسامح مع خطأ واحد |
| 7 | 2 | 5 | أكثر مرونة، مع مزيد من حركة التصويت والنشر |
| 10 | 3 | 7 | ارتفاع تكلفة التنسيق ؛ تدوين الشبكة والجميع مهم أكثر |
عند تقييم "عقدات إكس"، فصل مؤكدين التصويت من المراقبين. عادة ما تكلف إضافة المراقبين أقل من إضافة المؤكدين، ولكن المراقبين لا يزالون يستغرقون الجشعات الحدودية والمزامنة الحدودية والقرص وربط الشبكة.
العوامل التي تؤثر على الأداء
شكل حمولة العمل
نفس TPS يمكن أن تكون رخيصة أو مكلفة اعتماداً على ما تقوم به كل معاملة.
- عدد الإرشادات لكل معاملة
- عدد التوقيعات وخوارزميات التوقيع
- حجم البايت المعاملة وحجم الحمولة المفيدة المضغطة
- نسبة القراءة / الكتابة
- حجم البيانات المعدنية وعمليات الأصول
- العقود الذكية، الزناد، و IVM تكلفة تنفيذها
- تحميل الاستفسار الذي يعمل ضد نفس الأقران
عمليات النقل الصغيرة ليست بديلاً عن تحميلات عمل ثقيلة بالعقد أو البيانات المعدنية.
توقيت الإجماع
يتم التحكم في توقيت Sumeragi عن طريق المعايير الفعالة Sumeragi:
block_time_mscommit_time_msmin_finality_mspacing_factor_bps- توقيت مرحلة NPoS عندما يكون وضع NPoS تمكين
فحصهم مع:
iroha --config ./localnet/client.toml ops sumeragi params
curl -s "$TORII/v1/sumeragi/params" | jq .يمكن أن تحسن أهداف التوقيت المنخفضة التأخير فقط بينما تستطيع الطبقات الشبكة والتخزين والتنفيذ مواكبة. بمجرد عرض التغييرات ، أو حصول الحمولة المفقودة ، أو الضغط الخلفي ، عادة ما يؤدي خفض التوقيت إلى تفاقم الأداء.
المتجمّع (فانويت)
إعدادات الجمع تؤثر على مدى سرعة التقارب بين أصوات التزام:
sumeragi.collectors.kيسيطر على عدد المجمعين الذين يجمعون الأصوات لكل ارتفاعsumeragi.collectors.redundant_send_rيسيطر على التصويت الإضافي بعد إيقاف الوقت المحليsumeragi.collectors.parallel_topology_fanoutيضيف توبولوجي fanout جنبا إلى جنب مع المجموعات
يمكن أن يقلل من تأخر الذيل في الشبكات الأكبر أو الأقل موثوقية، ولكنه يزيد أيضًا من حركة المرور. مقارنة التوافر الإجمالي والمتصفحات التلفزيونية للمجمع مع قياسات تأخير الضغط العكسي قبل تغيير هذه القيم:
iroha --config ./localnet/client.toml --output-format text ops sumeragi telemetryشروط الشبكة
أداء الإجماع هو حساس ل:
- RTT بين المحققين
- الاضطرابات والخسارة
- عرض النطاق للمحملات المفيدة في كتلة وقطاعات RBC
- علاقات غير متماثلة بين المناطق
- NAT ، جدار حماية أو سلوك الترسل الذي يؤخر اتصال الأقران.
كقاعدة تخطيطية، حدد ميزانية التأخير عالية بما فيه الكفاية لتغطية عدة رحلات ذهابًا وإيابًا للمؤكّد بالإضافة إلى وقت تنفيذ وقضاء القرص. إذا كانت شبكة p95 RTT قريبة بالفعل من التأخير المطلوب لمشاركة p95, فإن الهدف ليس واقعيًا .
الصفوف والحدود المحددة للدخول
تحدد إعدادات الإدخال والصف كمية ضغط الانفجار الذي يمكن أن يستوعبها زميل:
queue.capacityqueue.capacity_per_userqueue.transaction_time_to_live_ms- حدود المعاملات التكوينية مثل توقيعات أقصى ، وإرشادات ، وبايتز ، والبايتز المضغوطة.
- أقصى مستويات الطابور p2p ومحدود الدخول المتفق عليها
إن قدرة الطوابير العالية يمكن أن تخفي عبءًا زائدًا لفترة، ولكنها لا تزيد من الإنتاج المستدام. طوابير مستقرة صحية؛ والطوابير المتزايدة تعتبر عجزًا.
الأجهزة والتخزين
قم بقياس كل مؤكد، ليس فقط القائد:
- CPU الشبع أثناء التحقق من المصادقة والتحقق من التوقيع والتنفيذ.
- ضغط الذاكرة من الصفوف والصور الفورية ودورات RBC النشطة.
- تأخير كتابة القرص لتخزين الكتل والصور الفورية
- شبكة إرسال / استقبال الاكتفاء
- إعدادات تسريع الأجهزة الاختيارية عند استخدامها من خلال عبء العمل
يمكن لأبطأ مؤكد التصويت تحديد تأخر الشبكة.
إشارات (بروميثيوس)
يمكن أن تختلف أسماء المقاييس حسب بناء ملف الشخصية ومجموعة الميزات. تحقق /metrics على العقد الخاص بك أولاً، ثم قم ببناء لوحة التحكم حول السلسلة المتاحة.
تشمل الإشارات الشائعة:
| الإشارة | أمثلة بروميثيوس | ما الذي يجب مشاهدته |
|---|---|---|
| الإنتشار المقبول | sum(rate(txs{type="accepted"}[5m])) | يجب أن تصل إلى الهدف TPS أو تتجاوزه في حالة ثابتة |
| الرفض | sum(rate(txs{type="rejected"}[5m])) | يجب أن تكون واضحة من خلال خطة الاختبار |
| الالتزام بالتأخير | histogram_quantile(0.95, sum(rate(commit_time_ms_bucket[5m])) by (le)) | مقارنة p95/p99 مع ميزانية التأخير |
| عمق الصف | queue_size، sumeragi_tx_queue_depth | يجب أن تبقى محجوزة خلال ذروة الحمل |
| التشبع في الصف | sumeragi_tx_queue_saturated | مستمرة القيم غير الصفرية المتوسط للعبء الزائد |
| عرض التغييرات | view_changes ، sumeragi_view_change_suggest_total، sumeragi_view_change_install_total | وتشير القيم المتزايدة إلى التوقيت، والتوبولوجيا، والحمل المفيد، أو مشاكل في الشبكة |
| الرسائل التي تم إسقاطها | dropped_messages، sumeragi_consensus_message_handling_total | انخفاضات أثناء الحمل عادة ما تفسر ارتفاعات التأخير |
| ضغط RBC | sumeragi_rbc_store_pressure، sumeragi_rbc_backpressure_deferrals_total | نقاط الضغط غير الصفر لتعويض الحمولة المفيدة أو ضباب تخزينها |
| إجراء حكم | sumeragi_commit_signatures_counted، sumeragi_commit_signatures_required | يجب أن تصل التوقيعات المحتملة إلى الكواروم بسرعة |
عندما توجد مقياسة فقط في /v1/sumeragi/status ، التقاط الصورة الفورية JSON في نفس تشغيل القطع الأثرية كمسح Prometheus.
التقديرات سير العمل
حدد السيناريو:
- عدد المؤكدين وعدد المراقبين
- وضع الإجماع
- الهدف TPS
- ميزانيات الالتزام p95 و p99
- مزيج المعاملات
- شبكة متوقعة RTT ، jitter و عرض النطاق
سجل التكوين الفعلي:
bashiroha --config ./localnet/client.toml --output-format json ops sumeragi params \ > artifacts/sumeragi-params.json curl -s "$TORII/v1/sumeragi/collectors" \ > artifacts/sumeragi-collectors.jsonقم بتشغيل عبء العمل في الهدف TPS.
التقاط الحالة والمقاييس في بداية، منتصف، ونهاية الجولة.
قم بتصنيف السباق باستخدام جدول النطاق الأداء.
إذا كانت الفرقة متوسطة أو منخفضة، قم بتغيير عامل واحد في كل مرة وكرر.
نموذج تقرير المؤشر
نشر أرقام الأداء فقط مع السياق الكافي لاستعادةها:
- Iroha علامات الالتزام والإفراج، وميزة
- عدد المحققين والمراقبين
- وضع الإجماع وعلامات Sumeragi
- الجمع
k، الإرسال المفرطr، وتوبولوجيا fanout - الملف التليميري
- المعدات والتخزين وتفاصيل OS
- شبكة RTT ، الاضطرابات، الخسارة، وفرض عرض النطاق
- مزيج المعاملات وحجم الحمولة المفيدة
- المقدمة TPS ومدة التشغيل
- المقبول/الرفض TPS
- p50/p95/p99 تأخير المشاركة
- عمق الصف والشبعية
- تغييرات الرؤية، وإسقاط الرسائل، الضغط RBC، ومعدلات الحمل المفيد المفقودة
- CPU ، الذاكرة، القرص، واستخدام الشبكة لكل مؤكد
وبدون هذه التفاصيل، يجب التعامل مع رقم TPS على أنه مجرد قصة.