GH GambleHub

Bençmarking we öndürijiligi deňeşdirmek

Gysgaça gysgaça

Bençmarking "wrk-ny 5 minutlap işe girizmek" däl-de, synag. Esasy ýörelgeler:

1. Gipotezany we metrikleri düzüň.

2. Üýtgeýjilere gözegçilik ediň (demir, ýadro, güýç, fon sesi).

3. Ýeterlik maglumatlary (göçürmeler, ynam aralyklary) ýygnaň.

4. Profilini geçiriň - onsuz "näme üçin" düşünip bilmersiňiz.

5. Repro: skriptleri, wersiýalary we artefaktlary düzüň.

Bençmarkyň we işewürlik metrikasynyň maksatlary

Geçirijilik ukyby (throughput): RPS/QPS/CPS, ýazgylar/sek.
Gijä galmak (latency): p50/p95/p99/guýruk dykyzlygy.
Netijeliligi: Cost-per-1k RPS, bir geleşik üçin watt, $/millisekund gowulaşma.
Durnuklylyk: jitter, siklleriň/nodlaryň arasyndaky üýtgewsizlik.
Elastiklik: N × resurs (Amdahl/Gustafson görkezijileri) boýunça görkezijiler nähili masştab edilýär?

Metodologiýa: synag dizaýny

Çaklama: "HTTP/3 bilen Enwoý p95 TTFB-ni şol bir RPS bilen 10-15% azaldar".
Deňeşdirme birligi: demir bildiň/ /instans görnüşi.
A/B-shema: birmeňzeş gurşawda paralel geçmek; ýa-da ABAB/Latyn meýdany.
Gaýtalanmalaryň sany: ≥ 10 gysga + 3 dowamly baha bermek üçin konfigurasiýa üçin uzyn geçişler.
Statistika: mediana, MAD, butstrap bilen ynanç aralyklary; "guýrukly" paýlamalar üçin Mann-Whitney synaglary.
DoE (minimal): bir gezekde bir üýtgeýjini (OVAT) ýa-da 2-3 faktor üçin fraksiýa faktor meýilnamasyny üýtgediň (mysal üçin, TLS profili × HTTP wersiýasy × ýadro).

Üýtgeýänlere we seslere gözegçilik

CPU governor: `performance`; "power save" öçürmek.
Turbo/Throttling: ýygylyklara, temperaturalara we trottlinge gözegçilik etmek (ýogsam ýylylyk ýalan ýeňişler berer).
NUMA/Hyper-Threading: IRQ we prosesleri düzüň ('taskset/numactl'), ýat ýerini ölçäň.
C-states/IRQ balance: sazlamalary düzüň; tor synaglary üçin - belli bir ýadro üçin pin IRQ.
Fon prosesleri: arassa nod, cron/backup/antivirus/updatedb öçürmek.
Tor: MTU/ECN/AQM tarapyndan kesgitlenen durnukly ýollar, kanal flatteriniň ýoklugy.
Maglumatlar: birmeňzeş toplumlar, kardinallyk we paýlanmalar.
Kesh: "sowuk" (birinji geçiş) we "ýyly" (gaýtalanýan) reimesimleri bölüň, aç-açan belläň.

Bellik synplary

1) Mikro-bençmarkalar (funksiýa/algoritm)

Maksat: anyk kody/algoritmi ölçemek.
Gurallar: gurlan bench frameworklary (Go 'testing. B`, JMH, pytest-benchmark).
Düzgünler: JIT gyzdyrmak, millisekundlar → nanosekundlar; GC izolýasiýasy; kesgitlenen seed.

2) Mezo-bençmarki (komponent/hyzmat)

HTTP-serwer, keş, broker, bir ýadro DB.
Gurallar: wrk/wrk2, k6 (açyk model), vegeta, ghz (gRPC), fio, sysbench, iperf3.
Düzgünler: birikmeleriň/faýllaryň, howuzlaryň çäkleri; CPU/IRQ/GC barada hasabat.

3) Makro-bençmarkalar (e2e/haýyş ýoly)

Doly ýol: CDN/edge → proxy → hyzmat → DB/kesh → jogap.
Gurallar: k6/Locust/Gatling + RUM/OTel söwdasy; marşrutlaryň hakyky garyndysy.
Düzgünler: hakykata has ýakyn ("hapa" maglumatlar, daşarky ulgamlaryň laglary), retralar bilen seresaplylyk bilen.

