Skip to content

Эшмәкәрлек һәм күрһәткестәр

Iroha һөҙөмтәлелеге эш йөкләмәһенә, валидатор топологияһына, селтәр шарттары һәм консенсус көйләүҙәренә бәйле. TPS Шуға күрә был һан тик билдәләнгән конфигурация менән күрһәтелгән эталонға бәйләнгән осраҡта ғына файҙалы.

Капитализмды планлаштырыу өсөн, һөҙөмтәлелек менән эш итеүҙе үҙ эсенә алырға кәрәк:

  • селтәр талап ителгән транзакция ставкаһын ҡабул итә
  • маҡсатлы бюджет эсендә тороу ваҡытын йөкмәтергә
  • транзакция сираттары сикләнгән
  • консенсус ҡабатланған ҡарау үҙгәрештәренә йәки тергеҙеү юлдары нигеҙендә түгел

Был битте файҙаланып, ҡулланыу юғары, уртаса йәки түбән һөҙөмтәлелек дәүерендәме икәнен билдәләү өсөн бирелгән узел һанын, селтәрҙең latency порогы һәм маҡсатлы 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

Телеметрия күреүсәнлеге конфигурацияланған профилгә бәйле. /metrics кәрәк саҡта extended ҡулланығыҙ, ә һынау барышында full ҡулланығыҙ, әгәр һеҙгә шулай уҡ Sumeragi операторы маршруттары ла кәрәк икән.

toml
telemetry_enabled = true
telemetry_profile = "full"

Эшмәкәрлек таҫмалары

Был диапазондарҙы маҡсатлы үтеүсәнлектә күҙәтелгән хәрәкәт өсөн ҡулланыу Y TPS һәм кисектереү бюджеты L миллисекундтар. Эш мәшәҡәттәрен йылытыу, тотороҡло торош һәм иң кимендә бер осорҙа юғары йөкләнеү ваҡыты үткәреү кәрәк.

ТамашаШарттарМәғәнәһе
ЮғарыҠабул ителгән үтеүсәнлек Y йәки унан юғарыраҡ, p95 commit latency 0.8 * L аҫтында, сираттар 10% ҡеүәтенән түбәнерәк булып ҡала, һәм күреүҙе үҙгәртеү / тергеҙеү счетчиктары тигеҙ.Ҡунаҡланыуҙа талап ителгән эш йөкләмәһе өсөн урын бар
УртасаҠабул ителгән тапшырыу тиҙлеге яҡын Y, p95 commit latency түбән L, сираттары тотороҡло 50% ҡеүәтенән түбәнерәк, һәм ҡарау үҙгәрештәр һирәкОйоштороу эшләй, әммә шартлау толерантлығы сикләнгән
ТүбәнгеҠабул ителгән үтеүсәнлек Y аҫтында, p95 commit latency exceeds L, queues grow during the run, or view-change / backpressure counters rise continuouslyҺорауланған эш йөкләмәһе , кәм тигәндә , бер bottleneck-тан ашыу

Төп ҡағиҙә - сират йүнәлеше. Әгәр тапшырылған TPS йөкмәтелгәндән ҙурыраҡ булһа TPS һәм сират арта бара икән, ҡыҫҡа өлгөләр сәләмәт булып күренһә лә, күсереү артыҡ көсөргәнешле буласаҡ.

Кнопкалар һаны һәм кворум

Күберәк validators яңылышлыҡ толерантлығын яҡшыртыу, әммә координация, ҡултамға һәм селтәр өсөн сығымдар арттыра. Sumeragi ғәмәлгә ашырыу:

  • раҫлаусы иҫәбе n хата бюджеты f = floor((n - 1) / 3) алып сыға.
  • n >= 4 өсөн комиссия кворумы - 2f + 1
  • n <= 3 өсөн бөтә валидаторҙар йөкләмәне үтәргә тейеш
  • күҙәтеүсе тиңдәштәре блоктарҙы синхронизациялай, әммә тауыш бирмәйҙәр, тәҡдим итмәйҙәр һәм йыйымайҙар.
ВалидаторҙарФайҙаһыҙ бюджетКворумға килегеҙҠеүәтлелек белеме
1 - 30 ғәмәли офлайн бушлайбөтә раҫлаусыларҮҫеш һәм ҙур булмаған һынауҙар өсөн файҙалы; ниндәй ҙә булһа юғалған validator commits ҡаҡшатырға мөмкин
413Бер хаталылыҡ толерантлығы өсөн дөйөм минималь
725Күберәк тотороҡло, күберәк тауыш биреү һәм пропаганда трафигы менән
1037Күберәк координация хаҡы; селтәр һәм коллектор көйләү мәсьәләһе күберәк

"X узелдарын" баһалағанда тауыш биреүҙе раҫлаусыларҙы күҙәтеүселәрҙән айырырға кәрәк. Күҙәтеүселәрҙе өҫтәү, ғәҙәттә, раҫлаусылар менән сағыштырғанда, арзаныраҡ тора, әммә күҙәтеүселәр барыбер блок гайбаһын, блок синхронлаштырыуҙы, дискты һәм селтәр бүлкәт киңлеген ҡуллана.

