Open ghkdqhrbals opened 11 months ago
Metric | Before | After | Change |
---|---|---|---|
TPS ํ๊ท | 390.94 | 416.85 | 6.63% ๐ข |
TPS p95 | 464.73 | 472.70 | 1.71% ๐ข |
TPS p99 | 491.26 | 520.06 | 5.86% ๐ข |
MTTFB ํ๊ท | 496.27 ms | 456.42 ms | 8.03% ๐ข |
MTTFB p95 | 882.81 ms | 799.67 ms | 9.42% ๐ข |
MTTFB p99 | 1163.81 ms | 1130.67 ms | 2.85% ๐ข |
MTTFB ์ฐจ์ด ํ๊ท | 106.51 ms | 74.02 ms | 30.5% ๐ข |
MTTFB ํ๊ท ์ ์ธ ๋ณ๋๋ฅ | 20.77% | 15.27% | 26.48% ๐ข |
ํ์ฌ Chat ์ id ๋ String ๋ก ์ค์ ๋์ด์๋๋ฐ Long ํ์ ์ผ๋ก ๋ณ๊ฒฝํ ๋ค MTTFB ํ๊ท ๋ณ๋์น๊ฐ 30% ์์ ํ ๋์์ต๋๋ค. ์ด์ ๊ฐ ๋ญ๊น์? ๋ฐ๋ก Long ํ์ ์ผ๋ก ๋ณ๊ฒฝํ๊ณ Postgresql ์ SERIAL ์ ํตํด ์๋์ฆ๊ฐ ์ต์ ์ ์ฌ์ฉํ๋ค๋ฉด bํธ๋ฆฌ ๋ฆฌ๋ฐธ๋ฐ์ฑ์ด ๊ฑฐ์ ๋๋ ์ ํ ํ์ํ์ง ์๊ธฐ ๋๋ฌธ์ด์ฃ ! INSERT ์ฟผ๋ฆฌ ์ฑ๋ฅ์ด ์ฆ๊ฐํ ๊ฒ์ ๋๋ค.
- b-tree ์ฐจ์๋ ๋ช?
Postgresql ์ ๊ธฐ๋ณธ์ธ๋ฑ์ฑ ์ ๋ต์ด bํธ๋ฆฌ๋ก ๋์ด์์ด์. ๊ทธ๋ฆฌ๊ณ ์ด bํธ๋ฆฌ์ ์ฐจ์๋ Postgresql ๊ฐ ์๋์ผ๋ก ๊ฒฐ์ ํ๋ต๋๋ค. ์๋์ผ๋ก ๋ง์ง๋ ๊ฑด ๋งํ์์ด์. ์ผ๋ฐ์ ์ผ๋ก ๋ ธ๋์ ํฌ๊ธฐ๊ฐ 8KB ๋ก ์ค์ ๋์ด ์๊ณ ์ด์ ๋ง์ถ์ด ๊ฐ ๋ ธ๋์ ์ฐจ์๊ฐ ์ค์ ๋๋ค๊ณ ๋ณด๋ฉด ๋ ๊ฒ ๊ฐ์์.
- Long ํ์ ID์ ์ด์
- ํฌ๊ธฐ์ ํจ์จ์ฑ: Long ํ์ ์ 64๋นํธ(8๋ฐ์ดํธ)์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ฉฐ, ์ด๋ UUID(128๋นํธ, 16๋ฐ์ดํธ)๋ณด๋ค ์์ต๋๋ค. ์์ ํฌ๊ธฐ๋ ์ธ๋ฑ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์ด๊ณ , ๋์คํฌ I/O๋ฅผ ์ต์ํํฉ๋๋ค. ๊ทธ๋ฌ๋๊น "key์ ํฌ๊ธฐ๊ฐ ์์์๋ก ๋ ธ๋์ ์ฐจ์๊ฐ ์ฆ๊ฐํ๊ณ block ๋จ์ ๋์คํฌ i/o ๊ฐ ๋ฐ์ํ๋ ๋น๋์๊ฐ ๋ฎ์์ง๋ค"๋ ๊ฒ์ด์ฃ .
- ์์ฐจ์ ์ฆ๊ฐ: Long ํ์ ID๋ ์ฃผ๋ก DB ์์ ์ํ์ค๋ฅผ ๋ฐ์์ ์์ฐจ์ ์ผ๋ก ์ฆ๊ฐ์ํต๋๋ค. ์ด๋ B-ํธ๋ฆฌ์ ๊ท ํ์ ์ ์งํ๋ฉฐ, ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ํธ๋ฆฌ์ ๋งจ ๋์ ์ถ๊ฐ๋๋ฏ๋ก ์ฌ์กฐ์ (rebalancing)์ด ๊ฑฐ์ ํ์ํ์ง ์์ต๋๋ค. ์ฝ์ ์ฑ๋ฅ์ด ๋ฐ์ด๋๊ฒ ์ฃ ? ๋ง์ฝ UUID ๋ก ํ๋ฉด ์ง์ง ์ฌ๊ธฐ์ ๊ธฐ ์ถ๊ฐ๋๊ธฐ ๋๋ฌธ์ ๋ฆฌ๋ฐธ๋ฐ์ฑ์ด ๊ณ์ํด์ ์ผ์ด๋์ผํฉ๋๋ค. ์ฝ๊ฒ ๋งํ๋ฉด Long ์ ์ฌ๋ฌ ๋ ธ๋๋ค์ ๋น ์๋ฆฌ๋ฅผ ์ฐจ๊ทผ์ฐจ๊ทผ ์ฑ์๋๊ฐ์ง๋ง String ์ ๋ ธ๋๋ค์ ๋น์๋ฆฌ๋ฅผ ๋ฌด์์๋ก ์ฑ์๋๊ฐ๋ ๊ฒ์ด๊ธฐ๋๋ฌธ์ ๋ฆฌ๋ฐธ๋ฐ์ฑ ๋น๋์๊ฐ ๋์ต๋๋ค.
- ๋ฒ์ ๊ฒ์ ์ต์ ํ: ์ซ์ ๊ธฐ๋ฐ์ ID๋ ๋ฒ์ ๊ฒ์์ ์ ํฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํน์ ID ๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ฒ์ํ ์ ์์ต๋๋ค. ์ฑํ ์ ๊ฒฝ์ฐ์๋ ์๋ฌด๋๋ ์ฑํ id ๊ฐ ๊ทธ๋ฃน์ฒ๋ผ ๋ถ์ด์์ต๋๋ค. ์ฆ, ์ด๋ ํ ๋ฒ์๊ฐ ์๊ธฐ ๋๋ฌธ์ Long ํ์ id ๊ฐ ์ ๋ฆฌํฉ๋๋ค.
- String ์ b-tree key ๋ก ์ค์ ํ๋ค๋ฉด ์ ๋ฆฌํ ์ ๋ ์์ต๋๋ค.
String ๊ฐ์ด ํน๋ณํ ์๋ฏธ๊ฐ ์์ ๋ : ์๋ก ์ ํ ์ด๋ฆ, ์ฃผ์, ์ค๋ช ๋ฑ์ ์์ธํํ๊ณ ๊ฒ์ํ ๋ String ํค๋ ํจ๊ณผ์ ์ ๋๋ค. ํ์ง๋ง Chat id ์ ๊ฒฝ์ฐ ํน๋ณํ ์๋ฏธ๊ฐ ์๊ธฐ๋๋ฌธ์ Long ํ์ ์ด ๋ ์ฑ๋ฅ๋ฉด์์ ์ด์ ์ ๊ฐ์ ธ๋ค ์ค๊ฑฐ์์.
์ฑ๋ฅ๊ฐ์ ์ด์ ์ ๊ธฐ์กด ์๋น์ค์ ์ฑ๋ฅ์ธก์
10๋ถ๊ฐ ์ฑํ ์ ์ก API ์ ํผํฌ๋จผ์ค๋ฅผ ramp-up VUSER 300 ์ผ๋ก ์ธก์ ํ์์ต๋๋ค. ์๋์ ํ ์ด๋ธ์ Thread warm up ์ด์ ๊ณผ ์ดํ ์ฐจ์ด๋ฅผ ๊ด์ฐฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ํ๋ ์์ ์ดํ์ ๊ทธ๋ํ์ ๋๋ค.
์ดํ ์ฑ๋ฅ๊ฐ์ ๋น๊ต๋ warm-up ์ดํ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋น๊ตํฉ๋๋ค.