Қызмет көрсету және өлшемдер
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 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 + 1n <= 3үшін барлық куәландырушылар міндетті түрде- Бақылаушылар блоктарын синхронизациялайды, бірақ дауыс бермейді, ұсыныс жасамайды немесе жинамайды.
| Куәландырушылар | Бюджет қатесі | Кворумды қабылдау | Жөндеу қабілеті белгісі |
|---|---|---|---|
| 1 - 3 | 0 практикалық оффлайн босану | барлық растаушылар | Даму және шағын сынақтар үшін пайдалы; кез-келген жоғалған растаушы міндеттемелерді тоқтата алады |
| 4 | 1 | 3 | Бір қатеге төзімділік үшін ортақ минимум |
| 7 | 2 | 5 | Көбейтуші, дауыс беру және тарату трафикі көп |
| 10 | 3 | 7 | Көбейтілген үйлестіру шығындары; желілер мен коллекторларды баптау маңызды |
"X түйіндерін" бағалау кезінде дауыс беруді растаушыларды бақылаушылардан бөлектеңіз. Байқаушыларды қосу, әдетте, тексерушілерді қосуға қарағанда арзан тұрады, бірақ байқаушылар әлі күнге дейін блок масқараларын, блок синхрондылығын, дискі мен желілік жолақты тұтынуда.
Әрекетке әсер ететін факторлар
Жұмыс жүктемесінің пішіні
Бір TPS әр транзакцияның не істегеніне байланысты арзан немесе қымбат болуы мүмкін.
- бір транзакция бойынша нұсқаулар саны
- Қолтаңбаларды санау және қол қою алгоритмдері
- транзакцияның байт мөлшері және сынықсыздандырылған пайдалы жүктеме көлемі
- оқу/жазу қатынасы
- Метадеректердің мөлшері және активтер операциялары
- ақылды келісім-шарт, триггер және IVM орындалу құны
- сұраныс жүктемесі бірдей әріптестерге қарсы жүреді
Кішкентай трансферттік операциялар келісім-шартпен немесе метадеректермен ауыр жұмыс жүктемелері үшін орынды емес.
Келiсiмнің уақыты
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жинағыштармен қатар топологиясын қосады
Тақырыптың өсуі үлкен немесе аз сенімді желілерде құйрық кешіктірімін азайта алады, бірақ бұл трафикті де арттырады. Осы мәндерді өзгертпестен бұрын жиынтық қолжетімділік пен коллектор телеметриясын кешіктіру және кері қысым өлшемімен салыстырыңыз:
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 | Пайдалы жүктi қалпына келтiру немесе сақтау бөбекшелерiне нөлге жатпайтын қысым нүктелері |
| Кворумды қабылдау | sumeragi_commit_signatures_counted, sumeragi_commit_signatures_required | Есептелген қолтаңбалар тез арада қажетті кворумға жетуі тиіс . |
Егер /v1/sumeragi/status -да ғана метрика бар болса, Prometheus скраппен бірге жүретін артефакттардағы JSON кескінін түсіріңіз.
Болжамдық жұмыс барысы
Сценарийді анықтаңыз:
- растаушының және бақылаушының саны
- консенсус режимі
- мақсат 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және топологиялық файл - телеметриялық профиль
- Жабдық, сақтау және OS мәліметтері
- желі RTT, jitter, loss және bandwidth болжамдары
- транзакция қоспасы және пайдалы жүктеме мөлшері
- ұсынылған TPS және жүретін уақыт
- қабылданды/тандырылды TPS
- p50/p95/p99 commit latency
- Кезектің тереңдігі мен толылығы
- көрініс өзгерістері, жіберілген хабарламалар, RBC қысым және жоғалған пайдалы жүктемелі есептегіштер
- CPU, әр validator бойынша жады, диск және желі пайдалану
Бұл мәліметтер болмаса, TPS нөмірін анекдоттық деп қарастыру керек.