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

Телеметрийн үзэгдэл конфигуруулсан профилээс хамаарна. Та /metrics хэрэгтэй үед extended ашиглаж, та Sumeragi операторын дэлгэрэнгүй замыг шаардлагатай үед туршилтын явцад full ашиглаж байна.

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Зөвлөлдөх зардлыг нэмэгдүүлэх; сүлжээ, цуглуулчийн тохируулалт илүү чухал юм

"X цэгцүүдийг" үнэлэхэд санал өгөх баталгаажуулагчдыг ажиглагчдаас ангижруулдаг. Байцаагчид нэмэх нь одоогоор баталгаажуулгуулагчдыг нэмэхээс бага өртөгтэй байдаг боловч ажиглагчид хэвээрээ блок яриа, блок синхрон, диск, сүлжээний хувилбар өргөн хүрээг хэрэглэдэг.

Хөдөлмөрийн гүйцэтгээнд нөлөөлөх хүчин зүйлүүд

Ажлын ачааллын хэлбэр

Нэгдсэн TPS нь аливаа гүйлгээний үйл ажиллагааг харгалзан хямд эсвэл үнэтэй байж болно.

  • гүйлгээний нэгтгэлийн заавар тоо
  • гарын үсэгчдийн тоо болон гарын үсгийн алгоритмүүд
  • гүйлгээний байтын хэмжээ, дэслэгдсэн ашиг ачааллын хэмжээ
  • унших/ бичих харьцаа
  • Metadata-ийн хэмжээ, хөрөнгийн үйл ажиллагаа
  • ухаалаг гэрээ, үүсгэн байгуулагч, гүйцэтгэх өртөг 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Томоожилтын үеэр унасан нь ихэвчлэн хажуулалтын түвшин нэмэгддэг .
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 үүрэг гүйцэтгэх хугацааны төсөв
    • гүйлгээний халуун
    • хүлээгдэж буй сүлжээ 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 мэдээлэл
  • net RTT, jitter, loss, bandwidth гэж үзвэл
  • гүйлгээний нийлүүлэлтийн хэмжээ, ашигтай ачаалал
  • санал болгож буй TPS болон гүйлгээний хугацаа
  • хүлээн зөвшөөрөгдсөн/дутагдсан TPS
  • p50/p95/p99 үүрэг гүйцэтгэх хориотой
  • шугамны гүнзгийрэл, дүүрэн байдал
  • үзэсгэлэнгийн өөрчлөлт, хаягдсан мэдээ, RBC даралт, хэрэглээний ачааллын алдагдалтай тооны систем
  • CPU, хяналт, диск, сүлжээний ашиглалт нь баталгаажуулагчийн хувьд

Эдгээр дэлгэрэнгүй мэдээллийг үгүйсгэхгүй бол TPS дугаар нь анекдотик гэж үзэж болно.