เบเบฒเบเบงเบดเปเบเบฒเบฐเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบฅเบฐเบเบฒเบเบเบฑเบเปเบเปเบเปเบเบฑเบเปเบเบทเปเบญเบเบกเบทเบเบตเปเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบเบเบฒเบเบเบงเบเบชเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบกเบเบฒเบเบเบฐเบเบดเบเบฑเบเบชเปเบฒเบฅเบฑเบเบฅเบนเบเบเปเบฒ.
เบเบฒเบเบงเบดเปเบเบฒเบฐเบเบฐเบชเบดเบเบเบดเบเบฒเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบงเบเบเบฒเปเบเบดเปเบเบเปเปเบเบปเบเบเปเบญเบเปเบเปเบเบเบเบฒเบเปเบเบเบเบฒเบเบเปเบฒเปเบเปเบงเบดเบเบตเบเบฒเบเบงเบดเบเบฐเบเบฒเบชเบฒเบเปเบเบเบฒเบเบเบปเบเบฅเบญเบเบเบฒเบเบเบฑเบเปเบเปเบเบเบฒเบเบเบปเบเบฅเบญเบ. เบเบปเบเบเบงเบฒเบกเบเบตเปเบเปเบฒเบเบปเบเบงเบดเบเบตเบเบฒเบเบเบปเปเบงเปเบเปเบเบเบฒเบเบงเบดเปเบเบฒเบฐเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบฅเบฐเบเบฒเบเบเบฑเบเปเบเปเบ, เบเบฒเบเบเปเบฒเปเบเป Go webserver เปเบเบฑเบเบเบปเบงเบขเปเบฒเบ.
Go เปเบกเปเบเบเบตเปเบเบเบชเบฐเปเบเบฒเบฐเบขเบนเปเบเบตเปเบเบตเปเปเบเบฒเบฐเบงเปเบฒเบกเบฑเบเบกเบตเปเบเบทเปเบญเบเบกเบทเบชเปเบฒเบเปเบเบฃเปเบเบฅเป pprof เปเบโเบซเปเบญเบโเบชเบฐโเบซเบกเบธเบโเบกเบฒเบโเบเบฐโเบเบฒเบโ.

เบเบธเบเบเบฐเบชเบฒเบ
เปเบซเปเบชเปเบฒเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบชเบฐเบซเบผเบธเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบงเบดเปเบเบฒเบฐเปเบเบเบชเปเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ. เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฐเบเบฒเบเบฒเบกเปเบเปเบเปเปเบกเบนเบเบเบฒเบเบขเปเบฒเบเปเบเบทเปเบญเบเบฑเบเบชเบดเบเปเบเปเบเบเบเบตเปเบเบฐเปเบฎเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบเปเบเบเบญเบตเบเปเบชเป intuition เบซเบผเบทเบเบฒเบเบเบฒเบเปเบเบปเบฒ. เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบฎเบฑเบ:
- เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบปเบเบเบญเบเปเบเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบ (เบเบงเบฒเบกเบเปเบญเบเบเบฒเบ);
- เบเบงเบเปเบฎเบปเบฒเบเบดเบเปเบฅเปเบเบฒเบเปเบซเบผเบเบเบฒเบเปเบฎเบฑเบเบเบธเบฅเบฐเบเปเบฒเบชเปเบฒเบฅเบฑเบเบฅเบฐเบเบปเบ;
- เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบปเบเบชเบญเบ (เบชเปเบฒเบเบเปเปเบกเบนเบ);
- เบเบงเบเปเบฎเบปเบฒเบชเบฑเบเปเบเบเปเบซเบฑเบ;
- เบเบงเบเปเบฎเบปเบฒเบงเบดเปเบเบฒเบฐ - เบกเบตเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเบเป?
- เบเบงเบเปเบฎเบปเบฒเบเบฑเปเบเบกเบฑเบเบเบถเปเบเบเบฒเบเบงเบดเบเบฐเบเบฒเบชเบฒเบ, เปเบฎเบฑเบเปเบซเปเบชเบปเบกเบกเบธเบเบเบดเบเบฒเบ;
- เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเบเบฅเบญเบเปเบเบทเปเบญเบเบปเบเบชเบญเบเบชเบปเบกเบกเบธเบเบเบดเบเบฒเบเบเบตเป.

เบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒ HTTP Server เบเปเบฒเบเบเบฒเบ
เบชเปเบฒเบฅเบฑเบเบเบปเบเบเบงเบฒเบกเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ HTTP เบเบฐเบซเบเบฒเบเบเปเบญเบเปเบ Golang. เบฅเบฐเบซเบฑเบเบเบฑเบเปเบปเบเบเบฒเบเบเบปเบเบเบงเบฒเบกเบเบตเปเบชเบฒเบกเบฒเบเบเบปเบเปเบเป .
เบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบตเปเบเบทเบเบงเบดเปเบเบฒเบฐเปเบกเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ HTTP เบเบตเปเบชเปเบฒเบซเบผเบงเบ Postgresql เบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเปเบฒเบฎเปเบญเบเบเป. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบกเบต Prometheus, node_exporter เปเบฅเบฐ Grafana เบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบฑเบเบเปเบฒเปเบฅเบฐเบชเบฐเปเบเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบฅเบฐเบฅเบฐเบเบปเบ metrics.

