เชชเชฐเซเชซเซเชฐเซเชฎเชจเซเชธ เชเชจเชพเชฒเชฟเชธเชฟเชธ เช เชจเซ เชเซเชฏเซเชจเชฟเชเช เช เชเซเชฒเชพเชฏเชจเซเชเซเชธ เชฎเชพเชเซ เชชเชฐเซเชซเซเชฐเซเชฎเชจเซเชธ เช เชจเซเชชเชพเชฒเชจ เชเชเชพเชธเชตเชพ เชฎเชพเชเซเชจเซเช เชเช เชถเชเซเชคเชฟเชถเชพเชณเซ เชธเชพเชงเชจ เชเซ.
เชชเซเชฐเชฆเชฐเซเชถเชจ เชตเชฟเชถเซเชฒเซเชทเชฃเชจเซ เชเชชเชฏเซเช เชเซเชฏเซเชจเชฟเชเช เชชเซเชฐเชฏเซเชเซเชจเชพ เชชเชฐเซเชเซเชทเชฃ เชฎเชพเชเซ เชตเซเชเซเชเชพเชจเชฟเช เช เชญเชฟเชเชฎ เชฒเชพเชเซ เชเชฐเซเชจเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเชฎเชพเช เช เชตเชฐเซเชงเซ เชคเชชเชพเชธเชตเชพ เชฎเชพเชเซ เชฅเช เชถเชเซ เชเซ. เช เชฒเซเช เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ เชเซ เชตเซเชฌเชธเชฐเซเชตเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชชเซเชฐเชฆเชฐเซเชถเชจ เชตเชฟเชถเซเชฒเซเชทเชฃ เช เชจเซ เชเซเชฏเซเชจเชฟเชเช เชฎเชพเชเซเชจเชพ เชธเชพเชฎเชพเชจเซเชฏ เช เชญเชฟเชเชฎเชจเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเซ เชเซ.
เชเซ เช
เชนเซเช เชเชพเชธ เชเชฐเซเชจเซ เชธเชพเชฐเซเช เชเซ เชเชพเชฐเชฃ เชเซ เชคเซเชฎเชพเช เชชเซเชฐเซเชซเชพเชเชฒเชฟเชเช เชเซเชฒเซเชธ เชเซ pprof
เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชชเซเชธเซเชคเชเชพเชฒเชฏเชฎเชพเช.
เชธเซเชเซเชฐเซเชเซเชเซ
เชเชพเชฒเซ เชเชชเชฃเชพ เชฎเชพเชณเชเชพเชเซเชฏ เชตเชฟเชถเซเชฒเซเชทเชฃ เชฎเชพเชเซ เชธเชพเชฐเชพเชเชถ เชธเซเชเชฟ เชฌเชจเชพเชตเซเช. เช เชฎเซ เช เชเชคเชฐเซเชเซเชเชพเชจ เช เชฅเชตเชพ เช เชจเซเชฎเชพเชจเชจเชพ เชเชงเชพเชฐเซ เชซเซเชฐเชซเชพเชฐเซ เชเชฐเชตเชพเชจเซ เชฌเชฆเชฒเซ เชจเชฟเชฐเซเชฃเชฏเซ เชฒเซเชตเชพ เชฎเชพเชเซ เชเซเชเชฒเชพเช เชกเซเชเชพเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเชถเซเช. เช เชเชฐเชตเชพ เชฎเชพเชเซ เช เชฎเซ เช เชเชฐเซเชถเซเช:
- เช เชฎเซ เชเชชเซเชเชฟเชฎเชพเชเชเซเชถเชจ เชธเซเชฎเชพเช (เชเชฐเซเชฐเชฟเชฏเชพเชคเซ) เชจเชเซเชเซ เชเชฐเซเช เชเซเช;
- เช เชฎเซ เชธเชฟเชธเซเชเชฎ เชฎเชพเชเซ เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจ เชฒเซเชกเชจเซ เชเชฃเชคเชฐเซ เชเชฐเซเช เชเซเช;
- เช เชฎเซ เชชเชฐเซเชเซเชทเชฃ เชเชฐเซเช เชเซเช (เชกเซเชเชพ เชฌเชจเชพเชตเซ);
- เช เชฎเซ เช เชตเชฒเซเชเชจ เชเชฐเซเช เชเซเช;
- เช เชฎเซ เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเซเช เชเซเช - เชถเซเช เชฌเชงเซ เชเชตเชถเซเชฏเชเชคเชพเช เชชเซเชฐเซ เชฅเชพเชฏ เชเซ?
- เช เชฎเซ เชคเซเชจเซ เชตเซเชเซเชเชพเชจเชฟเช เชฐเซเชคเซ เชธเซเช เชเชฐเซเช เชเซเช, เชเช เชชเซเชฐเซเชตเชงเชพเชฐเชฃเชพ เชเชฐเซเช เชเซเช;
- เช เชฎเซ เช เชชเซเชฐเซเชตเชงเชพเชฐเชฃเชพเชจเซ เชเชเชพเชธเชตเชพ เชฎเชพเชเซ เชเช เชชเซเชฐเชฏเซเช เชเชฐเซเช เชเซเช.
เชธเชฐเชณ HTTP เชธเชฐเซเชตเชฐ เชเชฐเซเชเชฟเชเซเชเซเชเชฐ
เช เชฒเซเช เชฎเชพเชเซ เชเชชเชฃเซ เชเซเชฒเชพเชเชเชฎเชพเช เชจเชพเชจเชพ HTTP เชธเชฐเซเชตเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซเชถเซเช. เช เชฒเซเชเชฎเชพเชเชฅเซ เชคเชฎเชพเชฎ เชเซเชก เชฎเชณเซ เชถเชเซ เชเซ
เชเซ เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชฐเชนเซเชฏเซเช เชเซ เชคเซ เชเช HTTP เชธเชฐเซเชตเชฐ เชเซ เชเซ เชฆเชฐเซเช เชตเชฟเชจเชเชคเซ เชฎเชพเชเซ Postgresql เชจเซเช เชฎเชคเชฆเชพเชจ เชเชฐเซ เชเซ. เชตเชงเซเชฎเชพเช, เชเชชเซเชฒเชฟเชเซเชถเชจ เช เชจเซ เชธเชฟเชธเซเชเชฎ เชฎเซเชเซเชฐเชฟเชเซเชธ เชเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพ เช เชจเซ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชชเซเชฐเซเชฎเชฟเชฅเชฟเชฏเชธ, เชจเซเชก_เชเชเซเชธเชชเซเชฐเซเชเชฐ เช เชจเซ เชเซเชฐเชพเชซเชจเชพ เชเซ.
เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ, เช เชฎเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเชเช เชเซเช เชเซ เชเชกเซ เชธเซเชเซเชฒเชฟเชเช (เช เชจเซ เชเชฃเชคเชฐเซเชเชจเซ เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพ) เชฎเชพเชเซ เชฆเชฐเซเช เชธเซเชตเชพ เช เชจเซ เชกเซเชเชพเชฌเซเช เชเชเชธเชพเชฅเซ เชเชฎเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ:
เชงเซเชฏเซเชฏเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค
เช เชชเชเชฒเชพ เชชเชฐ, เช เชฎเซ เชฒเชเซเชทเซเชฏ เชจเชเซเชเซ เชเชฐเซเช เชเซเช. เชเชชเชฃเซ เชถเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช? เชเซเชฏเชพเชฐเซ เชธเชฎเชพเชชเซเชค เชฅเชตเชพเชจเซ เชธเชฎเชฏ เชเซ เชคเซเชฏเชพเชฐเซ เชเชชเชฃเซ เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฃเซ เชถเชเซเช? เช เชฒเซเชเชฎเชพเช, เช เชฎเซ เชเชฒเซเชชเชจเชพ เชเชฐเซเชถเซเช เชเซ เช เชฎเชพเชฐเซ เชชเชพเชธเซ เชเซเชฐเชพเชนเชเซ เชเซ เช เชจเซ เช เชฎเชพเชฐเซ เชธเซเชตเชพ เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก 10 เชตเชฟเชจเชเชคเซเช เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชถเซ.
ะ
- เชฒเซเชเชจเซเชธเซ: 99% เชตเชฟเชจเชเชคเซเช 60ms เชเชฐเชคเชพ เชเชเชพ เชธเชฎเชฏเชฎเชพเช เชชเซเชฐเซเชฃ เชฅเชตเซ เชเซเชเช;
- เชเชฟเชเชฎเชค: เชธเซเชตเชพเชฎเชพเช เชเชเชพเชฎเชพเช เชเชเชพ เชจเชพเชฃเชพเชจเซ เชตเชชเชฐเชพเชถ เชฅเชตเซ เชเซเชเช เชเซ เช เชฎเชจเซ เชฒเชพเชเซ เชเซ เชเซ เชตเซเชฏเชพเชเชฌเซ เชฐเซเชคเซ เชถเชเซเชฏ เชเซ. เช เชเชฐเชตเชพ เชฎเชพเชเซ, เช เชฎเซ เชฅเซเชฐเซเชชเซเชเชจเซ เชฎเชนเชคเซเชคเชฎ เชเชฐเซเช เชเซเช;
- เชเซเชทเชฎเชคเชพ เชเชฏเซเชเชจ: เชเชเชเชฆเชฐ เชธเซเชเซเชฒเชฟเชเช เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ เชธเชนเชฟเชค, เชเชชเซเชฒเชฟเชเซเชถเชจเชจเชพ เชเซเชเชฒเชพ เชเชฆเชพเชนเชฐเชฃเซ เชเชฒเชพเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชชเชกเชถเซ เช
เชจเซ เชชเซเชฐเชพเชฐเชเชญเชฟเช เชฒเซเชก เช
เชจเซ เชเซเชเชตเชพเชเชจเซ เชเชตเชถเซเชฏเชเชคเชพเชเชจเซ เชชเซเชฐเซเชฃ เชเชฐเชตเชพ เชฎเชพเชเซ เชเซเชเชฒเชพ เชเชฆเชพเชนเชฐเชฃเซเชจเซ เชเชฐเซเชฐ เชชเชกเชถเซ เชคเซ เชธเชฎเชเชตเชพ เช
เชจเซ เชฆเชธเซเชคเชพเชตเซเชเซเชเชฐเชฃเชจเซ เชเชฐเซเชฐ เชเซ.
เชฐเซเชกเชจเซเชกเชจเซเชธเซ n+1 .
เชฒเซเชเชจเซเชธเซ เชฎเชพเชเซ เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชชเชฐเชพเชเชค เชเชชเซเชเชฟเชฎเชพเชเชเซเชถเชจเชจเซ เชเชฐเซเชฐ เชชเชกเซ เชถเชเซ เชเซ, เชชเชฐเชเชคเซ เชฅเซเชฐเซเชชเซเชเชจเซเช เชธเซเชชเชทเซเชเชชเชฃเซ เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. SRE SLO เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ เชเชชเชฏเซเช เชเชฐเชคเซ เชตเชเชคเซ, เชตเชฟเชฒเชเชฌเชจเซ เชตเชฟเชจเชเชคเซ เชเซเชฐเชพเชนเช เช เชฅเชตเชพ เชตเซเชฏเชตเชธเชพเชฏ เชคเชฐเชซเชฅเซ เชเชตเซ เชเซ, เชเซ เชเชคเซเชชเชพเชฆเชจ เชฎเชพเชฒเชฟเช เชฆเซเชตเชพเชฐเชพ เชฐเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เช เชจเซ เช เชฎเชพเชฐเซ เชธเซเชตเชพ เชถเชฐเซเชเชคเชฅเซ เช เชเซเชเชชเชฃ เชธเซเชเชฟเชเชเซเชธ เชตเชฟเชจเชพ เช เชเชตเชพเชฌเชฆเชพเชฐเซ เชชเซเชฐเซ เชเชฐเชถเซ!
เชชเชฐเซเชเซเชทเชฃ เชตเชพเชคเชพเชตเชฐเชฃ เชธเซเชฏเซเชเชฟเชค เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช
เชชเชฐเซเชเซเชทเชฃ เชตเชพเชคเชพเชตเชฐเชฃเชจเซ เชฎเชฆเชฆเชฅเซ, เช เชฎเซ เช เชฎเชพเชฐเซ เชธเชฟเชธเซเชเชฎ เชชเชฐ เชฎเชพเชชเซเชฒ เชฒเซเชก เชฎเซเชเซ เชถเชเซเชถเซเช. เชตเชฟเชถเซเชฒเซเชทเชฃ เชฎเชพเชเซ, เชตเซเชฌ เชธเซเชตเชพเชจเชพ เชชเซเชฐเชฆเชฐเซเชถเชจ เชชเชฐเชจเซ เชกเซเชเชพ เชเชจเชฐเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ.
เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจ เชฒเซเชก
เช เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชชเชฏเซเช เชเชฐเซ เชเซ
$ 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
เช เชตเชฒเซเชเชจ
เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจเชฒ เชฒเซเชก เชฐเชจเชเชพเชเชฎ เชชเชฐ เชฒเชพเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ. เชเชชเซเชฒเชฟเชเซเชถเชจ เชฎเซเชเซเชฐเชฟเชเซเชธ (เชตเชฟเชจเชเชคเซเชเชจเซ เชธเชเชเซเชฏเชพ, เชชเซเชฐเชคเชฟเชธเชพเชฆ เชฒเซเชเชจเซเชธเซ) เช เชจเซ เชเชชเชฐเซเชเชฟเชเช เชธเชฟเชธเซเชเชฎ (เชฎเซเชฎเชฐเซ, CPU, IOPS) เชเชชเชฐเชพเชเชค, เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซ เชชเซเชฐเซเชซเชพเชเชฒเชฟเชเช เช เชธเชฎเชเชตเชพ เชฎเชพเชเซ เชถเชฐเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ เชเซ เชคเซเชจเซ เชเซเชฏเชพเช เชธเชฎเชธเซเชฏเชพเช เชเซ, เชคเซเชฎเช CPU เชธเชฎเชฏเชจเซ เชเชชเชฏเซเช เชเซเชตเซ เชฐเซเชคเซ เชฅเชพเชฏ เชเซ.
เชชเซเชฐเซเชซเชพเชเชฒเชฟเชเช
เชชเซเชฐเซเชซเชพเชเชฒเชฟเชเช เช เชฎเชพเชชเชจเซ เชเช เชชเซเชฐเชเชพเชฐ เชเซ เชเซ เชคเชฎเชจเซ เช เชเซเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ เชเซ เชเซเชฏเชพเชฐเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชเชพเชฒเซ เชฐเชนเซ เชนเซเชฏ เชคเซเชฏเชพเชฐเซ CPU เชธเชฎเชฏ เชเซเชฏเชพเช เชเช เชฐเชนเซเชฏเซ เชเซ. เชคเซ เชคเชฎเชจเซ เชเซเชเซเชเชธเชชเชฃเซ เชจเชฟเชฐเซเชงเชพเชฐเชฟเชค เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ เชเซ เชชเซเชฐเซเชธเซเชธเชฐเชจเซ เชธเชฎเชฏ เชเซเชฏเชพเช เช เชจเซ เชเซเชเชฒเซ เชเชฐเซเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ:
เช เชกเซเชเชพเชจเซ เชเชชเชฏเซเช เชชเซเชฅเซเชฅเชเชฐเชฃ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชตเซเชฏเชฐเซเชฅ CPU เชธเชฎเชฏ เช เชจเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเชคเชพ เชฌเชฟเชจเชเชฐเซเชฐเซ เชเชพเชฐเซเชฏเชจเซ เชธเชฎเช เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ เชเชฐเซ เชถเชเชพเชฏ เชเซ. Go (pprof) เชชเซเชฐเซเชซเชพเชเชฒเซเชธ เชเชจเชฐเซเช เชเชฐเซ เชถเชเซ เชเซ เช เชจเซ เชธเชพเชงเชจเซเชจเชพ เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชธเชฎเซเชนเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชคเซเชฎเชจเซ เชซเซเชฒเซเชฎ เชเซเชฐเชพเชซ เชคเชฐเซเชเซ เชตเชฟเชเซเชฏเซเช เชฒเชพเชเช เชเชฐเซ เชถเชเซ เชเซ. เชนเซเช เชฒเซเชเชฎเชพเช เชชเชเซเชฅเซ เชคเซเชฎเชจเชพ เชเชชเชฏเซเช เช เชจเซ เชธเซเชเช เชช เชฎเชพเชฐเซเชเชฆเชฐเซเชถเชฟเชเชพ เชตเชฟเชถเซ เชตเชพเชค เชเชฐเซเชถ.
เช เชฎเชฒ, เช เชตเชฒเซเชเชจ, เชตเชฟเชถเซเชฒเซเชทเชฃ.
เชเชพเชฒเซ เชเช เชชเซเชฐเชฏเซเช เชเชฐเซเช. เชเซเชฏเชพเช เชธเซเชงเซ เช
เชฎเซ เชชเซเชฐเชฆเชฐเซเชถเชจเชฅเซ เชธเชเชคเซเชทเซเช เชจ เชฅเชเช เชคเซเชฏเชพเช เชธเซเชงเซ เช
เชฎเซ เชชเซเชฐเชฆเชฐเซเชถเชจ, เช
เชตเชฒเซเชเชจ เช
เชจเซ เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเซเชถเซเช. เชเชพเชฒเซ เชชเซเชฐเชฅเชฎ เช
เชตเชฒเซเชเชจเซเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ เชคเซเชจเซ เชฒเชพเชเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชฎเชจเชธเซเชตเซ เชฐเซเชคเซ เชเชเชพ เชฒเซเชก เชฎเซเชฒเซเชฏ เชชเชธเชเชฆ เชเชฐเซเช. เชฆเชฐเซเช เช
เชจเซเชเชพเชฎเซ เชชเชเชฒเชพ เชชเชฐ เช
เชฎเซ เช
เชฎเซเช เชญเชฟเชจเซเชจเชคเชพ เชธเชพเชฅเซ เชชเชธเชเชฆ เชเชฐเซเชฒ เชเซเชเซเชเชธ เชธเซเชเซเชฒเชฟเชเช เชชเชฐเชฟเชฌเชณ เชธเชพเชฅเซ เชญเชพเชฐ เชตเชงเชพเชฐเซเชถเซเช. เชฆเชฐเซเช เชฒเซเชก เชเซเชธเซเชเชฟเชเช เชฐเชจ เชเชกเชเชธเซเช เชเชฐเซเชฒเซ เชตเชฟเชจเชเชคเซเชเชจเซ เชธเชเชเซเชฏเชพ เชธเชพเชฅเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ: make load-test LOAD_TEST_RATE=X
.
เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก 50 เชตเชฟเชจเชเชคเซเช
เชเซเชเชจเชพ เชฌเซ เชเซเชฐเชพเชซ เชชเชฐ เชงเซเชฏเชพเชจ เชเชชเซ. เชเชชเชฐ เชกเชพเชฌเซ เชฌเชพเชเซ เชฆเชฐเซเชถเชพเชตเซ เชเซ เชเซ เช เชฎเชพเชฐเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก 50 เชตเชฟเชจเชเชคเซเช เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชเซ (เชคเซ เชตเชฟเชเชพเชฐเซ เชเซ) เช เชจเซ เชเชชเชฐ เชเชฎเชฃเซ เชฌเชพเชเซเช เชฆเชฐเซเช เชตเชฟเชจเชเชคเซเชจเซ เชธเชฎเชฏเชเชพเชณเซ เชฆเชฐเซเชถเชพเชตเซ เชเซ. เชฌเชเชจเซ เชชเชฐเชฟเชฎเชพเชฃเซ เช เชฎเชจเซ เชเซเชตเชพ เช เชจเซ เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเชตเชพเชฎเชพเช เชฎเชฆเชฆ เชเชฐเซ เชเซ เชเซ เชถเซเช เช เชฎเซ เช เชฎเชพเชฐเซ เชเชพเชฎเชเซเชฐเซเชจเซ เชธเซเชฎเชพเชเชฎเชพเช เชเซเช เชเซ เชจเชนเซเช. เชเซเชฐเชพเชซ เชชเชฐ เชฒเชพเชฒ เชฐเซเชเชพ HTTP เชตเชฟเชจเชเชคเซ เชฒเซเชเชจเซเชธเซ 60ms เชชเชฐ SLO เชฌเชคเชพเชตเซ เชเซ. เชฐเซเชเชพ เชฌเชคเชพเชตเซ เชเซ เชเซ เช เชฎเซ เช เชฎเชพเชฐเชพ เชฎเชนเชคเซเชคเชฎ เชชเซเชฐเชคเชฟเชธเชพเชฆ เชธเชฎเชฏเชจเซ เชจเซเชเซ เชเซเช.
เชเชพเชฒเซ เชเชฐเซเช เชฌเชพเชเซ เชเซเชเช:
เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก 10000 เชตเชฟเชจเชเชคเซเช / เชธเชฐเซเชตเชฐ เชฆเซเช 50 เชตเชฟเชจเชเชคเซเช = 200 เชธเชฐเซเชตเชฐเซเชธ + 1
เช เชฎเซ เชนเชเซ เชชเชฃ เช เชเชเชเชกเซ เชธเซเชงเชพเชฐเซ เชถเชเซเช เชเซเช.
เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก 500 เชตเชฟเชจเชเชคเซเช
เชเซเชฏเชพเชฐเซ เชฒเซเชก เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก 500 เชตเชฟเชจเชเชคเซเช เชชเชฐ เชชเชนเซเชเชเซ เชเซ เชคเซเชฏเชพเชฐเซ เชตเชงเซ เชฐเชธเชชเซเชฐเชฆ เชตเชธเซเชคเซเช เชฅเชตเชพเชจเซเช เชถเชฐเซ เชฅเชพเชฏ เชเซ:
เชซเชฐเซเชฅเซ, เชเชชเชฐเชจเชพ เชกเชพเชฌเชพ เชเซเชฐเชพเชซเชฎเชพเช เชคเชฎเซ เชเซเช เชถเชเซ เชเซ เชเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชธเชพเชฎเชพเชจเซเชฏ เชฒเซเชก เชฐเซเชเซเชฐเซเชก เชเชฐเซ เชฐเชนเซ เชเซ. เชเซ เช เชเซเชธ เชจเชฅเซ, เชคเซ เชธเชฐเซเชตเชฐ เชชเชฐ เชธเชฎเชธเซเชฏเชพ เชเซ เชเซ เชเซเชจเชพ เชชเชฐ เชเชชเซเชฒเชฟเชเซเชถเชจ เชเชพเชฒเซ เชฐเชนเซ เชเซ. เชชเซเชฐเชคเชฟเชธเชพเชฆ เชฒเซเชเชจเซเชธเซ เชเซเชฐเชพเชซ เชเชชเชฐ เชเชฎเชฃเซ เชฌเชพเชเซเช เชธเซเชฅเชฟเชค เชเซ, เชเซ เชฆเชฐเซเชถเชพเชตเซ เชเซ เชเซ เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก เชฆเซเช 500 เชตเชฟเชจเชเชคเซเช 25-40ms เชจเชพ เชชเซเชฐเชคเชฟเชญเชพเชต เชตเชฟเชฒเชเชฌเชฎเชพเช เชชเชฐเชฟเชฃเชฎเซ เชเซ. 99เชฎเซ เชชเชฐเซเชธเซเชจเซเชเชพเชเชฒ เชนเชเซ เชชเชฃ เชเชชเชฐ เชชเชธเชเชฆ เชเชฐเซเชฒ 60ms SLO เชฎเชพเช เชธเชฐเชธ เชฐเซเชคเซ เชฌเชเชงเชฌเซเชธเซ เชเซ.
เชเชฐเซเชเชจเซ เชฆเซเชฐเชทเซเชเชฟเช:
เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก 10000 เชตเชฟเชจเชเชคเซเช / เชธเชฐเซเชตเชฐ เชฆเซเช 500 เชตเชฟเชจเชเชคเซเช = 20 เชธเชฐเซเชตเชฐเซเชธ + 1
เชฌเชงเซเช เชนเชเซ เชชเชฃ เชธเซเชงเชพเชฐเซ เชถเชเชพเชฏ เชเซ.
เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก 1000 เชตเชฟเชจเชเชคเซเช
เชฎเชนเชพเชจ เชฒเซเชจเซเช! เชเชชเซเชฒเชฟเชเซเชถเชจ เชฆเชฐเซเชถเชพเชตเซ เชเซ เชเซ เชคเซเชฃเซ เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก 1000 เชตเชฟเชจเชเชคเซเช เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชนเชคเซ, เชชเชฐเชเชคเซ SLO เชฆเซเชตเชพเชฐเชพ เชตเชฟเชฒเชเชฌเชคเชพ เชฎเชฐเซเชฏเชพเชฆเชพเชจเซเช เชเชฒเซเชฒเชเชเชจ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเชคเซเช. เช เชเซเชเชจเชพ เชเชฎเชฃเชพ เชเซเชฐเชพเชซเชฎเชพเช เชฒเชพเชเชจ p99 เชฎเชพเช เชเซเช เชถเชเชพเชฏ เชเซ. เชนเชเซเชเชค เช เชเซ เชเซ p100 เชฒเชพเชเชจ เชเชฃเซ เชเชเชเซ เชนเซเชตเชพ เชเชคเชพเช, เชตเชพเชธเซเชคเชตเชฟเช เชตเชฟเชฒเชเชฌ เชฎเชนเชคเซเชคเชฎ 60ms เชเชฐเชคเชพ เชตเชงเชพเชฐเซ เชเซ. เชเชชเซเชฒเชฟเชเซเชถเชจ เชตเชพเชธเซเชคเชตเชฎเชพเช เชถเซเช เชเชฐเซ เชเซ เชคเซ เชถเซเชงเชตเชพ เชฎเชพเชเซ เชเชพเชฒเซ เชชเซเชฐเซเชซเชพเชเชฒเชฟเชเชเชฎเชพเช เชกเซเชฌเชเซ เชฒเชเชพเชตเซเช.
เชชเซเชฐเซเชซเชพเชเชฒเชฟเชเช
เชชเซเชฐเซเชซเชพเชเชฒเชฟเชเช เชฎเชพเชเซ, เช
เชฎเซ เชฒเซเชกเชจเซ เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก 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 เช เชเซเชท เช เชธเซเชเซเช เชชเซเชฐเซเชซเชพเชเชฒเชจเซ เชตเชธเซเชคเซ เชเซ, เชเซ เชฎเซเชณเชพเชเซเชทเชฐเซ เชชเซเชฐเชฎเชพเชฃเซ เชธเซเชฐเซเช เชเชฐเซเชฒ เชเซ (เช เชธเชฎเชฏ เชจเชฅเซ), Y เช เชเซเชท เชธเซเชเซเชเชจเซ เชเชเชกเชพเช เชฆเชฐเซเชถเชพเชตเซ เชเซ, [เชเซเช] เชชเชฐ เชถเซเชจเซเชฏเชฅเซ เชเชฃเชพเชฏ เชเซ. เชฆเชฐเซเช เชฒเชเชฌเชเซเชฐเชธ เชธเซเชเซเช เชซเซเชฐเซเชฎ เชเซ. เชซเซเชฐเซเชฎ เชเซเชเชฒเซ เชตเชฟเชถเชพเชณ เชเซ, เชคเซ เชตเชงเซ เชตเชเชค เชธเซเชเซเชเซเชธเชฎเชพเช เชนเชพเชเชฐ เชเซ. เชเซเช เชชเชฐ เชถเซเช เชเซ เชคเซ CPU เชชเชฐ เชเชพเชฒเซ เชเซ, เช เชจเซ เชจเซเชเซ เชถเซเช เชเซ เชคเซ เชฌเชพเชณ เชคเชคเซเชตเซ เชเซ. เชฐเชเชเซเชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชเซเช เช เชฐเซเชฅ เชนเซเชคเซ เชจเชฅเซ, เชชเชฐเชเชคเซ เชซเซเชฐเซเชฎเชจเซ เช เชฒเช เชชเชพเชกเชตเชพ เชฎเชพเชเซ เชฐเซเชจเซเชกเชฎ เชชเชธเชเชฆ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชตเชฟเชถเซเชฒเซเชทเชฃ - เชชเซเชฐเซเชตเชงเชพเชฐเชฃเชพ
เชเซเชฏเซเชจเชฟเชเช เชฎเชพเชเซ, เช เชฎเซ เชตเซเชฏเชฐเซเชฅ CPU เชธเชฎเชฏ เชถเซเชงเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเชตเชพ เชชเชฐ เชงเซเชฏเชพเชจ เชเซเชจเซเชฆเซเชฐเชฟเชค เชเชฐเซเชถเซเช. เช เชฎเซ เชจเชเชพเชฎเชพ เชเชฐเซเชเชจเชพ เชธเซเชฅเซ เชฎเซเชเชพ เชธเซเชคเซเชฐเซเชคเซ เชถเซเชงเซเชถเซเช เช เชจเซ เชคเซเชฎเชจเซ เชฆเซเชฐ เชเชฐเซเชถเซเช. เช เซเช เชเซ, เชเชชเซเชฒ เชเซ เชเซ เชชเซเชฐเซเชซเชพเชเชฒเชฟเชเช เชเซเชฌ เช เชธเชเซเช เชฐเซเชคเซ เชฆเชฐเซเชถเชพเชตเซ เชเซ เชเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชคเซเชจเชพ เชชเซเชฐเซเชธเซเชธเชฐเชจเซ เชธเชฎเชฏ เชเซเชฏเชพเช เชตเชฟเชคเชพเชตเซ เชฐเชนเซ เชเซ, เชคเชฎเชพเชฐเซ เชคเซ เชเชฃเซ เชตเชเชค เชเชฐเชตเซเช เชชเชกเชถเซ, เช เชจเซ เชคเชฎเชพเชฐเซ เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซ เชธเซเชฐเซเชค เชเซเชก เชฌเชฆเชฒเชตเชพเชจเซ เชชเชฃ เชเชฐเซเชฐ เชชเชกเชถเซ, เชชเชฐเซเชเซเชทเชฃเซ เชซเชฐเซเชฅเซ เชเชฒเชพเชตเซ เช เชจเซ เชชเซเชฐเชฆเชฐเซเชถเชจ เชฒเชเซเชทเซเชฏ เชธเซเชงเซ เชชเชนเซเชเชเซ เชเซ เชคเซ เชเซเชตเชพเชจเซ เชเชฐเซเชฐ เชชเชกเชถเซ.
เชฌเซเชฐเซเชจเซเชกเชจ เชเซเชฐเซเชเชจเซ เชญเชฒเชพเชฎเชฃเซเชจเซ เช เชจเซเชธเชฐเซเชจเซ, เช เชฎเซ เชเชชเชฐเชฅเซ เชจเซเชเซ เชธเซเชงเซ เชเชพเชฐเซเช เชตเชพเชเชเซเชถเซเช. เชฆเชฐเซเช เชฒเชพเชเชจ เชธเซเชเซเช เชซเซเชฐเซเชฎ (เชซเชเชเซเชถเชจ เชเซเชฒ) เชฆเชฐเซเชถเชพเชตเซ เชเซ. เชชเซเชฐเชฅเชฎ เชฒเชพเชเชจ เช เชชเซเชฐเซเชเซเชฐเชพเชฎเชฎเชพเช เชเชจเซเชเซเชฐเซ เชชเซเชเชจเซเช เชเซ, เชเซ เช เชจเซเชฏ เชคเชฎเชพเชฎ เชเซเชฒเซเชธเชจเชพ เชชเซเชฐเซเชจเซเช เชเซ (เชฌเซเชเชพ เชถเชฌเซเชฆเซเชฎเชพเช เชเชนเซเช เชคเซ, เช เชจเซเชฏ เชคเชฎเชพเชฎ เชเซเชฒเซเชธ เชคเซเชฎเชจเชพ เชธเซเชเซเช เชชเชฐ เชนเชถเซ). เชเชเชณเชจเซ เชฒเชพเชเชจ เชชเชนเซเชฒเซเชฅเซ เช เช เชฒเช เชเซ:
เชเซ เชคเชฎเซ เชเชฐเซเชธเชฐเชจเซ เชเซเชฐเชพเชซ เชชเชฐ เชซเชเชเซเชถเชจเชจเชพ เชจเชพเชฎ เชชเชฐ เชนเซเชตเชฐ เชเชฐเซ เชเซ, เชคเซ เชกเชฟเชฌเชเซเชเช เชฆเชฐเชฎเชฟเชฏเชพเชจ เชธเซเชเซเช เชชเชฐเชจเซ เชเซเชฒ เชธเชฎเชฏ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชฅเชถเซ. HTTPServe เชซเชเชเซเชถเชจ เชคเซเชฏเชพเช 65% เชธเชฎเชฏ เชนเชคเซเช, เช
เชจเซเชฏ เชฐเชจเชเชพเชเชฎ เชเชพเชฐเซเชฏเซ runtime.mcall
, mstart
ะธ gc
, เชฌเชพเชเซเชจเซ เชธเชฎเชฏ เชฒเซเชงเซ. เชฎเชจเซเชฐเชเชเช เชนเชเซเชเชค: เชเซเชฒ เชธเชฎเชฏเชจเซ 5% DNS เชเซเชตเซเชฐเซเช เชชเชฐ เชเชฐเซเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ:
เชชเซเชฐเซเชเซเชฐเชพเชฎ เชเซ เชธเชฐเชจเชพเชฎเชพเชเช เชฎเชพเชเซ เชเซเช เชเซ เชคเซ เชชเซเชธเซเชเชเซเชฐเซเชธเซเชเซเชฒเชจเชพ เชเซ. เชเชชเชฐ เชเซเชฒเชฟเช เชเชฐเซ FindByAge
:
เชฐเชธเชชเซเชฐเชฆ เชฐเซเชคเซ, เชชเซเชฐเซเชเซเชฐเชพเชฎ เชฌเชคเชพเชตเซ เชเซ เชเซ, เชธเซเชฆเซเชงเชพเชเชคเชฟเช เชฐเซเชคเซ, เชคเซเชฏเชพเช เชคเซเชฐเชฃ เชฎเซเชเซเชฏ เชธเซเชคเซเชฐเซเชคเซ เชเซ เชเซ เชตเชฟเชฒเชเชฌ เชเชฎเซเชฐเซ เชเซ: เชเชจเซเชเซเชถเชจ เชเซเชฒเชตเชพ เช เชจเซ เชฌเชเชง เชเชฐเชตเชพ, เชกเซเชเชพเชจเซ เชตเชฟเชจเชเชคเซ เชเชฐเชตเซ เช เชจเซ เชกเซเชเชพเชฌเซเช เชธเชพเชฅเซ เชเชจเซเชเซเช เชเชฐเชตเซเช. เชเชฒเซเช เชฌเชคเชพเชตเซ เชเซ เชเซ DNS เชตเชฟเชจเชเชคเซเช, เชเชชเชจเชฟเชเช เช เชจเซ เชเซเชฒเซเชเชฟเชเช เชเชจเซเชเซเชถเชจ เชเซเชฒ เชเชเซเชเซเชเซเชฏเซเชถเชจ เชธเชฎเชฏเชจเชพ เชฒเชเชญเช 13% เชเซเชเชฒเซ เชธเชฎเชฏ เชฒเซ เชเซ.
เชชเซเชฐเซเชตเชงเชพเชฐเชฃเชพ: เชชเซเชฒเชฟเชเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชจเซเชเซเชถเชจเชจเซ เชชเซเชจเชเชเชชเชฏเซเช เชเชฐเชตเชพเชฅเซ เชเช เช HTTP เชตเชฟเชจเชเชคเซเชจเซ เชธเชฎเชฏ เชเชเชพเชกเชตเซ เชเซเชเช, เชเซ เชเชเซเช เชฅเซเชฐเซเชชเซเช เช เชจเซ เชเชเซ เชตเชฟเชฒเชเชฌเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ.
เชเชชเซเชฒเชฟเชเซเชถเชจ เชธเซเช เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช - เชชเซเชฐเชฏเซเช
เช
เชฎเซ เชธเซเชฐเซเชค เชเซเชก เช
เชชเชกเซเช เชเชฐเซเช เชเซเช, เชฆเชฐเซเช เชตเชฟเชจเชเชคเซ เชฎเชพเชเซ Postgresql เชธเชพเชฅเซ เชเซเชกเชพเชฃ เชฆเซเชฐ เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซ. เชชเซเชฐเชฅเชฎ เชตเชฟเชเชฒเซเชชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชเซ
db, err := sql.Open("postgres", dbConnectionString)
db.SetMaxOpenConns(8)
if err != nil {
return nil, err
}
เช เชฎเชฒ, เช เชตเชฒเซเชเชจ, เชตเชฟเชถเซเชฒเซเชทเชฃ
เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก 1000 เชตเชฟเชจเชเชคเซเช เชธเชพเชฅเซ เชชเชฐเซเชเซเชทเชฃ เชชเซเชจเชเชชเซเชฐเชพเชฐเชเชญ เชเชฐเซเชฏเชพ เชชเชเซ, เชคเซ เชธเซเชชเชทเซเช เชเซ เชเซ p99 เชจเซเช เชฒเซเชเชจเซเชธเซ เชฒเซเชตเชฒ 60ms เชจเชพ SLO เชธเชพเชฅเซ เชธเชพเชฎเชพเชจเซเชฏ เชฅเช เชเชฏเซเช เชเซ!
เชเชฟเชเชฎเชค เชถเซเช เชเซ?
เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก 10000 เชตเชฟเชจเชเชคเซเช / เชธเชฐเซเชตเชฐ เชฆเซเช 1000 เชตเชฟเชจเชเชคเซเช = 10 เชธเชฐเซเชตเชฐเซเชธ + 1
เชเชพเชฒเซ เชคเซเชจเซ เชตเชงเซ เชธเชพเชฐเซ เชฐเซเชคเซ เชเชฐเซเช!
เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก 2000 เชตเชฟเชจเชเชคเซเช
เชฒเซเชกเชจเซ เชฌเชฎเชฃเซเช เชเชฐเชตเซเช เช เช เชตเชธเซเชคเซ เชฌเชคเชพเชตเซ เชเซ, เชเชชเชฒเชพ เชกเชพเชฌเชพ เชเชฒเซเช เชฌเชคเชพเชตเซ เชเซ เชเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก 2000 เชตเชฟเชจเชเชคเซเช เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเชพเชจเซเช เชธเชเชเชพเชฒเชจ เชเชฐเซ เชเซ, p100 60ms เชเชฐเชคเชพเช เชเชเซ เชเซ, p99 SLO เชจเซ เชธเชเชคเซเชทเซเช เชเชฐเซ เชเซ.
เชเชฐเซเชเชจเซ เชฆเซเชฐเชทเซเชเชฟเช:
เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก 10000 เชตเชฟเชจเชเชคเซเช / เชธเชฐเซเชตเชฐ เชฆเซเช 2000 เชตเชฟเชจเชเชคเซเช = 5 เชธเชฐเซเชตเชฐเซเชธ + 1
เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก 3000 เชตเชฟเชจเชเชคเซเช
เช เชนเซเช เชเชชเซเชฒเชฟเชเซเชถเชจ 3000ms เชเชฐเชคเชพเช เชเชเซ p99 เชฒเซเชเชจเซเชธเซ เชธเชพเชฅเซ 60 เชตเชฟเชจเชเชคเซเช เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชถเชเซ เชเซ. SLO เชจเซเช เชเชฒเซเชฒเชเชเชจ เชฅเชคเซเช เชจเชฅเซ, เช เชจเซ เชเชฟเชเชฎเชค เชจเซเชเซ เชฎเซเชเชฌ เชธเซเชตเซเชเชพเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ:
เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก 10000 เชตเชฟเชจเชเชคเซเช / เชธเชฐเซเชตเชฐ เชฆเซเช 3000 เชตเชฟเชจเชเชคเซเช = 4 เชธเชฐเซเชตเชฐ + 1 (เชฒเซเชเชเซ เชฐเชพเชเชจเซเชกเช เชช เชเชฐเซเชฏเซเช เชเซ, เชเชถเชฐเซ เช เชจเซเชตเชพเชฆเช)
เชเชพเชฒเซ เชตเชฟเชถเซเชฒเซเชทเชฃเชจเซ เชฌเซเชเซ เชฐเชพเชเชจเซเชก เช เชเชฎเชพเชตเซเช.
เชตเชฟเชถเซเชฒเซเชทเชฃ - เชชเซเชฐเซเชตเชงเชพเชฐเชฃเชพ
เช เชฎเซ เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก 3000 เชตเชฟเชจเชเชคเซเช เชชเชฐ เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซ เชกเชฟเชฌเช เชเชฐเชตเชพเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ เชเชเชคเซเชฐเชฟเชค เช เชจเซ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเซเช เชเซเช:
เชนเชเซ เชชเชฃ 6% เชธเชฎเชฏ เชเซเชกเชพเชฃเซ เชธเซเชฅเชพเชชเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชฐเซเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชชเซเชฒ เชธเซเชฏเซเชเชฟเชค เชเชฐเชตเชพเชฅเซ เชชเซเชฐเชฆเชฐเซเชถเชจเชฎเชพเช เชธเซเชงเชพเชฐเซ เชฅเชฏเซ เชเซ, เชชเชฐเชเชคเซ เชคเชฎเซ เชนเชเซ เชชเชฃ เชเซเช เชถเชเซ เชเซ เชเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชกเซเชเชพเชฌเซเชเชฎเชพเช เชจเชตเชพ เชเซเชกเชพเชฃเซ เชฌเชจเชพเชตเชตเชพ เชชเชฐ เชเชพเชฎ เชเชฐเชตเชพเชจเซเช เชเชพเชฒเซ เชฐเชพเชเซ เชเซ.
เชชเซเชฐเซเชตเชงเชพเชฐเชฃเชพ: เชเชจเซเชเซเชถเชจเซเชธ, เชชเซเชฒเชจเซ เชนเชพเชเชฐเซ เชนเซเชตเชพ เชเชคเชพเช, เชนเชเซ เชชเชฃ เชเซเชกเชตเชพเชฎเชพเช เชเชตเซ เชเซ เช เชจเซ เชธเชพเชซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซเชฅเซ เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซ เชคเซเชฎเชจเซ เชซเชฐเซเชฅเซ เชธเซเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชชเซเชฒเชจเชพ เชเชฆ เชชเชฐ เชฌเชพเชเซ เชเชจเซเชเซเชถเชจเซเชธเชจเซ เชธเชเชเซเชฏเชพ เชธเซเช เชเชฐเชตเชพเชฅเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชเชจเซเชเซเชถเชจ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเซ เชธเชฎเชฏ เชตเชฟเชคเชพเชตเซ เชเซ เชคเซ เชเชเชพเชกเซเชจเซ เชตเชฟเชฒเชเชฌเชฎเชพเช เชฎเชฆเชฆ เชเชฐเชตเซ เชเซเชเช..
เชเชชเซเชฒเชฟเชเซเชถเชจ เชธเซเช เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช - เชชเซเชฐเชฏเซเช
เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซ เชฐเชนเซเชฏเชพเช เชเซ
db, err := sql.Open("postgres", dbConnectionString)
db.SetMaxOpenConns(8)
db.SetMaxIdleConns(8)
if err != nil {
return nil, err
}
เช เชฎเชฒ, เช เชตเชฒเซเชเชจ, เชตเชฟเชถเซเชฒเซเชทเชฃ
เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก 3000 เชตเชฟเชจเชเชคเซเช
p99 เชจเซเชเชงเชชเชพเชคเซเชฐ เชฐเซเชคเซ เชเชเชพ p60 เชธเชพเชฅเซ 100ms เชเชฐเชคเชพเช เชเชเซเช เชเซ!
เชเซเชฏเซเชค เชเซเชฐเชพเชซ เชคเชชเชพเชธเซ เชฌเชคเชพเชตเซ เชเซ เชเซ เชเซเชกเชพเชฃ เชนเชตเซ เชงเซเชฏเชพเชจเชชเชพเชคเซเชฐ เชจเชฅเซ! เชเชพเชฒเซ เชตเชงเซ เชตเชฟเชเชคเชตเชพเชฐ เชคเชชเชพเชธ เชเชฐเซเช pg(*conn).query
โ เช
เชนเซเช เชเชจเซเชเซเชถเชจ เชธเซเชฅเชพเชชเชฟเชค เชฅเช เชฐเชนเซเชฏเซเช เชนเซเชตเชพเชจเซเช เชชเชฃ เช
เชฎเซ เชจเซเชเชงเซเชฏเซเช เชจเชฅเซ.
เชจเชฟเชทเซเชเชฐเซเชท
เชเซเชฐเชพเชนเชเชจเซ เช เชชเซเชเซเชทเชพเช เช เชจเซ เชฌเชฟเชจ-เชเชพเชฐเซเชฏเชเชพเชฐเซ เชเชฐเซเชฐเชฟเชฏเชพเชคเซ เชชเซเชฐเซ เชฅเช เชฐเชนเซ เชเซ เชคเซ เชธเชฎเชเชตเชพ เชฎเชพเชเซ เชชเซเชฐเชฆเชฐเซเชถเชจ เชตเชฟเชถเซเชฒเซเชทเชฃ เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชเซ. เชเซเชฐเชพเชนเชเชจเซ เช เชชเซเชเซเชทเชพเช เชธเชพเชฅเซ เช เชตเชฒเซเชเชจเซเชจเซ เชคเซเชฒเชจเชพ เชเชฐเซเชจเซ เชตเชฟเชถเซเชฒเซเชทเชฃ เช เชจเชเซเชเซ เชเชฐเชตเชพเชฎเชพเช เชฎเชฆเชฆ เชเชฐเซ เชถเชเซ เชเซ เชเซ เชถเซเช เชธเซเชตเซเชเชพเชฐเซเชฏ เชเซ เช เชจเซ เชถเซเช เชจเชฅเซ. Go เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชฒเชพเชเชฌเซเชฐเซเชฐเซเชฎเชพเช เชฌเชจเซเชฒเชพ เชถเชเซเชคเชฟเชถเชพเชณเซ เชธเชพเชงเชจเซ เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ เชเซ เชตเชฟเชถเซเชฒเซเชทเชฃเชจเซ เชธเชฐเชณ เช เชจเซ เชธเซเชฒเชญ เชฌเชจเชพเชตเซ เชเซ.
เชธเซเชฐเซเชธ: www.habr.com