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 commit latency L -дан төмен, кезектер қуатының 50% -ынан төмен тұрақты және көріністің өзгеруі сирек кездеседіОрындау жұмыс істейді, бірақ жарылу төзімділігі шектеулі
Төмен .Қабылданған өнімділік Y төмен, p95 commit latency exceeds L, кезектер жүгіру кезінде өседі немесе көріністі өзгерту / кері қысым есептегіштер үнемі көтеріледі.Сұралған жұмыс жүктемесі кем дегенде бір бөбекшеден асады

Негізгі ереже кезек бағыты. Егер тапсырылған TPS міндеттемеден үлкен болса TPS және кезек өсуі жалғаса берсе, қысқа үлгіні дұрыс көрінсе де, орналасу артық жүктемеге ие болады.

Нодтар саны мен кворум

Көбiр растаушылар бұзылу толеранттiгiн жақсартады, бірақ үйлестiру, қолтаңбалау және желiлердiң шығынын арттырады. Sumeragi іске асыру:

  • растаушының саны n қате бюджетін f = floor((n - 1) / 3) алады.
  • n >= 4 үшін комиссиялық кворум - 2f + 1
  • n <= 3 үшін барлық куәландырушылар міндетті түрде
  • Бақылаушылар блоктарын синхронизациялайды, бірақ дауыс бермейді, ұсыныс жасамайды немесе жинамайды.
КуәландырушыларБюджет қатесіКворумды қабылдауЖөндеу қабілеті белгісі
1 - 30 практикалық оффлайн босанубарлық растаушыларДаму және шағын сынақтар үшін пайдалы; кез-келген жоғалған растаушы міндеттемелерді тоқтата алады
413Бір қатеге төзімділік үшін ортақ минимум
725Көбейтуші, дауыс беру және тарату трафикі көп
1037Көбейтілген үйлестіру шығындары; желілер мен коллекторларды баптау маңызды

"X түйіндерін" бағалау кезінде дауыс беруді растаушыларды бақылаушылардан бөлектеңіз. Байқаушыларды қосу, әдетте, тексерушілерді қосуға қарағанда арзан тұрады, бірақ байқаушылар әлі күнге дейін блок масқараларын, блок синхрондылығын, дискі мен желілік жолақты тұтынуда.

Әрекетке әсер ететін факторлар

Жұмыс жүктемесінің пішіні

Бір TPS әр транзакцияның не істегеніне байланысты арзан немесе қымбат болуы мүмкін.

  • бір транзакция бойынша нұсқаулар саны
  • Қолтаңбаларды санау және қол қою алгоритмдері
  • транзакцияның байт мөлшері және сынықсыздандырылған пайдалы жүктеме көлемі
  • оқу/жазу қатынасы
  • Метадеректердің мөлшері және активтер операциялары
  • ақылды келісім-шарт, триггер және IVM орындалу құны
  • сұраныс жүктемесі бірдей әріптестерге қарсы жүреді

Кішкентай трансферттік операциялар келісім-шартпен немесе метадеректермен ауыр жұмыс жүктемелері үшін орынды емес.

Келiсiмнің уақыты

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 жинағыштармен қатар топологиясын қосады

Тақырыптың өсуі үлкен немесе аз сенімді желілерде құйрық кешіктірімін азайта алады, бірақ бұл трафикті де арттырады. Осы мәндерді өзгертпестен бұрын жиынтық қолжетімділік пен коллектор телеметриясын кешіктіру және кері қысым өлшемімен салыстырыңыз:

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Жүктіліктің төмендеуі , әдетте , ұзындықтың көтерілуіне себепші болады .
RBC қысымыsumeragi_rbc_store_pressure, sumeragi_rbc_backpressure_deferrals_totalПайдалы жүктi қалпына келтiру немесе сақтау бөбекшелерiне нөлге жатпайтын қысым нүктелері
Кворумды қабылдауsumeragi_commit_signatures_counted, sumeragi_commit_signatures_requiredЕсептелген қолтаңбалар тез арада қажетті кворумға жетуі тиіс .

Егер /v1/sumeragi/status -да ғана метрика бар болса, Prometheus скраппен бірге жүретін артефакттардағы JSON кескінін түсіріңіз.

Болжамдық жұмыс барысы

  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 және топологиялық файл
  • телеметриялық профиль
  • Жабдық, сақтау және OS мәліметтері
  • желі RTT, jitter, loss және bandwidth болжамдары
  • транзакция қоспасы және пайдалы жүктеме мөлшері
  • ұсынылған TPS және жүретін уақыт
  • қабылданды/тандырылды TPS
  • p50/p95/p99 commit latency
  • Кезектің тереңдігі мен толылығы
  • көрініс өзгерістері, жіберілген хабарламалар, RBC қысым және жоғалған пайдалы жүктемелі есептегіштер
  • CPU, әр validator бойынша жады, диск және желі пайдалану

Бұл мәліметтер болмаса, TPS нөмірін анекдоттық деп қарастыру керек.