Metrikleri gatlaklara görä ýygnamak

GatlakMetrikler
Müşderi/edgeDNS p95, TLS handshake p95, TTFB, HTTP/2/3 доля
TorRTT/loss/jitter, ECN CE, Goodput, PPS/CPS
TLS/Proxyhandshakes/s, resumption rate, cipher mix
Programmap50/95/99, 5xx/429, GC pauses, threads, queues
Keşhit-ratio by layer, eviction, hot-keys
BDQPS, p95 soraglar, locks, buffer/cache hit, WAL/fsync
DiskIOPS, latency, 4k/64k, read/write mix, fsync cost
GPU/MLthroughput (samples/s), latency, mem BW, CUDA/ROCm util

Synag şablonlary we buýruklary

Tor (TCP/UDP):
bash iperf3 -s # server iperf3 -c <host> -P 8 -t 60 # parallel, stable bandwidth
HTTP-serwer (durnukly ýük, wrk2):
bash wrk2 -t8 -c512 -d5m -R 20000 https://api. example. com/endpoint \
--latency --timeout 2s
Açyk model (k6, arrival-rate):
javascript export const options = {
scenarios: { open: { executor: 'constant-arrival-rate', rate: 1000, timeUnit: '1s',
duration: '10m', preAllocatedVUs: 2000 } },
thresholds: { http_req_failed: ['rate<0. 3%'], http_req_duration: ['p(95)<250'] }
};
Disk (fio, 4k random read):
bash fio --name=randread --rw=randread --bs=4k --iodepth=64 --numjobs=4 \
--size=4G --runtime=120 --group_reporting --filename=/data/testfile
BD (sysbench + PostgreSQL takmynan pikir):
bash sysbench oltp_read_write --table-size=1000000 --threads=64 \
--pgsql-host=... --pgsql-user=... --pgsql-password=... prepare sysbench oltp_read_write --time=600 --threads=64 run
Ýat/CPU (Linux perf + stress-ng):
bash perf stat -e cycles,instructions,cache-misses,L1-dcache-load-misses \
-- <your_binary> --bench

Statistika we tassyklama

Gaýtalamalar: azyndan 10 pogon, outliers (robastno: mediana/MAD).
Ynam aralyklary: p95/p99 we orta üçin 95% CI butstrap.
Effekt-ululyk: CI-ni üýtgetmek (mysal üçin, − 12% [− 9%; − 15%]).
Amaly ähmiýeti: p95-iň CPU-nyň 30% bahasy bilen 10% azalmagy - mynasyp?
Grafikler: paýlamak üçin violin/ECDF, "doýma egri" (RPS → latency).

Dar ýeri profillemek we lokallaşdyrmak

CPU: `perf`, `async-profiler`, eBPF/pyroscope; flamegraph öň we soň.
Alloc/GC: runtime profilleri (Go pprof/Java JFR).
I/O: `iostat`, `blktrace`, `fio --lat_percentiles=1`.
Сеть: `ss -s`, `ethtool -S`, `dropwatch`, `tc -s qdisc`.
БД: `EXPLAIN (ANALYZE, BUFFERS)`, pg_stat_statements, slowlog.
Keş: Top Key, TTL, eviction sebäp.

Hasabat we artefaktlar

Näme ýazmaly:
  • git SHA bilda, ýygnamak/optimizasiýa baýdaklary.
  • Ýadro/tor konfigi (sysctl), sürüjileriň wersiýasy/NIC/firmware.
  • Topologiýa (vCPU/NUMA/HT), governor, temperatura/ýygylyk.
  • Maglumatlar: ululygy, kardinaliýasy, paýlanylyşy.
  • Näme çap etmeli: p50/p95/p99 tablisalar, ýalňyşlyk/sek, throughput, çeşmeler (CPU/RAM/IO), CI.
  • Artefaktlar: geçişiň skriptleri, grafikler, flamegraph, çig JSON/CSV netijeleri, gurşaw teswirnamasy.

Dogruçyl deňeşdirmeler (fair benchmarking)

Birmeňzeş çäklendirijiler (conn pool, keepalive, TLS zynjyrlary, OCSP stapling).
Ylalaşylan wagt/retrailer we HTTP wersiýasy (h2/h3).
Temperatura balansy: deňagramlylyga çenli gyzdyrmak (turbo-güýçli täsir etmezden).
Adalatly keşler: ikisi-de "sowuk" ýa-da ikisi-de "ýyly".
Tor simmetriýasy :/MTU/ECN/AQM.
Wagt býudjeti: DNS/TLS/connect - birmeňzeş hasaplamak ýa-da aýyrmak.