Эшмәкәрлеккә йоғонто яһаған факторҙар

Эш йөкләмәһе формаһы

Шул уҡ TPS арзан йәки ҡиммәт булыуы мөмкин, һәр транзакция нимәгә бәйле.

  • бер транзакция буйынса күрһәтмәләр һаны
  • ҡултамғаларҙы иҫәпләү һәм ҡултамғалау алгоритмдары
  • Транзакция байты һәм декомпрессланған файҙалы йөк күләме
  • Уҡыу-яҙау нисбәте
  • Метамәғлүмәт күләме һәм активтар операциялары
  • smart contract, trigger һәм 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 ҙур йәки аҙ ышаныслы селтәрҙәрҙә ҡойроҡ latency кәметергә мөмкин, әммә был шулай уҡ трафик арттыра. Был ҡиммәттәрҙе үҙгәртер алдынан тупланма доступность һәм коллектор телеметрияһын latency һәм backpressure метрикалары менән сағыштырығыҙ:

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

Сеть шарттары

Консенсус һөҙөмтәлелеге түбәндәгеләргә бәйле:

  • RTT validatorҙар араһында
  • ығы-зығы һәм пакеттар юғалтыу
  • Блок файҙалы йөкләмәләр һәм RBC киҫәктәр өсөн полоса киңлеге
  • төбәктәр араһындағы асимметрик бәйләнештәр
  • NAT, бер-береһе менән бәйләнеште кисектереүсе һаҡланыу стенаһы йәки эстафета тәртибе.

Планлау ҡағиҙәһе булараҡ, бер нисә валидаторҙың әйлән-бәйләнешен һәм башҡарыу һәм дискҡа йөкмәтеү ваҡытын ҡаплай торған тиклем оҙайлылыҡ бюджетын ҡуйығыҙ. p95 селтәре RTT инде теләгән p95 commit latency яҡын булһа, маҡсат ысынбарлыҡҡа тап килмәй.

Сираттар һәм инеү сикләүҙәре

Ҡабул итеү һәм сиратҡа ҡуйыу параметрҙары бер-береһенә күпме шартлау баҫымын һеңдерергә мөмкинлеген билдәләй:

  • queue.capacity
  • queue.capacity_per_user
  • queue.transaction_time_to_live_ms
  • генезис транзакция лимиттары, мәҫәлән, максималь ҡултамғалар, инструкциялар, байттар һәм декомпрессланған байттар.
  • p2p сираттағы сикләүҙәр һәм консенсусҡа инеү сикләүҙәре

Юғары сират күләмдәре бер аҙ ваҡытҡа артыҡ йөкләнеүҙе йәшереп ҡала ала, әммә ул тотороҡло етештереүсәнлекте арттырмай.

Һауыт-һаба һәм һаҡлау

Һәр раҫлаусыны үлсәгеҙ, тик лидерҙы ғына түгел:

  • CPU раҫлау, ҡултамғаларҙы тикшереү һәм үтәү ваҡытында ҡәнәғәтләндереү
  • сираттар, фотоһүрәттәр һәм актив RBC сеанстарҙан килгән хәтер баҫымы
  • блок һаҡлау һәм фотоһүрәттәр өсөн диск яҙыу задержкаһы
  • селтәрҙең тапшырыу / ҡабул итеү тығыҙлығы
  • Эш мәшәҡәте менән ҡулланылған осраҡта аппараттың тиҙләтеү параметрҙары

Иң әкрен тауыш биреүҙең раҫлаусыһы селтәрҙең ҡойроҡ latency билдәләй ала.

Прометей сигналдары

Метрик исемдәре профиль төҙөү һәм функциялар йыйылмаһы буйынса үҙгәреүе мөмкин. Тәүҙә узелығыҙҙа /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Йыш ҡына йөкләнеү ваҡытында түбән төшөүе latency spikes аңлата .
RBC баҫымsumeragi_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 commit-latency бюджеттары
    • транзакция ҡатнашмаһы
    • көтөлгән селтәр 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, jitter, юғалтыу һәм биҙәк киңлеге фараздары
  • Транзакция ҡатнашмаһы һәм файҙалы йөк күләме
  • тәҡдим ителгән TPS һәм үтәү ваҡыты
  • ҡабул ителгән/ҡабул ителмәгән TPS
  • p50/p95/p99 commit latency
  • сират тәрәнлеге һәм тығыҙлығы
  • үҙгәрештәрҙе күрһәтеү, хәбәрҙәрҙе төшөрөү, RBC баҫым һәм юғалған файҙалы йөк менән иҫәпләүселәр
  • CPU, иҫтәлек, диск һәм селтәрҙе файҙаланыу бер validator

Был мәғлүмәттәр булмаһа, TPS һанды анекдотик тип һанарға кәрәк.