เปเบเบทเปเบญเบเบงเบฒเบกเบเปเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเบดเบเบฒเบฅเบฐเบเบฒเบงเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเบฐเบซเบเบฒเบเบเบฒเบกเปเบเบงเบเบญเบ (เปเบฅเบฐเบเบฒเบเบเบดเบเปเบฅเปเบเปเบฒเบ) เปเบเปเบฅเบฐเบเปเบฅเบดเบเบฒเบเปเบฅเบฐเบเบฒเบเบเปเปเบกเบนเบเบเบทเบเบเปเบฒเปเบเปเบเปเบฎเปเบงเบกเบเบฑเบ:

เบเบฒเบเบเปเบฒเบเบปเบเปเบเบปเปเบฒเบซเบกเบฒเบ
เปเบเบเบฑเปเบเบเบญเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบชเบดเบเปเบเบเปเบฝเบงเบเบฑเบเปเบเบปเปเบฒเบซเบกเบฒเบ. เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฒเบเบฒเบกเบงเบดเปเบเบฒเบฐเบซเบเบฑเบ? เบเบงเบเปเบฎเบปเบฒเบเบฐเบฎเบนเปเปเบเปเปเบเบงเปเบเบงเปเบฒเปเบงเบฅเบฒเปเบเบเบตเปเบเบฐเบชเบดเปเบเบชเบธเบ? เปเบเบเบปเบเบเบงเบฒเบกเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบดเบเบเบฐเบเบฒเบเบฒเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบกเบตเบฅเบนเบเบเปเบฒเปเบฅเบฐเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบ 10 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเบงเบดเบเบฒเบเบต.
ะ เบงเบดเบเบตเบเบฒเบเปเบฅเบทเบญเบเปเบฅเบฐเบเบฒเบเบชเปเบฒเบเปเบเบเบเปเบฒเบฅเบญเบเปเบเปเบเบทเบเบเบถเบเบชเบฒเบซเบฒเบฅเบทเบขเปเบฒเบเบฅเบฐเบญเบฝเบ. เปเบซเปเปเบฎเบฑเบเปเบเบเบเบฝเบงเบเบฑเบเปเบฅเบฐเบชเปเบฒเบเปเบเบเบเปเบฒเบฅเบญเบ:
- Latency: 99% เบเบญเบเบเบฒเบเบฎเปเบญเบเบเปเบเบงเบเบเบฐเบชเปเบฒเปเบฅเบฑเบเปเบเบซเบเปเบญเบเบเบงเปเบฒ 60ms;
- เบเปเบฒเปเบเปเบเปเบฒเบ: เบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบงเบเปเบเปเบเปเบฒเบเบงเบเปเบเบดเบเบเปเบฒเปเบชเบธเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบดเบเบงเปเบฒเปเบเบฑเบเปเบเปเบเปเบขเปเบฒเบเบชเบปเบกเปเบซเบเบชเบปเบกเบเบปเบ. เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเปเบเบตเปเบกเบเบฒเบเบชเบปเปเบเบเปเบฒเบ;
- เบเบฒเบเบงเบฒเบเปเบเบเบเบงเบฒเบกเบญเบฒเบเบชเบฒเบกเบฒเบ: เบฎเบฝเบเบฎเปเบญเบเปเบซเปเบกเบตเบเบงเบฒเบกเปเบเบปเปเบฒเปเบเปเบฅเบฐเปเบญเบเบฐเบชเบฒเบเบเปเบฒเบเบงเบเบเบปเบงเบขเปเบฒเบเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบตเปเบเบฐเบเปเบญเบเบเปเบฒเปเบเบตเบเบเบฒเบ, เบฅเบงเบกเบเบฑเบเบเบฒเบเบเปเบฒเบเบฒเบเบเบญเบเบเบฐเบซเบเบฒเบเปเบเบเบฅเบงเบก, เปเบฅเบฐเบเปเบฒเบเบงเบเบเบปเบงเบขเปเบฒเบเบเบตเปเบเปเบญเบเบเบฒเบเปเบเบทเปเบญเบเบญเบเบชเบฐเบซเบเบญเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเปเบเบทเปเบญเบเบเบปเปเบเปเบฅเบฐเบเบฒเบเบชเบฐเบซเบเบญเบ. .
Latency เบญเบฒเบเบเบฐเบเปเบญเบเบเบฒเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบญเบเปเบซเบเบทเบญเบเบฒเบเบเบฒเบเบงเบดเปเบเบฒเบฐ, เปเบเปเบเบฒเบเบชเบปเปเบเบเปเบฒเบเบขเปเบฒเบเบเบฐเปเบเปเบเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบงเบดเปเบเบฒเบฐ. เปเบกเบทเปเบญเบเปเบฒเปเบเปเบเบฐเบเบงเบเบเบฒเบ SRE SLO, เบเบฒเบเบฎเปเบญเบเบเปเบเบฒเบเบเบฑเบเบเปเบฒเปเบกเปเบเบกเบฒเบเบฒเบเบฅเบนเบเบเปเบฒเบซเบผเบทเบเบธเบฅเบฐเบเบดเบ, เปเบเบฑเบเบเบปเบงเปเบเบเปเบเบเปเบเบปเปเบฒเบเบญเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบ. เปเบฅเบฐเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฐเบเบดเบเบฑเบเบเบฑเบเบเบฐเบเบตเปเบเบฑเปเบเปเบเปเปเบฅเบตเปเบกเบเบปเปเบเปเบเบเบเปเปเบกเบตเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเป!
เบเบฒเบเบเบฑเปเบเบเปเบฒเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบฒเบเบเบปเบเบชเบญเบ
เบเปเบงเบเบเบฒเบเบเปเบงเบเปเบซเบผเบทเบญเบเบญเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบฒเบเบเบปเบเบชเบญเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบชเบฒเบกเบฒเบเบเบฑเบเบงเบฒเบเบเบฒเบเปเบซเบผเบเบเบตเปเบงเบฑเบเปเบเบเบขเบนเปเปเบเบฅเบฐเบเบปเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ. เบชเปเบฒเบฅเบฑเบเบเบฒเบเบงเบดเปเบเบฒเบฐ, เบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบญเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเปเบงเบฑเบเบเบฐเบเบทเบเบชเปเบฒเบเบเบทเปเบ.
เบเบฒเบเปเบซเบผเบเบเบธเบฅเบฐเบเปเบฒ
เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเปเบเป เปเบเบทเปเบญเบชเปเบฒเบเบญเบฑเบเบเบฒเบเบฒเบเบฎเปเบญเบเบเป HTTP เปเบเบเบเปเบฒเบเบปเบเปเบญเบเบเบปเบเบเปเบงเบฒเบขเบธเบเปเบเบปเบฒ:
$ make load-test LOAD_TEST_RATE=50
echo "POST http://localhost:8080" | vegeta attack -body tests/fixtures/age_no_match.json -rate=50 -duration=0 | tee results.bin | vegeta reportเบเบฒเบเบชเบฑเบเปเบเบ
เบเบฒเบเปเบซเบผเบเบเบธเบฅเบฐเบเบณเบเบฐเบเบทเบเบเบณเปเบเปเปเบเปเบงเบฅเบฒเปเบฅเปเบ. เบเบญเบเปเบซเบเบทเบญเปเบเบเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ (เบเปเบฒเบเบงเบเบเบฒเบเบฎเปเบญเบเบเป, latency เบเบญเบเบชเบฐเบซเบเบญเบ) เปเบฅเบฐเบฅเบฐเบเบปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบ (เบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ, CPU, IOPS) metrics, เบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ profileing เบเบฐเปเบเปเบฎเบฑเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบทเปเบญเปเบเบปเปเบฒเปเบเบเปเบญเบเบเบตเปเบกเบฑเบเบกเบตเบเบฑเบเบซเบฒเปเบฅเบฐเบงเบดเบเบตเบเบฒเบเปเบเปเปเบงเบฅเบฒ CPU.
เบเบฒเบเบชเปเบฒเบเปเบเบฃเปเบเบฅเป
Profiling เปเบกเปเบเบเบฐเปเบเบเบเบญเบเบเบฒเบเบงเบฑเบเปเบเบเบเบตเปเบเปเบงเบเปเบซเปเบเปเบฒเบเปเบซเบฑเบเบเปเบญเบเบเบตเปเปเบงเบฅเบฒ CPU เปเบเปเบเปเบงเบฅเบฒเบเบตเปเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเปเบฒเบฅเบฑเบเปเบฎเบฑเบเบงเบฝเบ. เบกเบฑเบเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเปเบเปเบขเปเบฒเบเปเบเปเบเบดเบเบงเปเบฒเบเปเบญเบเปเบเปเบฅเบฐเปเบงเบฅเบฒเบเบญเบเปเบเปเบเบเปเบเบตเปเบเปเปเบงเบฅเบฒเบซเบผเบฒเบเบเบฒเบเปเบ:

เบเปเปเบกเบนเบเบเบตเปเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบงเบดเปเบเบฒเบฐเปเบเบทเปเบญเปเบซเปเบกเบตเบเบงเบฒเบกเปเบเบปเปเบฒเปเบเบเปเบฝเบงเบเบฑเบ CPU เบเบตเปเปเบชเบเปเบงเบฅเบฒเปเบฅเบฐเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบตเปเบเปเปเบเปเบฒเปเบเบฑเบเบเบตเปเบเบทเบเบเบฐเบเบดเบเบฑเบ. Go (pprof) เบชเบฒเบกเบฒเบเบชเปเบฒเบเปเบเบฃเปเบเบฅเปเปเบฅเบฐเบชเบฐเปเบเบเบเบฒเบเปเบซเปเปเบเบปเบฒเปเบเบปเปเบฒเปเบเบฑเบเบเบฒเบเปเบเปเบเบเปเบเปเบเบธเบเบกเบฒเบเบเบฐเบเบฒเบเบเบญเบเปเบเบทเปเบญเบเบกเบท. เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเปเบฒเปเบเปเปเบฅเบฐเบเบนเปเบกเบทเบเบฒเบเบเบดเบเบเบฑเปเบเบเบญเบเบเบงเบเปเบเบปเบฒเบเปเปเบกเบฒเปเบเบเบปเบเบเบงเบฒเบก.
เบเบฒเบโเบเบฐโเบเบดโเบเบฑเบโ, เบเบฒเบโเบชเบฑเบโเปเบเบโเบเบฒเบโ, เบเบฒเบโเบงเบดโเปเบเบฒเบฐโ.
เปเบซเปเปเบฎเบฑเบเบเบฒเบเบเบปเบเบฅเบญเบ. เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฐเบเบดเบเบฑเบ, เบชเบฑเบเปเบเบเปเบฅเบฐเบงเบดเปเบเบฒเบฐเบเบปเบเบเปเบงเบฒเบเบงเบเปเบฎเบปเบฒเบเปเปเบเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ. เปเบซเปเบเบงเบเปเบฎเบปเบฒเปเบฅเบทเบญเบเปเบญเบปเบฒเบกเบนเบเบเปเบฒเบเบฒเบเปเบซเบผเบเบเปเปเบฒเปเบเบเบเบปเบเปเบญเบเปเบเบทเปเบญเบเปเบฒเปเบเปเบกเบฑเบเปเบเบทเปเบญเปเบซเปเปเบเปเบเบปเบเบเบญเบเบเบฒเบเบชเบฑเบเปเบเบเบเบฑเปเบเบเปเบฒเบญเบดเบ. เปเบเปเบเปเบฅเบฐเบเบฑเปเบเบเบญเบเบเปเปเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบตเปเบกเบเบฒเบเปเบซเบผเบเบเปเบงเบเบเบฑเบเปเบเบเบฒเบเบเบฑเบเบเบฐเบซเบเบฒเบเบเบตเปเปเบเปเบเบญเบ, เปเบฅเบทเบญเบเบเปเบงเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบฒเบเบขเปเบฒเบ. เปเบเปเบฅเบฐเปเบฅเปเบเบเบฒเบเบเบปเบเบชเบญเบเบเบฒเบเปเบซเบผเบเปเบกเปเบเบเบฐเบเบดเบเบฑเบเบเปเบงเบเบเปเบฒเบเบงเบเบเบญเบเบเบฒเบเบฎเปเบญเบเบเปเบเบฑเบ: make load-test LOAD_TEST_RATE=X.
50 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเบงเบดเบเบฒเบเบต

เปเบญเบปเบฒเปเบเปเบชเปเบเบฑเบเบชเบญเบเบเบฒเบเปเบเบดเบ. เปเบเบทเปเบญเบเบเปเบฒเบเปเบเบดเบเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบตเบเบเบฒเบ 50 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเบงเบดเบเบฒเบเบต (เบกเบฑเบเบเบดเบ) เปเบฅเบฐเปเบเบทเปเบญเบเบเบงเบฒเปเบเบดเบเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเปเบฅเบเบฐเปเบงเบฅเบฒเบเบญเบเปเบเปเบฅเบฐเบเปเบฒเบฎเปเบญเบเบเป. เบเบฑเบเบชเบญเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเปเบงเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเปเบเบดเปเบเปเบฅเบฐเบงเบดเปเบเบฒเบฐเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบขเบนเปเปเบเบเบญเบเปเบเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบซเบผเบทเบเปเป. เปเบชเบฑเปเบเบชเบตเปเบเบเบขเบนเปเปเบเปเบชเบฑเปเบเบชเบฐเปเบเบ HTTP Request Latency เบชเบฐเปเบเบ SLO เบเบตเป 60ms. เปเบชเบฑเปเบเบชเบฐเปเบเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบขเบนเปเบเปเปเบฒเบเบงเปเบฒเปเบงเบฅเบฒเบเบญเบเบชเบฐเบซเบเบญเบเบชเบนเบเบชเบธเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ.
เปเบซเปเปเบเบดเปเบเบเปเบฒเบเบเปเบฒเปเบเปเบเปเบฒเบ:
10000 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเบงเบดเบเบฒเบเบต / 50 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ = 200 เปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ + 1
เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบชเบฒเบกเบฒเบเบเบฑเบเบเบธเบเบเบปเบงเปเบฅเบเบเบตเป.
500 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเบงเบดเบเบฒเบเบต
เบชเบดเปเบเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบเบซเบผเบฒเบเปเบฅเบตเปเบกเปเบเบตเบเบเบทเปเบเปเบกเบทเปเบญเบเบฒเบเปเบซเบผเบเปเบเปเปเบเบดเบ 500 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเบงเบดเบเบฒเบเบต:

เบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบ, เปเบเบเบฒเบเบเปเบฒเบเปเบเบดเบเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบดเปเบเบงเปเบฒเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเปเบฒเบฅเบฑเบเบเบฑเบเบเบถเบเบเบฒเบเปเบซเบผเบเบเบปเบเบเบฐเบเบด. เบเปเบฒเบเปเปเปเบกเปเบเบเปเบฅเบฐเบเบต, เบกเบตเบเบฑเบเบซเบฒเบขเบนเปเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบตเปเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเปเบฒเบฅเบฑเบเปเบฅเปเบเบขเบนเป. เปเบชเบฑเปเบเบชเบฐเปเบเบเบเบฒเบเบเบญเบเบชเบฐ เปเบญเบ เบเบตเปเบขเบนเปเบเปเบฒเบเบเบงเบฒเปเบเบดเบ, เบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒ 500 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเบงเบดเบเบฒเบเบตเปเบฎเบฑเบเปเบซเปเบเบฒเบเบเบญเบเปเบเปเบเบฑเบเบเปเบฒ 25-40ms. เปเบเบตเปเบเบฑเบเบเบต 99 เบเบฑเบเบเปเบเบตเบเบฑเบ 60ms SLO เบเบตเปเปเบฅเบทเบญเบเปเบงเปเบเปเบฒเบเปเบเบดเบ.
เปเบเปเบเปเบเบญเบเบเปเบฒเปเบเปเบเปเบฒเบ:
10000 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเบงเบดเบเบฒเบเบต / 500 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ = 20 เปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ + 1
เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเบเบฑเบเบเบธเบเปเบเป.
1000 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเบงเบดเบเบฒเบเบต

เบเบฒเบเปเบเบตเบเบเบปเบงเบเบตเปเบเบดเปเบเปเบซเบเป! เบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒเบกเบฑเบเบเปเบฒเปเบเบตเบเบเบฒเบ 1000 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเบงเบดเบเบฒเบเบต, เปเบเปเบเบญเบเปเบเบเบเปเบฒเบเบฑเบ latency เปเบเปเบเบทเบเบฅเบฐเปเบกเบตเบเปเบเบ SLO. เบเบตเปเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเปเปเบเปเบชเบฑเปเบ p99 เปเบเปเบชเบฑเปเบเบเบฃเบฒเบเบเบงเบฒเปเบเบดเบ. เปเบเบดเบเบงเปเบฒเบเบฐเบกเบตเบเบงเบฒเบกเบเบดเบเบเบตเปเบงเปเบฒเปเบชเบฑเปเบ p100 เปเบกเปเบเบชเบนเบเบเบงเปเบฒเบซเบผเบฒเบ, เบเบงเบฒเบกเบฅเปเบฒเบเปเบฒเบเบตเปเปเบเปเบเบดเบเปเบกเปเบเบชเบนเบเบเบงเปเบฒเบฅเบฐเบเบฑเบเบชเบนเบเบชเบธเบเบเบญเบ 60ms. เปเบซเปเบเบงเบเปเบฎเบปเบฒเปเบเบปเปเบฒเปเบเปเบ profileing เปเบเบทเปเบญเบเบญเบเบซเบฒเบชเบดเปเบเบเบตเปเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบฎเบฑเบเปเบเป.
เบเบฒเบเบชเปเบฒเบเปเบเบฃเปเบเบฅเป
เบชเปเบฒเบฅเบฑเบ profileing, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบปเบเบเบฒเบเปเบซเบผเบเปเบเบฑเบ 1000 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเบงเบดเบเบฒเบเบต, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเป pprof เปเบเบทเปเบญเปเบเบฑเบเบเปเบฒเบเปเปเบกเบนเบเปเบเบทเปเบญเบเบญเบเบซเบฒเบเปเบญเบเบเบตเปเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบเปเปเบงเบฅเบฒ CPU. เบเบตเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเปเบเบเบเบฒเบเปเบเบตเบเปเบเปเบเบธเบเบชเบดเปเบเบชเบธเบ HTTP pprof, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเบฒเบเปเบเปเบเบฒเบเปเบซเบผเบ, เบเบฑเบเบเบถเบเบเบปเบเปเบเปเบฎเบฑเบเปเบเบเปเบเป curl:
$ curl http://localhost:8080/debug/pprof/profile?seconds=29 > cpu.1000_reqs_sec_no_optimizations.profเบเบปเบเปเบเปเบฎเบฑเบเบชเบฒเบกเบฒเบเบชเบฐเปเบเบเปเบเปเปเบเบฑเปเบเบเบตเป:
$ go tool pprof -http=:12345 cpu.1000_reqs_sec_no_optimizations.prof
เปเบชเบฑเปเบเบชเบฐเปเบเบเบชเบฐเปเบเบเบงเปเบฒเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบเปเปเบงเบฅเบฒ CPU เบขเบนเปเปเบช เปเบฅเบฐเปเบเบปเปเบฒเปเบ. เบเบฒเบเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบฒเบ :
เปเบเบ X เปเบกเปเบเบเบฐเบเบฒเบเบญเบเบเปเปเบกเบนเบ stack, เบเบฑเบเบฎเบฝเบเบเบฒเบกเบเบปเบงเบญเบฑเบเบชเบญเบ (เบเบตเปเบเปเปเปเบกเปเบเปเบงเบฅเบฒ), เปเบเบ Y เบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบเบงเบฒเบกเปเบฅเบดเบเบเบญเบ stack, เบเบฑเบเบเบฒเบเบชเบนเบเบขเบนเป [เปเบเบดเบ]. เปเบเปเบฅเบฐเบชเบตเปเบซเบฅเปเบฝเบกเปเบเบฑเบเบเบญเบ stack. เบเบญเบเบเบงเปเบฒเบเบเบถเปเบ, เบกเบฑเบเบกเบฑเบเบเบฐเบกเบตเบขเบนเปเปเบ stacks เบซเบผเบฒเบ. เบชเบดเปเบเบเบตเปเบขเบนเปเปเบเบดเบเบชเบธเบเปเบฅเปเบเบขเบนเปเปเบ CPU, เปเบฅเบฐเบชเบดเปเบเบเบตเปเบขเบนเปเบเปเบฒเบเบฅเบธเปเบกเบเบตเปเปเบกเปเบเบญเบปเบเบเบฐเบเบญเบเบเบญเบเปเบเบฑเบเบเปเบญเบ. เบชเบตเบเบปเบเบเบฐเบเบดเปเบฅเปเบงเบเปเปเบกเบตเบเบงเบฒเบก เปเบฒเบ เบซเบเบฑเบ, เปเบเปเบเบทเบเปเบฅเบทเบญเบเปเบเบเบชเบธเปเบกเปเบเบทเปเบญเปเบเบเบเบงเบฒเบกเปเบเบเบเปเบฒเบเบเบญเบเบเบญเบ.
เบเบฒเบเบงเบดเปเบเบฒเบฐ - hypothesis
เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบชเบธเบกเปเบชเปเบเบฒเบเบเบฐเบเบฒเบเบฒเบกเบเบญเบเบซเบฒ CPU เบเบตเปเปเบชเบเปเบงเบฅเบฒ. เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบญเบเบซเบฒเปเบซเบผเปเบเบเปเปเบกเบนเบเบเบตเปเปเบซเบเปเบเบตเปเบชเบธเบเบเบญเบเบเบฒเบเปเบเปเบเปเบฒเบเบเบตเปเบเปเปเบกเบตเบเบฐเปเบซเบเบเปเบฅเบฐเปเบญเบปเบฒเบเบงเบเบกเบฑเบเบญเบญเบ. เบเบต, เปเบเบทเปเบญเบเบเบฒเบเปเบเบฃเปเบเบฅเปเบเบฑเปเบเปเบเบตเบเปเบเบตเบเปเบซเปเปเบซเบฑเบเบขเปเบฒเบเบเบทเบเบเปเบญเบเบงเปเบฒเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบเปเปเบงเบฅเบฒเปเบเปเบเปเบเบเปเบเบตเบเบญเบเบกเบฑเบ, เบเปเบฒเบเบญเบฒเบเบเบฐเบเปเบญเบเปเบฎเบฑเบเบซเบผเบฒเบเบเบฑเปเบ, เปเบฅเบฐเบเปเบฒเบเบเบฑเบเบเบฐเบเปเบญเบเบเปเบฝเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ, เบเบปเบเบชเบญเบเบเบทเบเปเบซเบกเปเปเบฅเบฐเปเบเบดเปเบเบงเปเบฒเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเปเปเบเบปเปเบฒเบซเบกเบฒเบ.
เบเบฐเบเบดเบเบฑเบเบเบฒเบกเบเปเบฒเปเบเบฐเบเปเบฒเบเบญเบ Brendan Gregg, เบเบงเบเปเบฎเบปเบฒเบเบฐเบญเปเบฒเบเบเบฒเบเบฐเบฅเบฒเบเบเบฒเบเปเบเบดเบเบฅเบปเบเบฅเบธเปเบก. เปเบเปเบฅเบฐเปเบชเบฑเปเบเบชเบฐเปเบเบเบเบญเบ stack (เบเบฒเบเปเบญเบตเปเบเบเบฑเบเบเบฑเบ). เปเบชเบฑเปเบเบเปเบฒเบญเบดเบเปเบกเปเบเบเบธเบเปเบเบปเปเบฒเปเบเปเบเปเบเบเบเบฒเบ, เบเปเปเปเบกเปเบเบญเบเบเบฒเบเปเบเบญเบทเปเบเปเบเบฑเบเบซเบกเบปเบ (เปเบเบเปเบฒเบชเบฑเบเบเปเบฒเบเปเบญเบทเปเบเป, เบเบฒเบเปเบเบญเบทเปเบเปเบเบฑเบเบซเบกเบปเบเบเบฐเบกเบตเบกเบฑเบเบขเบนเปเปเบ stack เบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒ). เปเบเบงเบเปเปเปเบเปเบกเปเบเปเบเบเบเปเบฒเบเบเบฑเบเปเบฅเปเบง:
![]()
เบเปเบฒเบเปเบฒเบเบงเบฒเบเบเบปเบงเบเบฐเบเบดเบเปเบชเปเบเบทเปเบเบญเบเบเบฑเบเบเบฑเบเปเบเบเบฒเบ, เปเบงเบฅเบฒเบเบฑเบเปเบปเบเบเบตเปเบกเบฑเบเบขเบนเปเปเบ stack เปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบตเบเบฑเบเบเบฐเบเบทเบเบชเบฐเปเบเบ. เบเบฑเบเบเบฑเบ HTTPServe เบขเบนเปเบเบตเปเบเบฑเปเบ 65% เบเบญเบเปเบงเบฅเบฒ, เบเบฑเบเบเบฑเบเปเบงเบฅเบฒเปเบฅเปเบเบญเบทเปเบเป runtime.mcall, mstart ะธ gc, เปเบเปเปเบเปเปเบงเบฅเบฒเปเบเบดเบเบชเปเบงเบเบเบตเปเปเบซเบผเบทเบญเบเบญเบเปเบงเบฅเบฒ. เบเบงเบฒเบกเบเบดเบเบเบตเปเบกเปเบงเบ: 5% เบเบญเบเปเบงเบฅเบฒเบเบฑเบเบซเบกเบปเบเปเบกเปเบเปเบเปเปเบเบเบฒเบเบชเบญเบเบเบฒเบก DNS:

เบเบตเปเบขเบนเปเบเบตเปเปเบเบเบเบฒเบเบเบญเบเบซเบฒเปเบเบฑเบเบเบญเบ Postgresql. เปเบซเปเบเบฅเบดเบเปเบชเป FindByAge:

เบซเบเปเบฒเบชเบปเบเปเบ, เปเบเบเบเบฒเบเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒ, เปเบเบซเบผเบฑเบเบเบฒเบ, เบกเบตเบชเบฒเบกเปเบซเบผเปเบเบเบปเปเบเบเปเบเบตเปเปเบเบตเปเบกเบเบงเบฒเบกเบฅเปเบฒเบเปเบฒ: เบเบฒเบเปเบเบตเบเปเบฅเบฐเบเบดเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเป, เบเบฒเบเบฎเปเบญเบเบเปเบเปเปเบกเบนเบเปเบฅเบฐเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบเบฒเบเบเปเปเบกเบนเบ. เปเบชเบฑเปเบเบชเบฐเปเบเบเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒเบเบฒเบเบฎเปเบญเบเบเป DNS, เปเบเบตเบเปเบฅเบฐเบเบดเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบเปเปเบงเบฅเบฒเบเบฐเบกเบฒเบ 13% เบเบญเบเปเบงเบฅเบฒเบเบฐเบเบดเบเบฑเบเบเบฑเบเบซเบกเบปเบ.
เบชเบปเบกเบกเบธเบเบเบดเบเบฒเบ: เบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบทเบเปเบซเบกเปเปเบเบเปเบเปเบเบฒเบเบฅเบงเบกเบเบฑเบเบเบงเบเบซเบผเบธเบเบเปเบญเบเปเบงเบฅเบฒเบเบญเบเบเปเบฒเบฎเปเบญเบเบเป HTTP เบเบฝเบง, เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบเบตเปเบชเบนเบเบเบถเปเบเปเบฅเบฐ latency เบเปเปเบฒ..
เบเบฒเบโเบเบฑเปเบโเบเปเบฒโเบเปเบฒโเบฎเปเบญเบโเบชเบฐโเบซเบกเบฑเบ - เบเบฒเบโเบเบปเบโเบฅเบญเบโ
เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบธเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบ, เบเบฐเบเบฒเบเบฒเบกเปเบญเบปเบฒเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบ Postgresql เบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเปเบฒเบฎเปเบญเบเบเป. เบเบฒเบเปเบฅเบทเบญเบเบเปเบฒเบญเบดเบเปเบกเปเบเบเบฒเบเบเปเบฒเปเบเป เปเบเบฅเบฐเบเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ. เปเบเบเบฒเบเบเบปเบเบฅเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒ เบเบฒเบเบฅเบงเบกเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบเบเปเบเป sql driver เบชเปเบฒเบฅเบฑเบเปเบ:
db, err := sql.Open("postgres", dbConnectionString)
db.SetMaxOpenConns(8)
if err != nil {
return nil, err
}เบเบฒเบโเบเบฐโเบเบดโเบเบฑเบโ, เบเบฒเบโเบชเบฑเบโเปเบเบโเบเบฒเบโ, เบเบฒเบโเบงเบดโเปเบเบฒเบฐโ
เบซเบผเบฑเบโเบเบฒเบโเบเบฒเบโเปเบฅเบตเปเบกโเบเบปเปเบโเบเบฒเบโเบเบปเบโเบชเบญเบโเบเบฑเบ 1000 เบเปเบฒโเบฎเปเบญเบโเบชเบฐโเบซเบกเบฑเบโเบเปเปโเบงเบดโเบเบฒโเบเบตโ, เบกเบฑเบโเปเบเบฑเบโเบเบตเปโเบเบฐโเปเบเปเบโเบงเปเบฒโเบฅเบฐโเบเบฑเบโเบเบฒเบ latency เบเบญเบ p99 เปเบเปโเบเบฑเบโเบเบทเบโเปเบโเบเปเบญเบโเบเบปเบโเบเบฐโเบเบดโเบเปเบงเบ SLO เบเบญเบ 60msโ!
เบเปเบฒเปเบเปเบเปเบฒเบเปเบกเปเบเบซเบเบฑเบ?
10000 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเบงเบดเบเบฒเบเบต / 1000 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ = 10 เปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ + 1
เปเบซเปเปเบฎเบฑเบเบกเบฑเบเบเบตเบเบงเปเบฒ!
2000 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเบงเบดเบเบฒเบเบต

เบเบฒเบเปเบซเบผเบเบชเบญเบเปเบเบปเปเบฒเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเปเบเบดเบเบชเบดเปเบเบเบฝเบงเบเบฑเบ, เปเบชเบฑเปเบเบชเบฐเปเบเบเปเบเบดเบเบเปเบฒเบเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบฑเบเบเบฒเบเบเบฒเบเบฎเปเบญเบเบเป 2000 เบเปเปเบงเบดเบเบฒเบเบต, p100 เบเปเปเบฒเบเบงเปเบฒ 60ms, p99 เบเปเปเบ SLO.
เปเบเปเบเปเบเบญเบเบเปเบฒเปเบเปเบเปเบฒเบ:
10000 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเบงเบดเบเบฒเบเบต / 2000 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ = 5 เปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ + 1
3000 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเบงเบดเบเบฒเบเบต

เบเบตเปเบเบตเปเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบชเบฒเบกเบฒเบเบเบฐเบกเบงเบเบเบปเบ 3000 เบเปเบฒเบฎเปเบญเบเบเปเบเบตเปเบกเบต p99 latency เบซเบเปเบญเบเบเบงเปเบฒ 60ms. SLO เบเปเปเปเบเปเบเบทเบเบฅเบฐเปเบกเบตเบ, เปเบฅเบฐเบเปเบฒเปเบเปเบเปเบฒเบเปเบกเปเบเบเบญเบกเบฎเบฑเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
10000 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเบงเบดเบเบฒเบเบต / เบเปเป 3000 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ = 4 เปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ + 1 (เบเบนเปเบเบฝเบเปเบเปเบชเบฐเบซเบผเบธเบ, เบเบฐเบกเบฒเบ เบเบฑเบเปเบ)
เปเบซเปเบฅเบญเบเบงเบดเปเบเบฒเบฐเบฎเบญเบเบญเบทเปเบ.
เบเบฒเบเบงเบดเปเบเบฒเบฐ - hypothesis
เบเบงเบโเปเบฎเบปเบฒโเปเบเบฑเบโเบเปเบฒโเปเบฅเบฐโเบชเบฐโเปเบเบโเบเบปเบโเบเบญเบ debugging เบเปเบฒโเบฎเปเบญเบโเบชเบฐโเบซเบกเบฑเบโเบเบตเป 3000 เบเปเบฒโเบฎเปเบญเบโเบชเบฐโเบซเบกเบฑเบโเบเปเปโเบงเบดโเบเบฒโเบเบตโ:

เบเบฑเบ 6% เบเบญเบเปเบงเบฅเบฒเปเบกเปเบเปเบเปเปเบเบเบฒเบเบชเปเบฒเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเป. เบเบฒเบเบเบฑเปเบเบเปเบฒเบชเบฐเบเบธเบเปเบเบตเปเบเปเบเบฑเบเบเบธเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ, เปเบเปเบเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเปเบซเบฑเบเบงเปเบฒเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบฑเบเบชเบทเบเบเปเปเปเบฎเบฑเบเบงเบฝเบเปเบเบเบฒเบเบชเปเบฒเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบซเบกเปเบเบฑเบเบเบฒเบเบเปเปเบกเบนเบ.
เบชเบปเบกเบกเบธเบเบเบดเบเบฒเบ: เบเบฒเบเปเบเบทเปเบญเบกเบเปเป, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบกเบตเบชเบฐเบเบธเบเปเบเบต, เบเบฑเบเบเบปเบเบเบทเบเบฅเบธเบเบฅเบปเบเปเบฅเบฐเปเบฎเบฑเบเบเบงเบฒเบกเบชเบฐเบญเบฒเบ, เบเบฑเปเบเบเบฑเปเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเปเบญเบเบเบฑเปเบเบเปเบฒเบเบงเบเบกเบฑเบเบเบทเบเปเบซเบกเป. เบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเบฒเบเบงเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบตเปเบเบฑเบเบเปเบฒเบเบขเบนเปเบเบฑเบเบเบฐเบซเบเบฒเบเบชเบฐเบเบธเบเปเบเบตเบเบงเบเบเปเบงเบเปเบเบเบฒเบเบเบฑเบเบเปเบฒเปเบเบเบเบฒเบเบซเบผเบธเบเบเปเบญเบเปเบงเบฅเบฒเบเบตเปเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบเปเปเบงเบฅเบฒเปเบเบเบฒเบเบชเปเบฒเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเป..
เบเบฒเบโเบเบฑเปเบโเบเปเบฒโเบเปเบฒโเบฎเปเบญเบโเบชเบฐโเบซเบกเบฑเบ - เบเบฒเบโเบเบปเบโเบฅเบญเบโ
เบเบณเบฅเบฑเบเบเบฐเบเบฒเบเบฒเบกเบเบดเบเบเบฑเปเบ เปเบเบปเปเบฒเบเบฑเบเบเบฐเบซเบเบฒเบเบชเบฐเบเบธเบเปเบเบต (เบเบฑเบเบญเบฐเบเบดเบเบฒเบ ):
db, err := sql.Open("postgres", dbConnectionString)
db.SetMaxOpenConns(8)
db.SetMaxIdleConns(8)
if err != nil {
return nil, err
}เบเบฒเบโเบเบฐโเบเบดโเบเบฑเบโ, เบเบฒเบโเบชเบฑเบโเปเบเบโเบเบฒเบโ, เบเบฒเบโเบงเบดโเปเบเบฒเบฐโ
3000 เบเปเบฒเบฎเปเบญเบเบเปเบเปเปเบงเบดเบเบฒเบเบต

p99 เปเบกเปเบเบซเบเปเบญเบเบเบงเปเบฒ 60ms เบเบฑเบ p100 เบซเบเปเบญเบเบฅเบปเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบ!

เบเบฒเบเบเบงเบเบชเบญเบเบเบฒเบ flame เบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบกเปเบเบเปเปเบชเบฑเบเปเบเบเปเบซเบฑเบ! เปเบซเปเบเบงเบเปเบเบดเปเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบตเปเบกเปเบเบตเบก pg(*conn).query โ เบเบงเบโเปเบฎเบปเบฒโเบเบฑเบโเบเปเปโเปเบเปโเบชเบฑเบโเปเบเบโเปเบซเบฑเบโเบเบฒเบโเปเบเบทเปเบญเบกโเบเปเปโเปเบเปโเบเบทเบโเบชเปเบฒเบโเบเบฑเปเบโเบเบถเปเบโเบขเบนเปโเบเบตเปโเบเบตเปโ.

เบชเบฐเบซเบฅเบธเบ
เบเบฒเบเบงเบดเปเบเบฒเบฐเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบกเปเบเบชเปเบฒเบเบฑเบเบเปเปเบเบฒเบเปเบเบปเปเบฒเปเบเบงเปเบฒเบเบงเบฒเบกเบเบฒเบเบซเบงเบฑเบเบเบญเบเบฅเบนเบเบเปเบฒเปเบฅเบฐเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบตเปเบเปเปเบกเบตเบเบฐเปเบซเบเบเปเบกเปเบเปเบเปเบเบทเบเบเบญเบเบชเบฐเบซเบเบญเบ. เบเบฒเบเบงเบดเปเบเบฒเบฐเปเบเบเบเบฒเบเบเบฝเบเบเบฝเบเบเบฒเบเบชเบฑเบเปเบเบเบเบฒเบเบเบฑเบเบเบงเบฒเบกเบเบฒเบเบซเบงเบฑเบเบเบญเบเบฅเบนเบเบเปเบฒเบชเบฒเบกเบฒเบเบเปเบงเบเบเปเบฒเบเบปเบเบชเบดเปเบเบเบตเปเปเบเบฑเบเบเบตเปเบเบญเบกเบฎเบฑเบเปเบฅเบฐเบชเบดเปเบเบเบตเปเบเปเปเปเบกเปเบ. Go เปเบซเปเปเบเบทเปเบญเบเบกเบทเบเบตเปเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบกเบฒเบเบเบฐเบเบฒเบเบเบตเปเปเบฎเบฑเบเปเบซเปเบเบฒเบเบงเบดเปเบเบฒเบฐเบเปเบฒเบเบเบฒเบเปเบฅเบฐเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเป.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com