Anti-pattern

Bir geçiş → "netije".
Bir seriýada re regimeimleriň garyşmagy (sowuklaryň bir bölegi, ýylylylaryň bir bölegi).
Açyk internet ýüküniň ýerine ýapyk model → ýalan "durnuklylyk".
Hasaba alynmadyk retralar → "RPS ösýär" goşa we kaskad bahasy 5xx.
Dürli demirlerde/ýadrolarda/energohemalarda deňeşdirme.
Profiliň ýoklugy → "kör" optimizasiýasy.
Profilleri analiz etmezden GC/heap bilen oýun → guýruk regressiýasy.

Amaly reseptler

Iň az benç paýlaýjynyň ädimleri:

1. Gurşawy düzdür (skript 'env _ capture. sh`).

2. Gyzdyrmak (5-10 minut), ýygylygy/temperaturany düzetmek.

3. Gysga + 1 uzak aralyk N gaýtalamak.

4. Profilleri iň ýokary derejeden aýyrmak (CPU/alloc/IO).

5. CI/grafikleri sanamak, artefaktlary ýygnamak.

6. Karar: gipotezany kabul etmek/ret etmek, indiki ädimleri emele getirmek.

Kuwwat eğrisi (capacity curve):
  • RPS ädimleri (10% ädim) → r95/ýalňyşlyklary düzedýäris → "dyz" tapýarys.
  • RPS → latency we RPS → CPU grafigini düzýäris: indiki% -iň çägini we bahasyny görýäris.

iGaming/fintech üçin aýratynlyklar

Millisekundyň bahasy: $ -effekt boýunça gowulaşmalary tertipläň (öwrülişik/akym/PSP çäkleri).
Piki (oýunlar/ýaryşlar): TLS/CDN/kesh bilen gyzdyrylan spike + plateau bençmarklary.
Tölegler/PSP: sandbox-çäkleri, idempotentligi we zaýalanmalara bolan reaksiýalary bilen end-to-end ölçäň; Time-to-Wallet proxy metrleri bilen ýazyň.
Antifrod/bot süzgüçleri: makro-banç düzgünleriniň profilini goşuň (false-positive-rate, latency goşundy).
Leadersolbaşçylar/jekpotlar: gyzgyn açarlary/reýtingleri, blokirlemeleri, atomlary synagdan geçiriň.

Bençmarking barlag sanawy

  • Üstünlik üçin gipoteza/metrika/kriteriýa.
  • Üýtgeýänlere gözegçilik etmek (/NUMA/IRQ/tor/keş).
  • Geçmegiň meýilnamasy (göçürmeler, dowamlylygy, gyzdyrylmagy).
  • "Sowuk/ýyly" reimesimleri bölmek.
  • Profillemek (CPU/alloc/IO/DB).
  • Statistika: CI, möhüm synaglar, grafikler.
  • Ammardaky artefaktlar we repro skriptleri (stend üçin IaC).
  • "Gowulaşdyrmagyň bahasy" we teklipleri bolan hasabat.
  • Optimizasiýalardan soň retest (regression perf).

Kiçi hasabat (şablon)

Maksat: CPU ösüşi bolmazdan p95 API-ni 15% azaltmak> 10%.
Usul: A/B, k6 open-model 1k rps, 10 × 3 pas, warm cache.
Jemi: p95 − 12% [− 9%; − 15%], CPU + 6%, 5xx üýtgemez.
Flamegraph: ↓ JSON serializasiýa (− 30% CPU), dar ýer DB-e geçdi.
Çözgüt: optimizasiýany kabul etmek; indiki ädim - DB soraglaryny batching.
Artefaktlar: grafikler, profiller, konfigalar, çig JSON.

Jemi

Gowy bençmarking berk usulyýet + dogruçyl deňeşdirmeler + statistik tassyklama + profillemek + köpeltmek. Gipotezalary goýuň, daşky gurşawy dolandyryň, ynamly aralyklary hasaplaň, artefaktlary çap ediň we gowulaşmagyň bahasy barada karar beriň. Şeýlelik bilen, tanyşdyryş dabarasynda owadan san däl-de, platformanyň tizliginiň we öňünden aýdylýanlygynyň hakyky ýokarlanmagyny alarsyňyz.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.