Ажил гүйцэтгэл, үзүүлэлт
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Телеметрийн үзэгдэл конфигуруулсан профилээс хамаарна. Та /metrics хэрэгтэй үед extended ашиглаж, та Sumeragi операторын дэлгэрэнгүй замыг шаардлагатай үед туршилтын явцад full ашиглаж байна.
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 | Зөвлөлдөх зардлыг нэмэгдүүлэх; сүлжээ, цуглуулчийн тохируулалт илүү чухал юм |
"X цэгцүүдийг" үнэлэхэд санал өгөх баталгаажуулагчдыг ажиглагчдаас ангижруулдаг. Байцаагчид нэмэх нь одоогоор баталгаажуулгуулагчдыг нэмэхээс бага өртөгтэй байдаг боловч ажиглагчид хэвээрээ блок яриа, блок синхрон, диск, сүлжээний хувилбар өргөн хүрээг хэрэглэдэг.
Хөдөлмөрийн гүйцэтгээнд нөлөөлөх хүчин зүйлүүд
Ажлын ачааллын хэлбэр
Нэгдсэн TPS нь аливаа гүйлгээний үйл ажиллагааг харгалзан хямд эсвэл үнэтэй байж болно.
- гүйлгээний нэгтгэлийн заавар тоо
- гарын үсэгчдийн тоо болон гарын үсгийн алгоритмүүд
- гүйлгээний байтын хэмжээ, дэслэгдсэн ашиг ачааллын хэмжээ
- унших/ бичих харьцаа
- Metadata-ийн хэмжээ, хөрөнгийн үйл ажиллагаа
- ухаалаг гэрээ, үүсгэн байгуулагч, гүйцэтгэх өртөг 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, топологийн хувилбар - телеметрийн профил
- Хэдвар, хадгаламж, OS мэдээлэл
- net RTT, jitter, loss, bandwidth гэж үзвэл
- гүйлгээний нийлүүлэлтийн хэмжээ, ашигтай ачаалал
- санал болгож буй TPS болон гүйлгээний хугацаа
- хүлээн зөвшөөрөгдсөн/дутагдсан TPS
- p50/p95/p99 үүрэг гүйцэтгэх хориотой
- шугамны гүнзгийрэл, дүүрэн байдал
- үзэсгэлэнгийн өөрчлөлт, хаягдсан мэдээ, RBC даралт, хэрэглээний ачааллын алдагдалтай тооны систем
- CPU, хяналт, диск, сүлжээний ашиглалт нь баталгаажуулагчийн хувьд
Эдгээр дэлгэрэнгүй мэдээллийг үгүйсгэхгүй бол TPS дугаар нь анекдотик гэж үзэж болно.