Skip to content

الأداء والمقاييس

يعتمد أداء Iroha على عبء العمل وتوبولوجيا المحقق، وشروط الشبكة، وإعدادات الإجماع. وبالتالي فإن رقم واحد TPS مفيد فقط عندما يكون مرتبطًا بتشغيل مقياس مع تشكيلة ثابتة .

للتخطيط للقدرة، اعتبر الأداء كغلاف تشغيلي:

  • تقبل الشبكة معدل المعاملة المطلوب
  • الالتزام بقاء التأخير داخل الميزانية المستهدفة
  • صفوف المعاملات تبقى محدودة
  • التوافق لا يعتمد على تغييرات مرارية في الرؤية أو مسارات التعافي

استخدم هذه الصفحة لتقدير ما إذا كان التنفيذ في حالة عالية أو متوسطة أو منخفضة الأداء لعدد عقد معين، وعتبة تأخر الشبكة، والهدف TPS.

ما يجب قياسه

بدءًا من السطحات التي يعرضها Torii:

bash
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:

bash
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:

bash
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.

toml
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 إلى 30 عملية خارج الاتصالجميع المحققينمفيد للتطوير والاختبارات الصغيرة ؛ أي مؤكدة مفقودة يمكن أن تؤخر الالتزامات
413الحد الأدنى المشترك للتسامح مع خطأ واحد
725أكثر مرونة، مع مزيد من حركة التصويت والنشر
1037ارتفاع تكلفة التنسيق ؛ تدوين الشبكة والجميع مهم أكثر

عند تقييم "عقدات إكس"، فصل مؤكدين التصويت من المراقبين. عادة ما تكلف إضافة المراقبين أقل من إضافة المؤكدين، ولكن المراقبين لا يزالون يستغرقون الجشعات الحدودية والمزامنة الحدودية والقرص وربط الشبكة.

العوامل التي تؤثر على الأداء

شكل حمولة العمل

نفس TPS يمكن أن تكون رخيصة أو مكلفة اعتماداً على ما تقوم به كل معاملة.

  • عدد الإرشادات لكل معاملة
  • عدد التوقيعات وخوارزميات التوقيع
  • حجم البايت المعاملة وحجم الحمولة المفيدة المضغطة
  • نسبة القراءة / الكتابة
  • حجم البيانات المعدنية وعمليات الأصول
  • العقود الذكية، الزناد، و IVM تكلفة تنفيذها
  • تحميل الاستفسار الذي يعمل ضد نفس الأقران

عمليات النقل الصغيرة ليست بديلاً عن تحميلات عمل ثقيلة بالعقد أو البيانات المعدنية.

توقيت الإجماع

يتم التحكم في توقيت Sumeragi عن طريق المعايير الفعالة Sumeragi:

  • block_time_ms
  • commit_time_ms
  • min_finality_ms
  • pacing_factor_bps
  • توقيت مرحلة NPoS عندما يكون وضع NPoS تمكين

فحصهم مع:

bash
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 جنبا إلى جنب مع المجموعات

يمكن أن يقلل من تأخر الذيل في الشبكات الأكبر أو الأقل موثوقية، ولكنه يزيد أيضًا من حركة المرور. مقارنة التوافر الإجمالي والمتصفحات التلفزيونية للمجمع مع قياسات تأخير الضغط العكسي قبل تغيير هذه القيم:

bash
iroha --config ./localnet/client.toml --output-format text ops sumeragi telemetry

شروط الشبكة

أداء الإجماع هو حساس ل:

  • RTT بين المحققين
  • الاضطرابات والخسارة
  • عرض النطاق للمحملات المفيدة في كتلة وقطاعات RBC
  • علاقات غير متماثلة بين المناطق
  • NAT ، جدار حماية أو سلوك الترسل الذي يؤخر اتصال الأقران.

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

الصفوف والحدود المحددة للدخول

تحدد إعدادات الإدخال والصف كمية ضغط الانفجار الذي يمكن أن يستوعبها زميل:

  • queue.capacity
  • queue.capacity_per_user
  • queue.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انخفاضات أثناء الحمل عادة ما تفسر ارتفاعات التأخير
ضغط RBCsumeragi_rbc_store_pressure، sumeragi_rbc_backpressure_deferrals_totalنقاط الضغط غير الصفر لتعويض الحمولة المفيدة أو ضباب تخزينها
إجراء حكمsumeragi_commit_signatures_counted، sumeragi_commit_signatures_requiredيجب أن تصل التوقيعات المحتملة إلى الكواروم بسرعة

عندما توجد مقياسة فقط في /v1/sumeragi/status ، التقاط الصورة الفورية JSON في نفس تشغيل القطع الأثرية كمسح Prometheus.

التقديرات سير العمل

  1. حدد السيناريو:

    • عدد المؤكدين وعدد المراقبين
    • وضع الإجماع
    • الهدف TPS
    • ميزانيات الالتزام p95 و p99
    • مزيج المعاملات
    • شبكة متوقعة RTT ، jitter و عرض النطاق
  2. سجل التكوين الفعلي:

    bash
    iroha --config ./localnet/client.toml --output-format json ops sumeragi params \
      > artifacts/sumeragi-params.json
    curl -s "$TORII/v1/sumeragi/collectors" \
      > artifacts/sumeragi-collectors.json
  3. قم بتشغيل عبء العمل في الهدف TPS.

  4. التقاط الحالة والمقاييس في بداية، منتصف، ونهاية الجولة.

  5. قم بتصنيف السباق باستخدام جدول النطاق الأداء.

  6. إذا كانت الفرقة متوسطة أو منخفضة، قم بتغيير عامل واحد في كل مرة وكرر.

نموذج تقرير المؤشر

نشر أرقام الأداء فقط مع السياق الكافي لاستعادةها:

  • Iroha علامات الالتزام والإفراج، وميزة
  • عدد المحققين والمراقبين
  • وضع الإجماع وعلامات Sumeragi
  • الجمع k ، الإرسال المفرط r، وتوبولوجيا fanout
  • الملف التليميري
  • المعدات والتخزين وتفاصيل OS
  • شبكة RTT ، الاضطرابات، الخسارة، وفرض عرض النطاق
  • مزيج المعاملات وحجم الحمولة المفيدة
  • المقدمة TPS ومدة التشغيل
  • المقبول/الرفض TPS
  • p50/p95/p99 تأخير المشاركة
  • عمق الصف والشبعية
  • تغييرات الرؤية، وإسقاط الرسائل، الضغط RBC، ومعدلات الحمل المفيد المفقودة
  • CPU ، الذاكرة، القرص، واستخدام الشبكة لكل مؤكد

وبدون هذه التفاصيل، يجب التعامل مع رقم TPS على أنه مجرد قصة.