PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

Data Egret "Fundamentals of PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง"์—์„œ Alexey Lesovsky๊ฐ€ ์ž‘์„ฑํ•œ ๋ณด๊ณ ์„œ ์‚ฌ๋ณธ์„ ์ฝ์–ด ๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ด ๋ณด๊ณ ์„œ์—์„œ Alexey Lesovsky๋Š” ์‚ฌํ›„ ํ†ต๊ณ„์˜ ํ•ต์‹ฌ ์‚ฌํ•ญ, ๊ทธ ์˜๋ฏธ, ๋ชจ๋‹ˆํ„ฐ๋ง์— ์ฐธ์—ฌํ•ด์•ผ ํ•˜๋Š” ์ด์œ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋‹ˆํ„ฐ๋ง์— ์–ด๋–ค ๊ทธ๋ž˜ํ”„๊ฐ€ ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋Š”์ง€, ์–ด๋–ป๊ฒŒ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š”์ง€, ์–ด๋–ป๊ฒŒ ํ•ด์„ํ•ด์•ผ ํ•˜๋Š”์ง€. ์ด ๋ณด๊ณ ์„œ๋Š” Postgres ๋ฌธ์ œ ํ•ด๊ฒฐ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์ž, ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž ๋ฐ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

์ œ ์ด๋ฆ„์€ Alexey Lesovsky์ด๊ณ  Data Egret ํšŒ์‚ฌ๋ฅผ ๋Œ€ํ‘œํ•ฉ๋‹ˆ๋‹ค.

๋‚˜ ์ž์‹ ์— ๋Œ€ํ•œ ๋ช‡ ๋งˆ๋””. ์ €๋Š” ์˜ค๋ž˜ ์ „์— ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋กœ ์ผ์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋‹ค์–‘ํ•œ Linux ์‹œ์Šคํ…œ์„ ๊ด€๋ฆฌํ•˜๊ณ  Linux์™€ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ์ž‘์—…(์˜ˆ: ๊ฐ€์ƒํ™”, ๋ชจ๋‹ˆํ„ฐ๋ง, ํ”„๋ก์‹œ ์ž‘์—… ๋“ฑ)์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์–ด๋Š ์‹œ์ ์—์„œ ๋‚˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, PostgreSQL์— ๋Œ€ํ•œ ์ž‘์—…์„ ๋” ๋งŽ์ด ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๋ฅผ ์ •๋ง ์ข‹์•„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์–ด๋Š ์‹œ์ ๋ถ€ํ„ฐ ์ €๋Š” ๊ทผ๋ฌด ์‹œ๊ฐ„์˜ ๋Œ€๋ถ€๋ถ„์„ PostgreSQL์—์„œ ์ž‘์—…ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ ์ฐจ์ ์œผ๋กœ ์ €๋Š” PostgreSQL DBA๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ œ ๊ฒฝ๋ ฅ ์ „๋ฐ˜์— ๊ฑธ์ณ ์ €๋Š” ํ•ญ์ƒ ํ†ต๊ณ„, ๋ชจ๋‹ˆํ„ฐ๋ง, ์›๊ฒฉ ์ธก์ •์ด๋ผ๋Š” ์ฃผ์ œ์— ๊ด€์‹ฌ์„ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ œ๊ฐ€ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž์˜€์„ ๋•Œ Zabbix์™€ ๋งค์šฐ ๊ธด๋ฐ€ํ•˜๊ฒŒ ํ˜‘๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์€ ์Šคํฌ๋ฆฝํŠธ ์„ธํŠธ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. zabbix ํ™•์žฅ. ๊ทธ๋Š” ๊ทธ ๋‹น์‹œ ๊ฝค ์ธ๊ธฐ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Linux๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค์–‘ํ•œ ๊ตฌ์„ฑ ์š”์†Œ๊นŒ์ง€ ๋งค์šฐ ๋‹ค์–‘ํ•œ ์ค‘์š”ํ•œ ์‚ฌํ•ญ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ์€ PostgreSQL ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๋ฏธ PostgreSQL ํ†ต๊ณ„ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ๊ธ€์„ ์ž‘์„ฑ ์ค‘์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€์ด๋ผ๊ณ  pgCenter (Habrรฉ์— ๊ด€ํ•œ ๊ธฐ์‚ฌ - ์‹ ๊ฒฝ๊ณผ ๊ธด์žฅ์ด ์—†๋Š” ๊ฒฝ๊ธฐ ํ›„ ํ†ต๊ณ„).

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

์•ฝ๊ฐ„์˜ ์†Œ๊ฐœ๊ธ€์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๊ณ ๊ฐ, ๊ณ ๊ฐ์€ ์–ด๋–ค ์ƒํ™ฉ์— ์ฒ˜ํ•ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ด€๋ จ๋œ ์ผ์ข…์˜ ์‚ฌ๊ณ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ด๋ฏธ ๋ณต์›๋˜๋ฉด ๋ถ€์„œ์žฅ์ด๋‚˜ ๊ฐœ๋ฐœ ์ฑ…์ž„์ž๊ฐ€ ์™€์„œ ์ด๋ ‡๊ฒŒ ๋งํ•ฉ๋‹ˆ๋‹ค. "์นœ๊ตฌ ์—ฌ๋Ÿฌ๋ถ„, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์œ ์ผ์ด ๋ฐœ์ƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์•ž์œผ๋กœ ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค." ์—ฌ๊ธฐ์—์„œ PostgreSQL, MySQL ๋˜๋Š” ๊ธฐํƒ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์„ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์„ ์กฐ์ •ํ•˜๋Š” ํฅ๋ฏธ๋กœ์šด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋™๋ฃŒ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ œ์•ˆํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. โ€œ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์žˆ๋‹ค๊ณ  ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ํ™œ์šฉํ•ด๋ณด์ž." ๋™๋ฃŒ๋“ค์ด ์„œ๋กœ ๋…ผ์Ÿ์„ ๋ฒŒ์ด๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ์šฐ๋ฆฌ๋Š” ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ ํƒํ–ˆ์ง€๋งŒ PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์ด ์ œ๋Œ€๋กœ ์ œ๊ณต๋˜์ง€ ์•Š์•„ ํ•ญ์ƒ ๋ฌด์–ธ๊ฐ€๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค. GitHub์—์„œ ์ผ๋ถ€ ์ €์žฅ์†Œ๋ฅผ ๊ฐ€์ ธ์™€์„œ ๋ณต์ œํ•˜๊ณ , ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์กฐ์ •ํ•˜๊ณ , ์–ด๋–ป๊ฒŒ๋“  ์‚ฌ์šฉ์ž ์ •์˜ํ•˜์„ธ์š”. ๊ทธ๋ฆฌ๊ณ  ๊ฒฐ๊ตญ ๊ทธ๊ฒƒ์€ ์ผ์ข…์˜ ์ˆ˜์ž‘์—…์œผ๋กœ ๋๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

๋”ฐ๋ผ์„œ ์ด๋ฒˆ ๊ฐ•์—ฐ์—์„œ๋Š” PostgreSQL๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์‹์„ ์ œ๊ณตํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•ž์œผ๋กœ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ธด๊ธ‰ ์ƒํ™ฉ์„ ์ฆ‰์‹œ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์™„๋ฃŒํ•˜์—ฌ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ง€์‹์„ ์ œ๊ณตํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์œ ์ตํ•˜๊ฒŒ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด ๋ณด๊ณ ์„œ์— ํฌํ•จ๋  ์•„์ด๋””์–ด๋Š” DBMS์ด๋“  noSQL์ด๋“  ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ง์ ‘ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ PostgreSQL๋ฟ๋งŒ ์•„๋‹ˆ๋ผ PostgreSQL์—์„œ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋งŽ์€ ๋ ˆ์‹œํ”ผ๊ฐ€ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. PostgreSQL์ด ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฟผ๋ฆฌ์˜ ์˜ˆ, ์—”ํ„ฐํ‹ฐ์˜ ์˜ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  DBMS์— ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋Š” ๋™์ผํ•œ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ด๋ฅผ ์กฐ์ •ํ•˜๊ณ  ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค๋‚œ ๋ณด๊ณ ์„œ์— ๋‚˜์˜ค์ง€ ์•Š์„ ๊ฑฐ์•ผ
์ธก์ •ํ•ญ๋ชฉ์„ ์ „๋‹ฌํ•˜๊ณ  ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ํ›„์ฒ˜๋ฆฌํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด์„œ๋Š” ์•„๋ฌด ๋ง๋„ ํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๊ฒฝ๊ณ ์— ๋Œ€ํ•ด ์•„๋ฌด ๋ง๋„ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์Šคํ† ๋ฆฌ๊ฐ€ ์ง„ํ–‰๋˜๋ฉด์„œ ๊ธฐ์กด ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๋‹ค์–‘ํ•œ ์Šคํฌ๋ฆฐ์ƒท์„ ๋ณด์—ฌ์ฃผ๋ฉฐ ์–ด๋–ป๊ฒŒ๋“  ๋น„ํŒ์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋‚˜๋Š” ์ด๋Ÿฌํ•œ ์ œํ’ˆ์— ๋Œ€ํ•œ ๊ด‘๊ณ  ๋˜๋Š” ๊ด‘๊ณ  ๋ฐฉ์ง€๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด ๋ธŒ๋žœ๋“œ ์ด๋ฆ„์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋“  ์šฐ์—ฐ์˜ ์ผ์น˜๋Š” ๋ฌด์ž‘์œ„์ด๋ฉฐ ์ƒ์ƒ์— ๋งก๊น๋‹ˆ๋‹ค.
PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค
๋จผ์ € ๋ชจ๋‹ˆํ„ฐ๋ง์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‹ˆํ„ฐ๋ง์€ ๋งค์šฐ ์ค‘์š”ํ•œ ์ผ์ž…๋‹ˆ๋‹ค. ๋ชจ๋‘๊ฐ€ ์ด๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋™์‹œ์— ๋ชจ๋‹ˆํ„ฐ๋ง์€ ๋น„์ฆˆ๋‹ˆ์Šค ์ œํ’ˆ๊ณผ ๊ด€๋ จ์ด ์—†์œผ๋ฉฐ ํšŒ์‚ฌ์˜ ์ด์ต์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํ•ญ์ƒ ์ž”์—ฌ ์‹œ๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋ง์— ์‹œ๊ฐ„์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์žˆ์œผ๋ฉด ๋ชจ๋‹ˆํ„ฐ๋ง์„ ํ•˜๊ณ , ์‹œ๊ฐ„์ด ์—†์œผ๋ฉด ๋ฐฑ๋กœ๊ทธ์— ๋„ฃ์–ด๋‘๊ณ  ์–ธ์  ๊ฐ€ ์ด ์ž‘์—…์œผ๋กœ ๋Œ์•„์˜ค๊ฒ ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ ‘๊ทผํ•  ๋•Œ ๋ชจ๋‹ˆํ„ฐ๋ง์€ ์ข…์ข… ๋ถˆ์™„์ „ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์„ ๋” ์ž˜ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋‹ˆํ„ฐ๋ง์€ ํ•ญ์ƒ ์™„๋ฃŒ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ •๋ณด์˜ ์ €์žฅ์†Œ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋‹ˆํ„ฐ๋ง์ด ํ•„์š”ํ•œ ๋ณต์žกํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ •๋ณด๋Š” ํšŒ์‚ฌ์— ๋งค์šฐ ์ค‘์š”ํ•˜๋ฏ€๋กœ ์–ด๋–ค ๊ฒฝ์šฐ์—๋„ ์†์‹ค๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋™์‹œ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋งค์šฐ ๋ณต์žกํ•œ ์†Œํ”„ํŠธ์›จ์–ด์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋งŽ์€ ์ˆ˜์˜ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ ์š”์†Œ ์ค‘ ์ƒ๋‹น์ˆ˜๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚คPostgreSQL์— ๊ด€ํ•ด ๊ตฌ์ฒด์ ์œผ๋กœ ์ด์•ผ๊ธฐํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋งŽ์€ ์ˆ˜์˜ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋œ ์ฒด๊ณ„ ํ˜•ํƒœ๋กœ ํ‘œํ˜„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ์„œ๋กœ ์ƒํ˜ธ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค. ๋™์‹œ์— PostgreSQL์—๋Š” ์†Œ์œ„ Stats Collector ํ•˜์œ„ ์‹œ์Šคํ…œ์ด ์žˆ์–ด ์ด๋Ÿฌํ•œ ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ ์ž‘๋™์— ๋Œ€ํ•œ ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ๊ด€๋ฆฌ์ž๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋Ÿฌํ•œ ํ†ต๊ณ„๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์ผ์ข…์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํ†ต๊ณ„๋Š” ํŠน์ • ๊ธฐ๋Šฅ ๋ฐ ๋ณด๊ธฐ ์„ธํŠธ์˜ ํ˜•ํƒœ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์ด๋ผ๊ณ  ๋ถ€๋ฅผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ผ๋ฐ˜ psql ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๊ณ , ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ๊ณผ ๋ณด๊ธฐ๋ฅผ ์„ ํƒํ•˜๊ณ , PostgreSQL ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ ์ž‘๋™์— ๋Œ€ํ•œ ํŠน์ • ์ˆ˜์น˜๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ˆซ์ž๋ฅผ ์ฆ๊ฒจ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์— ์ถ”๊ฐ€ํ•˜๊ณ , ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๊ณ , ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ , ์žฅ๊ธฐ์ ์œผ๋กœ ๋ถ„์„์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด ๋ณด๊ณ ์„œ์—์„œ๋Š” ์ด ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์™„์ „ํžˆ ๋‹ค๋ฃจ์ง€๋Š” ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ํ•˜๋ฃจ ์ข…์ผ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ๋‘ ๊ฐ€์ง€, ์„ธ ๊ฐ€์ง€ ๋˜๋Š” ๋„ค ๊ฐ€์ง€ ์‚ฌํ•ญ์„ ๋‹ค๋ฃจ๊ณ  ์ด๋Ÿฌํ•œ ์‚ฌํ•ญ์ด ๋ชจ๋‹ˆํ„ฐ๋ง์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋˜๋Š”์ง€ ์•Œ๋ ค ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.
PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋‹ˆํ„ฐ๋ง์— ๊ด€ํ•ด ์ด์•ผ๊ธฐํ•œ๋‹ค๋ฉด ๋ฌด์—‡์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด์•ผ ํ• ๊นŒ์š”? ์šฐ์„ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค์ด๊ณ  ๊ฐ€์šฉ์„ฑ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์ผ๋ถ€ ์งˆ์ , ์–‘์  ํŠน์„ฑ๋„ ์ œ๊ณตํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์šฉ์„ฑ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

๋˜ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ๋Š” ์ผ๋ฐ˜ ํด๋ผ์ด์–ธํŠธ์ผ ์ˆ˜๋„ ์žˆ๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํ•ด๋ฅผ ๋ผ์น  ์ˆ˜ ์žˆ๋Š” ์œ ํ•ดํ•œ ํด๋ผ์ด์–ธํŠธ์ผ ์ˆ˜๋„ ์žˆ์œผ๋ฏ€๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๋“ค์˜ ํ™œ๋™์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์ถ”์ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐ๋˜๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ ์ž‘์—…์„ ์‹œ์ž‘ํ•œ๋‹ค๋Š” ๊ฒƒ์ด ๋ถ„๋ช…ํ•˜๋ฏ€๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹, ์ฆ‰ ์–ด๋–ค ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜๊ณ  ์–ด๋Š ์ •๋„ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๊ณ ๊ฐ์ด ์ƒ์„ฑํ•˜๋Š” ์›Œํฌ๋กœ๋“œ๋ฅผ ํ‰๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

๊ทธ๋Ÿฌ๋‚˜ ์›Œํฌ๋กœ๋“œ๋„ ๋ฌผ๋ก  ์š”์ฒญ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๊ณ  ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์žˆ๋Š” ์ฟผ๋ฆฌ๋ฅผ ํ‰๊ฐ€ํ•˜๊ณ , ์ฟผ๋ฆฌ์˜ ์ ์ ˆ์„ฑ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ๋น„๋šค๊ฒŒ ์ž‘์„ฑ๋˜์ง€ ์•Š์•˜๋Š”์ง€, ์ผ๋ถ€ ์˜ต์…˜์„ ๋‹ค์‹œ ์ž‘์„ฑํ•˜์—ฌ ๋” ๋น ๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋” ๋‚˜์€ ์„ฑ๋Šฅ์œผ๋กœ.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํ•ญ์ƒ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ฑ๋Šฅ์„ ์ข‹์€ ์ˆ˜์ค€์œผ๋กœ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋ฏ€๋กœ ์ž์ฒด์ ์œผ๋กœ ์ž‘๋™ํ•˜๋ ค๋ฉด ์ผ์ •๋Ÿ‰์˜ ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋™์‹œ์— ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ๋ฆฌ์†Œ์Šค์™€ ๊ฒน์น  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํƒ์š•์Šค๋Ÿฌ์šด ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ์„ฑ๋Šฅ์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค ์ธก๋ฉด์—์„œ ์™œ๊ณก์ด ์—†๋„๋ก ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์ถ”์ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋‹ˆํ„ฐ๋ง ์ธก๋ฉด์—์„œ ์ด ๋ชจ๋“  ๊ฒƒ์€ ์‹œ์Šคํ…œ ์ธก์ •ํ•ญ๋ชฉ์— ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋Œ€๋ถ€๋ถ„์˜ ์ธํ”„๋ผ๊ฐ€ ํด๋ผ์šฐ๋“œ๋กœ ์ด๋™ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•˜๋ฉด ๊ฐœ๋ณ„ ํ˜ธ์ŠคํŠธ์˜ ์‹œ์Šคํ…œ ์ง€ํ‘œ๋Š” ํ•ญ์ƒ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ์—ฌ์ „ํžˆ ๊ด€๋ จ์„ฑ์ด ์žˆ์œผ๋ฉฐ ์‹œ์Šคํ…œ ๋ฉ”ํŠธ๋ฆญ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

์‹œ์Šคํ…œ ์ธก์ •ํ•ญ๋ชฉ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์–ด๋Š ์ •๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ตœ์‹  ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์€ ์ด๋ฏธ ์ด๋Ÿฌํ•œ ์ธก์ •ํ•ญ๋ชฉ์„ ์ง€์›ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ์ผ๋ถ€ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ์—ฌ์ „ํžˆ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ผ๋ถ€ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋˜ํ•œ ๊ทธ๊ฒƒ๋“ค์„ ๋‹ค๋ฃฐ ๊ฒƒ์ด๊ณ , ๊ทธ๊ฒƒ๋“ค์— ๊ด€ํ•œ ์—ฌ๋Ÿฌ ์Šฌ๋ผ์ด๋“œ๊ฐ€ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค
๊ณ„ํš์˜ ์ฒซ ๋ฒˆ์งธ ํฌ์ธํŠธ๋Š” ์ ‘๊ทผ์„ฑ์ž…๋‹ˆ๋‹ค. ์ ‘๊ทผ์„ฑ์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋‚ด๊ฐ€ ์ดํ•ดํ•˜๋Š” ๊ฐ€์šฉ์„ฑ์€ ์„œ๋น„์Šค ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ๋ฒ ์ด์Šค์˜ ๋Šฅ๋ ฅ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋ฒ ์ด์Šค๊ฐ€ ์˜ฌ๋ผ๊ฐ€๊ณ  ์„œ๋น„์Šค๋กœ์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์—ฐ๊ฒฐ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ์ ‘๊ทผ์„ฑ์€ ํŠน์ • ํŠน์„ฑ์œผ๋กœ ํ‰๊ฐ€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์„ฑ์„ ๋Œ€์‹œ๋ณด๋“œ์— ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค
๋Œ€์‹œ๋ณด๋“œ๊ฐ€ โ€‹โ€‹๋ฌด์—‡์ธ์ง€๋Š” ๋ˆ„๊ตฌ๋‚˜ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ์ •๋ณด๊ฐ€ ์š”์•ฝ๋˜์–ด ์žˆ๋Š” ํ™”๋ฉด์„ ํ•œ ๋ฒˆ ์‚ดํŽด๋ดค์„ ๋•Œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ฆ‰์‹œ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฐ€์šฉ์„ฑ ๋ฐ ๊ธฐํƒ€ ์ฃผ์š” ํŠน์„ฑ์€ ํ•ญ์ƒ ๋Œ€์‹œ๋ณด๋“œ์— ํ‘œ์‹œ๋˜์–ด ์ด ์ •๋ณด๋ฅผ ํ•ญ์ƒ ๊ฐ€๊นŒ์ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๊ณ  ์กฐ์‚ฌ์— ์ด๋ฏธ ๋„์›€์ด ๋˜๋Š” ์ผ๋ถ€ ์ถ”๊ฐ€ ์„ธ๋ถ€ ์ •๋ณด๋Š” ์ผ๋ถ€ ๊ธด๊ธ‰ ์ƒํ™ฉ์„ ์กฐ์‚ฌํ•  ๋•Œ ์ด๋ฏธ ๋ณด์กฐ ๋Œ€์‹œ๋ณด๋“œ์— ๋ฐฐ์น˜๋˜๊ฑฐ๋‚˜ ํƒ€์‚ฌ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ๋“œ๋ฆด๋‹ค์šด ๋งํฌ์— ์ˆจ๊ฒจ์ ธ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

์ž˜ ์•Œ๋ ค์ง„ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งค์šฐ ๋ฉ‹์ง„ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋…€๋Š” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜์ง€๋งŒ ๋‚ด ๊ด€์ ์—์„œ๋Š” ๊ทธ๋…€๋Š” ๋Œ€์‹œ๋ณด๋“œ์— ๋Œ€ํ•œ ๊ฐœ๋…์ด ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. '๋Œ€์‹œ๋ณด๋“œ ๋งŒ๋“ค๊ธฐ' ๋งํฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๋งŒ๋“ค๋ฉด ๋‘ ๊ฐœ์˜ ์—ด๋กœ ๊ตฌ์„ฑ๋œ ๋ชฉ๋ก, ์ฆ‰ ๊ทธ๋ž˜ํ”„ ๋ชฉ๋ก์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ด์•ผ ํ•  ๋•Œ ๋งˆ์šฐ์Šค๋กœ ํด๋ฆญํ•˜๊ณ  ์Šคํฌ๋กคํ•˜๊ณ  ์›ํ•˜๋Š” ์ฐจํŠธ๋ฅผ ์ฐพ๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ์ฆ‰, ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ โ€‹โ€‹์—†์Šต๋‹ˆ๋‹ค. ์ฐจํŠธ ๋ชฉ๋ก๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

์ด ๋Œ€์‹œ๋ณด๋“œ์— ๋ฌด์—‡์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์‘๋‹ต ์‹œ๊ฐ„๊ณผ ๊ฐ™์€ ํŠน์„ฑ์œผ๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. PostgreSQL์—๋Š” pg_stat_statements ๋ทฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€๋งŒ ํ•ญ์ƒ ํ™œ์„ฑํ™”ํ•˜๊ณ  ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ค‘์š”ํ•œ ์‹œ์Šคํ…œ ๋ณด๊ธฐ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‹คํ–‰๋œ ๋ชจ๋“  ์‹คํ–‰ ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์œ„ ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์š”์ฒญ์˜ ์ด ์‹คํ–‰ ์‹œ๊ฐ„์„ ์š”์ฒญ ์ˆ˜๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค๋ถ€ํ„ฐ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๊ฒƒ์€ ๋ณ‘์›์˜ ํ‰๊ท  ์˜จ๋„์ž…๋‹ˆ๋‹ค. ์ตœ์†Œ ์ฟผ๋ฆฌ ์‹คํ–‰ ์‹œ๊ฐ„, ์ตœ๋Œ€ ๋ฐ ์ค‘์•™๊ฐ’๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ํ•„๋“œ์—์„œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐฑ๋ถ„์œ„์ˆ˜๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜๋„ ์žˆ๋Š”๋ฐ, PostgreSQL์—๋Š” ์ด์— ์ƒ์‘ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฏธ ์™„๋ฃŒ๋œ ์š”์ฒญ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์‘๋‹ต ์‹œ๊ฐ„์„ ํŠน์ง•์ง“๋Š” ๋ช‡ ๊ฐ€์ง€ ์ˆซ์ž๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ฐ€์งœ ์š”์ฒญ 'select 1'์„ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ์‘๋‹ต ์‹œ๊ฐ„์„ ์‚ดํŽด๋ณด์ง€๋งŒ ์ด๋ฏธ ์™„๋ฃŒ๋œ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต ์‹œ๊ฐ„์„ ๋ถ„์„ํ•˜์—ฌ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ์ˆ˜์น˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ์‹œ์Šคํ…œ์—์„œ ์ƒ์„ฑ๋˜๋Š” ์˜ค๋ฅ˜ ์ˆ˜๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด pg_stat_database ๋ทฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. xact_rollback ํ•„๋“œ์— ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค. ์ด ํ•„๋“œ์—๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋กค๋ฐฑ ์ˆ˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์˜ค๋ฅ˜ ์ˆ˜๋„ ๊ณ ๋ ค๋ฉ๋‹ˆ๋‹ค. ์ƒ๋Œ€์ ์œผ๋กœ ๋งํ•˜๋ฉด ์ด ์ˆ˜์น˜๋ฅผ ๋Œ€์‹œ๋ณด๋“œ์— ํ‘œ์‹œํ•˜๊ณ  ํ˜„์žฌ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ๋งŽ๋‹ค๋ฉด ๋กœ๊ทธ๋ฅผ ์‚ดํŽด๋ณด๊ณ  ์–ด๋–ค ์˜ค๋ฅ˜์ธ์ง€, ์™œ ๋ฐœ์ƒํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ณ  ํˆฌ์žํ•ด์„œ ํ•ด๊ฒฐํ•ด ๋ณด๋Š” ๊ฒƒ๋„ ์ข‹์€ ์ด์œ ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

ํƒ€์ฝ”๋ฏธํ„ฐ์™€ ๊ฐ™์€ ๊ฒƒ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ดˆ๋‹น ํŠธ๋žœ์žญ์…˜ ์ˆ˜์™€ ์ดˆ๋‹น ์š”์ฒญ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ƒ๋Œ€์ ์œผ๋กœ ๋งํ•˜์ž๋ฉด, ์ด๋Ÿฌํ•œ ์ˆซ์ž๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ˜„์žฌ ์„ฑ๋Šฅ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์š”์ฒญ์ด ์ตœ๊ณ ์กฐ์— ๋‹ฌํ–ˆ๋Š”์ง€, ํŠธ๋žœ์žญ์…˜์ด ์ตœ๊ณ ์กฐ์— ๋‹ฌํ–ˆ๋Š”์ง€, ๋˜๋Š” ๋ฐ˜๋Œ€๋กœ ์ผ๋ถ€ ๋ฐฑ์—”๋“œ๊ฐ€ ์‹คํŒจํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๊ณผ์†Œ๋กœ๋“œ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ด€์ฐฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ญ์ƒ ์ด ์ˆ˜์น˜๋ฅผ ๋ณด๊ณ  ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ์„ฑ๋Šฅ์ด ์ •์ƒ์ด์ง€๋งŒ ์œ„์™€ ์•„๋ž˜์˜ ๊ฐ’์€ ์ด๋ฏธ ์ผ์ข…์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์—†๋Š” ๊ฐ’์ด๋ผ๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋†’๋‹ค.

ํŠธ๋žœ์žญ์…˜ ์ˆ˜๋ฅผ ์ถ”์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์‹œ pg_stat_database ๋ทฐ๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋ฐ‹ ์ˆ˜์™€ ๋กค๋ฐฑ ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ดˆ๋‹น ํŠธ๋žœ์žญ์…˜ ์ˆ˜๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ์š”์ฒญ์ด ํ•˜๋‚˜์˜ ๊ฑฐ๋ž˜์— ํฌํ•จ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ชจ๋‘๊ฐ€ ์ดํ•ดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๋”ฐ๋ผ์„œ TPS์™€ QPS๋Š” ์•ฝ๊ฐ„ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์ดˆ๋‹น ์š”์ฒญ ์ˆ˜๋Š” pg_stat_statements์—์„œ ์–ป์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์™„๋ฃŒ๋œ ๋ชจ๋“  ์š”์ฒญ์˜ ํ•ฉ๊ณ„๋ฅผ ๊ฐ„๋‹จํžˆ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ฐ’์„ ์ด์ „ ๊ฐ’๊ณผ ๋น„๊ตํ•˜๊ณ  ๋นผ์„œ ๋ธํƒ€๋ฅผ ๊ตฌํ•˜๊ณ  ์ˆ˜๋Ÿ‰์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

์›ํ•˜๋Š” ๊ฒฝ์šฐ ์ถ”๊ฐ€ ์ธก์ •ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฐ€์šฉ์„ฑ์„ ํ‰๊ฐ€ํ•˜๊ณ  ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„์ด ์žˆ์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋ฐ๋„ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ง€ํ‘œ ์ค‘ ํ•˜๋‚˜๋Š” ๊ฐ€๋™ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ PostgreSQL์˜ ๊ฐ€๋™ ์‹œ๊ฐ„์€ ์•ฝ๊ฐ„ ๊นŒ๋‹ค๋กญ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋ฅผ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. PostgreSQL์ด ์‹œ์ž‘๋˜๋ฉด ๊ฐ€๋™ ์‹œ๊ฐ„ ๋ณด๊ณ ๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐค์— ์ผ๋ถ€ ์ž‘์—…์ด ์‹คํ–‰ ์ค‘์ผ ๋•Œ OOM-killer๊ฐ€ ๋‚˜ํƒ€๋‚˜ PostgreSQL ํ•˜์œ„ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ•์ œ ์ข…๋ฃŒํ–ˆ๋‹ค๋ฉด ์ด ๊ฒฝ์šฐ PostgreSQL์€ ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ์˜ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๊ณ  ์ƒค๋”ฉ๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์žฌ์„ค์ •ํ•œ ํ›„ ๋ณต๊ตฌ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ์ฒดํฌํฌ์ธํŠธ. ๊ทธ๋ฆฌ๊ณ  ์ฒดํฌํฌ์ธํŠธ๋กœ๋ถ€ํ„ฐ์˜ ๋ณต๊ตฌ๊ฐ€ ์ง€์†๋˜๋Š” ๋™์•ˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์—ฐ๊ฒฐ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ด ์ƒํ™ฉ์€ ๋‹ค์šดํƒ€์ž„์œผ๋กœ ํ‰๊ฐ€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ€๋™ ์‹œ๊ฐ„ ์นด์šดํ„ฐ๋Š” ์ฒซ ๋ฒˆ์งธ ์ˆœ๊ฐ„๋ถ€ํ„ฐ ํฌ์ŠคํŠธ๋งˆ์Šคํ„ฐ ์‹œ์ž‘ ์‹œ๊ฐ„์„ ๊ณ ๋ คํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์žฌ์„ค์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์€ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง„๊ณต์ฒญ์†Œ๊ธฐ ์ž‘์—…์ž ์ˆ˜๋„ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. PostgreSQL์˜ autovacuum์ด ๋ฌด์—‡์ธ์ง€ ๋‹ค๋“ค ์•Œ๊ณ  ๊ณ„์‹œ๋‚˜์š”? ์ด๊ฒƒ์€ PostgreSQL์˜ ํฅ๋ฏธ๋กœ์šด ํ•˜์œ„ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋…€์— ๋Œ€ํ•œ ๋งŽ์€ ๊ธฐ์‚ฌ๊ฐ€ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ๋งŽ์€ ๋ณด๊ณ ์„œ๊ฐ€ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ง„๊ณต๊ณผ ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ด์•ผ ํ•˜๋Š”์ง€์— ๊ด€ํ•ด ๋งŽ์€ ๋…ผ์˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์€ ๊ทธ๊ฒƒ์„ ํ•„์š”์•…์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ ๊ทธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํŠธ๋žœ์žญ์…˜์— ํ•„์š”ํ•˜์ง€ ์•Š์€ ์˜ค๋ž˜๋œ ๋ฒ„์ „์˜ ํ–‰์„ ์ •๋ฆฌํ•˜๊ณ  ์ƒˆ ํ–‰์— ๋Œ€ํ•œ ํ…Œ์ด๋ธ” ๋ฐ ์ธ๋ฑ์Šค์˜ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๋Š” ์ผ์ข…์˜ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์™œ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์ง„๊ณต์ฒญ์†Œ๊ธฐ๊ฐ€ ๋•Œ๋กœ ๋งŽ์ด ์•„ํ”„๊ธฐ ๋•Œ๋ฌธ์ด์ฃ . ๋งŽ์€ ์–‘์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์†Œ๋น„ํ•˜๊ณ  ๊ฒฐ๊ณผ์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์ด ์–ด๋ ค์›Œ์ง€๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด๋Š” ๋‹ค์Œ ์„น์…˜์—์„œ ์„ค๋ช…ํ•  pg_stat_activity ๋ทฐ๋ฅผ ํ†ตํ•ด ๋ชจ๋‹ˆํ„ฐ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ณด๊ธฐ์—๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ˜„์žฌ ํ™œ๋™์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ํ™œ๋™์„ ํ†ตํ•ด ํ˜„์žฌ ์ž‘๋™ ์ค‘์ธ ์ง„๊ณต์ฒญ์†Œ๊ธฐ์˜ ์ˆ˜๋ฅผ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ง„๊ณต์„ ์ถ”์ ํ•˜๊ณ  ํ•œ๊ณ„๋ฅผ ์ดˆ๊ณผํ•œ ๊ฒฝ์šฐ ์ด๊ฒƒ์ด PostgreSQL ์„ค์ •์„ ์กฐ์‚ฌํ•˜๊ณ  ์–ด๋–ป๊ฒŒ๋“  ์ง„๊ณต์˜ ์ž‘๋™์„ ์ตœ์ ํ™”ํ•ด์•ผ ํ•˜๋Š” ์ด์œ ์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PostgreSQL์˜ ๋˜ ๋‹ค๋ฅธ ํŠน์ง•์€ PostgreSQL์ด ๊ธด ํŠธ๋žœ์žญ์…˜์œผ๋กœ ์ธํ•ด ๋งค์šฐ ๊ณ ํ†ต์Šค๋Ÿฝ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ์˜ค๋žœ ์‹œ๊ฐ„ ๋™์•ˆ ์•„๋ฌด ์ผ๋„ ํ•˜์ง€ ์•Š๋Š” ๊ฑฐ๋ž˜์—์„œ๋Š” ๋”์šฑ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์†Œ์œ„ ํŠธ๋žœ์žญ์…˜ ์œ ํœด ์ƒํƒœ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠธ๋žœ์žญ์…˜์€ ์ž ๊ธˆ์„ ์œ ์ง€ํ•˜๊ณ  ์ง„๊ณต์ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ํ…Œ์ด๋ธ”์ด ๋ถ€ํ’€์–ด ์˜ค๋ฅด๊ณ  ํฌ๊ธฐ๋„ ์ปค์ง‘๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜๋Š” ์ฟผ๋ฆฌ๋Š” ๋” ๋Š๋ฆฌ๊ฒŒ ์ž‘๋™ํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์˜ ํ–‰์„ ๋ชจ๋‘ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋””์Šคํฌ๋กœ ์˜ฎ๊ฒจ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‹œ๊ฐ„, ๊ฐ€์žฅ ๊ธด ํŠธ๋žœ์žญ์…˜ ๊ธฐ๊ฐ„, ๊ฐ€์žฅ ๊ธด ์ง„๊ณต ์š”์ฒญ๋„ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  OLTP ๋กœ๋“œ์— ๋Œ€ํ•ด ์ด๋ฏธ 10-20-30๋ถ„ ์ด์ƒ ๋งค์šฐ ์˜ค๋žซ๋™์•ˆ ์‹คํ–‰ ์ค‘์ธ ์ผ๋ถ€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์— ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์—ฌ ๊ฐ•์ œ๋กœ ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ตœ์ ํ™”ํ•˜์—ฌ ํ˜ธ์ถœ๋˜์ง€ ์•Š์œผ๋ฉฐ ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ถ„์„ ์›Œํฌ๋กœ๋“œ์˜ ๊ฒฝ์šฐ 10~20~30๋ถ„์ด ์ผ๋ฐ˜์ ์ด๋ฉฐ ๋” ๊ธด ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค
๋‹ค์Œ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ํด๋ผ์ด์–ธํŠธ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๋งŒ๋“ค๊ณ  ์—ฌ๊ธฐ์— ์ฃผ์š” ๊ฐ€์šฉ์„ฑ ์ง€ํ‘œ๋ฅผ ๊ฒŒ์‹œํ•œ ๊ฒฝ์šฐ ์—ฐ๊ฒฐ๋œ ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ๊ฑฐ๊ธฐ์— ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ๋œ ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ์ •๋ณด๋Š” PostgreSQL ๊ด€์ ์—์„œ ๋ณผ ๋•Œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ข‹์€ ๊ณ ๊ฐ๋„ ์žˆ๊ณ  ๋‚˜์œ ๊ณ ๊ฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ ์˜ˆ์ž…๋‹ˆ๋‹ค. ๊ณ ๊ฐ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐ๋˜์–ด ์ฆ‰์‹œ ์š”์ฒญ์„ ๋ณด๋‚ด๊ธฐ ์‹œ์ž‘ํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹คํ–‰ํ•˜๋ฉฐ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค์€ ํ›Œ๋ฅญํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ ๊ณ ๊ฐ์ž…๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜์ง€๋งŒ ์•„๋ฌด ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š” ์ƒํ™ฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ํœด ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋‚˜์œ ๊ณ ๊ฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋™์ผํ•œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ํŠธ๋žœ์žญ์…˜์„ ์—ด๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ ๋‹ค์Œ ์™ธ๋ถ€ ์†Œ์Šค์— ์•ก์„ธ์Šคํ•˜๊ฑฐ๋‚˜ ๊ทธ๊ณณ์—์„œ ์ˆ˜์‹ ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋กœ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋Š” ๊ฑฐ๋ž˜๋ฅผ ์ข…๋ฃŒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํŠธ๋žœ์žญ์…˜์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ •์ง€๋˜๊ณ  ๋ผ์ธ์— ์ž ๊ธˆ์ด ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚˜์œ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ‘์ž๊ธฐ ๋‚ด๋ถ€ ์–ด๋”˜๊ฐ€์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์˜ˆ์™ธ๋กœ ์ธํ•ด ์‹คํŒจํ•˜๋Š” ๊ฒฝ์šฐ ํŠธ๋žœ์žญ์…˜์€ ๋งค์šฐ ์˜ค๋žซ๋™์•ˆ ์—ด๋ ค ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” PostgreSQL ์„ฑ๋Šฅ์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. PostgreSQL์€ ์†๋„๊ฐ€ ๋Š๋ ค์ง‘๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ ์‹œ์— ์ถ”์ ํ•˜๊ณ  ํ•ด๋‹น ์ž‘์—…์„ ๊ฐ•์ œ๋กœ ์ข…๋ฃŒํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋Ÿฌํ•œ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ตœ์ ํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋‚˜์œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ƒํ™ฉ ๋•Œ๋ฌธ์— ๊ทธ๋“ค์€ ๋‚˜๋น ์ง„๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ„๋‹จํ•œ ์œ ํœด ํŠธ๋žœ์žญ์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜์„ ์—ด๊ณ  ์ผ๋ถ€ ๋ผ์ธ์— ์ž ๊ธˆ์„ ์ ์šฉํ•œ ๋‹ค์Œ ์ฝ”๋“œ ์–ด๋”˜๊ฐ€์—์„œ ์‹คํŒจํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜์ด ์ •์ง€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์™€์„œ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜์ง€๋งŒ ์ •์ง€๋œ ํŠธ๋žœ์žญ์…˜์ด ์ด๋ฏธ ์ผ๋ถ€ ํ•„์ˆ˜ ํ–‰์— ์ž ๊ธˆ์„ ๋ณด์œ ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž ๊ธˆ์— ์ง๋ฉดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‘ ๋ฒˆ์งธ ํŠธ๋žœ์žญ์…˜์€ ์ฒซ ๋ฒˆ์งธ ํŠธ๋žœ์žญ์…˜์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๊ฑฐ๋‚˜ ๊ด€๋ฆฌ์ž๊ฐ€ ๊ฐ•์ œ๋กœ ๋‹ซ์„ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณด๋ฅ˜ ์ค‘์ธ ํŠธ๋žœ์žญ์…˜์ด ๋ˆ„์ ๋˜์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์ œํ•œ์„ ์ฑ„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•œ๋„๊ฐ€ ๊ฐ€๋“ ์ฐจ๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋” ์ด์ƒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ž‘๋™ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ด๋ฏธ ํ”„๋กœ์ ํŠธ์˜ ๊ธด๊ธ‰ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ถˆ๋Ÿ‰ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ ์‹œ์— ์ถ”์ ํ•˜๊ณ  ๋Œ€์‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๋˜ ๋‹ค๋ฅธ ์˜ˆ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์—๋Š” ์ด๋ฏธ ๊ดœ์ฐฎ์€ ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ โ€‹โ€‹์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์— ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. DB ์—ฐ๊ฒฐ โ€“ 8๊ฐœ. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒŒ ์ „๋ถ€์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ™œ์„ฑ ์ƒํƒœ์ธ์ง€, ์–ด๋–ค ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š๊ณ  ์œ ํœด ์ƒํƒœ์ธ์ง€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ณด๋ฅ˜ ์ค‘์ธ ํŠธ๋žœ์žญ์…˜ ๋ฐ ๋ณด๋ฅ˜ ์ค‘์ธ ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ด๊ฒƒ์€ ์—ฐ๊ฒฐ ์ˆ˜๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ˆ˜์น˜์ด๊ณ  ๊ทธ๊ฒŒ ์ „๋ถ€์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์Šค์Šค๋กœ ์ถ”์ธกํ•˜์‹ญ์‹œ์˜ค.
PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค
๋”ฐ๋ผ์„œ ์ด ์ •๋ณด๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋ง์— ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด pg_stat_activity ์‹œ์Šคํ…œ ๋ทฐ์— ์ ‘๊ทผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. PostgreSQL์—์„œ ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋‚ธ๋‹ค๋ฉด ์ด๊ฒƒ์€ PostgreSQL์˜ ํ˜„์žฌ ํ™œ๋™, ์ฆ‰ ๊ทธ ์•ˆ์—์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ๋ณด์—ฌ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์นœ๊ตฌ๊ฐ€ ๋˜์–ด์•ผ ํ•  ๋งค์šฐ ์ข‹์€ ๋ณด๊ธฐ์ž…๋‹ˆ๋‹ค. ๊ฐ ํ”„๋กœ์„ธ์Šค์—๋Š” ์ด ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ณ„๋„์˜ ์ค„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ์ด ์ด๋ฃจ์–ด์ง„ ํ˜ธ์ŠคํŠธ, ์‚ฌ์šฉ์ž, ์ด๋ฆ„, ํŠธ๋žœ์žญ์…˜์ด ์‹œ์ž‘๋œ ์‹œ๊ธฐ, ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์š”์ฒญ, ๋งˆ์ง€๋ง‰์œผ๋กœ ์‹คํ–‰๋œ ์š”์ฒญ ๋“ฑ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ stat ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ๋Œ€์ ์œผ๋กœ ๋งํ•˜์ž๋ฉด, ์ด ํ•„๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ํ˜„์žฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์žˆ๋Š” ํ†ต๊ณ„์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ด ํ†ต๊ณ„๊ฐ€ ์žˆ๋Š” ์—ฐ๊ฒฐ ์ˆ˜๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฏธ ์ˆ˜์‹ ๋œ ์ˆ˜์น˜๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋ง์— ์ „์†กํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฑฐ๋ž˜ ๊ธฐ๊ฐ„์„ ํ‰๊ฐ€ํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ง„๊ณต ๊ธฐ๊ฐ„์„ ํ‰๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ด๋ฏธ ๋งํ–ˆ์ง€๋งŒ ๊ฑฐ๋ž˜๋„ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค. xact_start ๋ฐ query_start ํ•„๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ๋Œ€์ ์œผ๋กœ ๋งํ•˜๋ฉด ํŠธ๋žœ์žญ์…˜ ์‹œ์ž‘ ์‹œ๊ฐ„๊ณผ ์š”์ฒญ ์‹œ์ž‘ ์‹œ๊ฐ„์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ํ‘œ์‹œํ•˜๋Š” now() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜๊ณผ ์š”์ฒญ ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ๋บ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ๊ฑฐ๋ž˜ ๊ธฐ๊ฐ„, ์š”์ฒญ ๊ธฐ๊ฐ„์„ ์–ป์Šต๋‹ˆ๋‹ค.

๊ธด ํŠธ๋žœ์žญ์…˜์ด ๋ณด์ด๋ฉด ์ด๋ฏธ ์™„๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. OLTP ๋กœ๋“œ์˜ ๊ฒฝ์šฐ ๊ธด ํŠธ๋žœ์žญ์…˜์€ ์ด๋ฏธ 1-2-3๋ถ„์„ ์ดˆ๊ณผํ•ฉ๋‹ˆ๋‹ค.. OLAP ์›Œํฌ๋กœ๋“œ์˜ ๊ฒฝ์šฐ ๊ธด ํŠธ๋žœ์žญ์…˜์ด ์ผ๋ฐ˜์ ์ด์ง€๋งŒ ์™„๋ฃŒํ•˜๋Š” ๋ฐ XNUMX์‹œ๊ฐ„ ์ด์ƒ์ด ๊ฑธ๋ฆฐ๋‹ค๋ฉด ์ด๋Š” ์–ด๋”˜๊ฐ€์— ๋ถˆ๊ท ํ˜•์ด ์žˆ๋‹ค๋Š” ์‹ ํ˜ธ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค
ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐ๋˜๋ฉด ๋ฐ์ดํ„ฐ ์ž‘์—…์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์— ์•ก์„ธ์Šคํ•˜๊ณ  ์ธ๋ฑ์Šค์— ์•ก์„ธ์Šคํ•˜์—ฌ ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด ๋ฐ์ดํ„ฐ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ํ‰๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” ์ž‘์—…๋Ÿ‰์„ ํ‰๊ฐ€ํ•˜๊ณ  ์–ด๋–ค ํ…Œ์ด๋ธ”์ด "๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š”" ํ…Œ์ด๋ธ”์ธ์ง€ ๋Œ€๋žต์ ์œผ๋กœ ์ดํ•ดํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ผ์ข…์˜ ๋น ๋ฅธ SSD ์Šคํ† ๋ฆฌ์ง€์— "ํ•ซ" ํ…Œ์ด๋ธ”์„ ๋ฐฐ์น˜ํ•˜๋ ค๋Š” ์ƒํ™ฉ์— ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ์ผ๋ถ€ ์•„์นด์ด๋ธŒ ํ…Œ์ด๋ธ”์€ ์ผ์ข…์˜ "์ฝœ๋“œ" ์•„์นด์ด๋ธŒ, SATA ๋“œ๋ผ์ด๋ธŒ๋กœ ์ด๋™ํ•˜์—ฌ ๊ทธ๊ณณ์— ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ•„์š”์— ๋”ฐ๋ผ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Š” ๋ฆด๋ฆฌ์Šค ๋ฐ ๋ฐฐํฌ ํ›„ ์ด์ƒ ํ˜„์ƒ์„ ๊ฐ์ง€ํ•˜๋Š” ๋ฐ์—๋„ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ช‡ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถœ์‹œํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ…Œ์ด๋ธ” ์‚ฌ์šฉ๋Ÿ‰ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋ฉด ์ด๋Ÿฌํ•œ ๊ทธ๋ž˜ํ”„์—์„œ ์ด๋Ÿฌํ•œ ์ด์ƒ ํ˜„์ƒ์„ ์‰ฝ๊ฒŒ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฒ„์ŠคํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜ ๋ฒ„์ŠคํŠธ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋งค์šฐ ๋ˆˆ์— ๋„๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ "๋ถ€๋™" ํ†ต๊ณ„์—์„œ ์ด์ƒ ์ง•ํ›„๋ฅผ ๊ฐ์ง€ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์Šจ ๋œป์ด์—์š”? PostgreSQL์—๋Š” ๋งค์šฐ ๊ฐ•๋ ฅํ•˜๊ณ  ์šฐ์ˆ˜ํ•œ ์ฟผ๋ฆฌ ํ”Œ๋ž˜๋„ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœ์ž๋“ค์€ ๊ฐœ๋ฐœ์— ๋งŽ์€ ์‹œ๊ฐ„์„ ํ• ์• ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Š” ์–ด๋–ป๊ฒŒ ์ผํ•ฉ๋‹ˆ๊นŒ? ์ข‹์€ ๊ณ„ํš์„ ์„ธ์šฐ๊ธฐ ์œ„ํ•ด PostgreSQL์€ ํŠน์ • ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ๊ณผ ํŠน์ • ๋นˆ๋„๋กœ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ ๋ถ„ํฌ์— ๋Œ€ํ•œ ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๊ฐ’์€ ๊ณ ์œ  ๊ฐ’์˜ ์ˆ˜, ํ…Œ์ด๋ธ”์˜ NULL์— ๋Œ€ํ•œ ์ •๋ณด, ๋งŽ์€ ์ •๋ณด์ž…๋‹ˆ๋‹ค.

ํ”Œ๋ž˜๋„ˆ๋Š” ์ด๋Ÿฌํ•œ ํ†ต๊ณ„๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์—ฌ๋Ÿฌ ์ฟผ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ๊ฐ€์žฅ ์ตœ์ ์˜ ์ฟผ๋ฆฌ๋ฅผ ์„ ํƒํ•˜๋ฉฐ, ์ด ์ฟผ๋ฆฌ ๊ณ„ํš์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฟผ๋ฆฌ ์ž์ฒด๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํ†ต๊ณ„๊ฐ€ "๋ถ€๋™"๋˜๋Š” ์ผ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์˜ ํ’ˆ์งˆ ๋ฐ ์ˆ˜๋Ÿ‰ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋“  ๋ณ€๊ฒฝ๋˜์—ˆ์ง€๋งŒ ํ†ต๊ณ„๊ฐ€ ์ˆ˜์ง‘๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ˜•์„ฑ๋œ ๊ณ„ํš์ด ์ตœ์ ์ด ์•„๋‹ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ…Œ์ด๋ธ”์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ˆ˜์ง‘๋œ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์šฐ๋ฆฌ์˜ ๊ณ„ํš์ด ์ตœ์ ์ด ์•„๋‹Œ ๊ฒƒ์œผ๋กœ ํŒ๋ช…๋˜๋ฉด ์ด๋Ÿฌํ•œ ์ด์ƒ ํ˜„์ƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐ์ดํ„ฐ๊ฐ€ ์งˆ์ ์œผ๋กœ ๋ณ€๊ฒฝ๋˜๊ณ  ์ธ๋ฑ์Šค ๋Œ€์‹  ํ…Œ์ด๋ธ”์„ ํ†ตํ•œ ์ˆœ์ฐจ์  ์ „๋‹ฌ์ด ์‚ฌ์šฉ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ๊ฐ€ 100๊ฐœ์˜ ํ–‰๋งŒ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ(100๊ฐœ ์ œํ•œ) ์ด ์ฟผ๋ฆฌ์— ๋Œ€ํ•ด ์ „์ฒด ๊ฒ€์ƒ‰์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Š” ํ•ญ์ƒ ์„ฑ๋Šฅ์— ๋งค์šฐ ๋‚˜์œ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๋ชจ๋‹ˆํ„ฐ๋ง์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฏธ ์ด ์ฟผ๋ฆฌ๋ฅผ ๋ณด๊ณ  ์ด์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์‹คํ–‰ํ•˜๊ณ  ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ์ƒˆ๋กœ์šด ์ถ”๊ฐ€ ์ธ๋ฑ์Šค๋ฅผ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฏธ ์ด ๋ฌธ์ œ์— ๋Œ€์‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์ค‘์š”ํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๋˜ ๋‹ค๋ฅธ ์˜ˆ์ž…๋‹ˆ๋‹ค. ์›Œ๋‚™ ์ธ๊ธฐ๊ฐ€ ๋งŽ์•„์„œ ์•Œ์•„๋ณด์‹œ๋Š” ๋ถ„๋“ค์ด ๋งŽ์€ ๊ฒƒ ๊ฐ™์•„์š”. ๋ˆ„๊ฐ€ ํ”„๋กœ์ ํŠธ์—์„œ ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ? ํ”„๋กœ ๋ฉ”ํ…Œ์šฐ์Šค? Prometheus์™€ ํ•จ๊ป˜ ์ด ์ œํ’ˆ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์€ ๋ˆ„๊ตฌ์ž…๋‹ˆ๊นŒ? ์‚ฌ์‹ค ์ด ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ํ‘œ์ค€ ์ €์žฅ์†Œ์—๋Š” PostgreSQL ์ž‘์—…์„ ์œ„ํ•œ ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ โ€‹โ€‹์žˆ์Šต๋‹ˆ๋‹ค. postgres_exporter ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค. ๊ทธ๋Ÿฌ๋‚˜ ํ•œ ๊ฐ€์ง€ ๋‚˜์œ ์„ธ๋ถ€ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

์—ฌ๋Ÿฌ ๊ทธ๋ž˜ํ”„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐ”์ดํŠธ๋Š” ๋‹จ์œ„๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, 5๊ฐœ์˜ ๊ทธ๋ž˜ํ”„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์‚ฝ์ž…, ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ, ๋ฐ์ดํ„ฐ ์‚ญ์ œ, ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ ๋ฐ์ดํ„ฐ ๋ฐ˜ํ™˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์œ„ ์ธก์ •์€ ๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๋Š” PostgreSQL์˜ ํ†ต๊ณ„๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ํŠœํ”Œ(ํ–‰)๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ๊ทธ๋ž˜ํ”„๋Š” ์ž‘์—… ๋ถ€ํ•˜๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ, ์ˆ˜์‹ญ ๋ฒˆ ๊ณผ์†Œํ‰๊ฐ€ํ•˜๋Š” ๋งค์šฐ ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ํŠœํ”Œ์€ ๋ฐ”์ดํŠธ๊ฐ€ ์•„๋‹ˆ๊ณ , ํŠœํ”Œ์€ ๋ฌธ์ž์—ด์ด๋ฉฐ, ๋งŽ์€ ๋ฐ”์ดํŠธ์ด๊ณ  ํ•ญ์ƒ ๊ฐ€๋ณ€ ๊ธธ์ด์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํŠœํ”Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…๋Ÿ‰์„ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์€ ๋น„ํ˜„์‹ค์ ์ด๊ฑฐ๋‚˜ ๋งค์šฐ ์–ด๋ ค์šด ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋Œ€์‹œ๋ณด๋“œ๋‚˜ ๋‚ด์žฅ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์‚ฌ์šฉํ•  ๋•Œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ‰๊ฐ€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ์ ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ํ•ญ์ƒ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

์ด ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ํ†ต๊ณ„๋ฅผ ์–ป๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด๋ฅผ ์œ„ํ•ด PostgreSQL์—๋Š” ํŠน์ • ๋ทฐ ๊ณ„์—ด์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฉ”์ธ๋ทฐ๋Š” pg_stat_user_tables. User_tables - ์ด๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ์ƒ์„ฑ๋œ ํ…Œ์ด๋ธ”์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์กฐ์ ์œผ๋กœ, PostgreSQL ์ž์ฒด์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์‹œ์Šคํ…œ ๋ทฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹œ์Šคํ…œ ๋ฐ ์‚ฌ์šฉ์ž ํ…Œ์ด๋ธ”์„ ๋ชจ๋‘ ํฌํ•จํ•˜๋Š” ์š”์•ฝ ํ…Œ์ด๋ธ” Alltables๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„ ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฝ์ž…, ์—…๋ฐ์ดํŠธ ๋ฐ ์‚ญ์ œ ํšŸ์ˆ˜๋ฅผ ์ถ”์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์‚ฌ์šฉํ•œ ๋Œ€์‹œ๋ณด๋“œ์˜ ์˜ˆ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›Œํฌ๋กœ๋“œ์˜ ํŠน์„ฑ์„ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Š” ๋ฐ”์ดํŠธ๊ฐ€ ์•„๋‹Œ ํŠœํ”Œ์ด๋ฏ€๋กœ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ๋งŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜๋Š” ์—†๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์†Œ์œ„ TopN ํ…Œ์ด๋ธ”์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ƒ์œ„ 5๊ฐœ, ์ƒ์œ„ 10๊ฐœ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์ด ์žฌํ™œ์šฉ๋˜๋Š” ํ•ซ ํ…Œ์ด๋ธ”์„ ์ถ”์ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฝ์ž…์„ ์œ„ํ•œ 5๊ฐœ์˜ "ํ•ซ" ํ…Œ์ด๋ธ”์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ TopN ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜์—ฌ ์›Œํฌ๋กœ๋“œ๋ฅผ ํ‰๊ฐ€ํ•˜๊ณ  ๋ฆด๋ฆฌ์Šค, ์—…๋ฐ์ดํŠธ ๋ฐ ๋ฐฐํฌ ํ›„ ์›Œํฌ๋กœ๋“œ ๊ธ‰์ฆ์„ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๊ฐ€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถœ์‹œํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ, ๋ฐ์ดํ„ฐ ์–‘์„ ์ถ”๊ฐ€ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์ง€๋งŒ ์ด๊ฒƒ์ด ์–ด๋–ค ์˜ํ–ฅ์„ ๋ฏธ์น ์ง€ ์˜ˆ์ธกํ•˜์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ…Œ์ด๋ธ” ํฌ๊ธฐ๊ฐ€ ์ปค์ง€๊ธฐ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ…Œ์ด๋ธ” ํฌ๊ธฐ๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํฌ๊ธฐ. ๊ทธ๋Ÿฌํ•œ ๊ฒฝ์šฐ๋Š” ์šฐ๋ฆฌ์—๊ฒŒ๋„ ๋†€๋ผ์šด ์ผ์ž…๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

์ด์ œ ์ž‘์€ ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์˜ ๋กœ๋“œ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด ์–ด๋–ค ์งˆ๋ฌธ์ด ๋– ์˜ค๋ฅด๋‚˜์š”? ๋‹ค์Œ ์งˆ๋ฌธ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์งˆ๋ฌธ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋กœ๋“œ๋กœ ์ธํ•ด ์–ด๋–ค ์š”์ฒญ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ? ์ฆ‰, ๋ถ€ํ•˜๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ดํŽด๋ณด๋Š” ๊ฒƒ์€ ํฅ๋ฏธ๋กญ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์žˆ์œผ๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๊ทธ๊ณณ์—์„œ ์‹คํ–‰๋˜๊ณ  ์žˆ๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋งŒ ๊ทธ๊ณณ์—์„œ ์‚ญ์ œ๋  ๊ฒƒ์ด ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค. Top์„ ์—ด๋ฉด PostgreSQL์—์„œ ์ž‘์—… ์ค‘์ธ ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. Top์—์„œ๋Š” ๊ทธ๋“ค์ด ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

๋”ฐ๋ผ์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฟผ๋ฆฌ๋ฅผ ํŠœ๋‹ํ•˜๋ฉด PostgreSQL์ด๋‚˜ ์šด์˜ ์ฒด์ œ ๊ตฌ์„ฑ์„ ํŠœ๋‹ํ•˜๊ฑฐ๋‚˜ ์‹ฌ์ง€์–ด ํ•˜๋“œ์›จ์–ด๋ฅผ ํŠœ๋‹ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ์ด์ต์„ ์–ป์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฐ€์žฅ ๋†’์€ ๋กœ๋“œ๋ฅผ ์œ ๋ฐœํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์ถ”์ •์— ๋”ฐ๋ฅด๋ฉด ์ด๋Š” ์•ฝ 80-85-90%์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ํ›จ์”ฌ ๋” ๋นจ๋ฆฌ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๊ตฌ์„ฑ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜, ํŠนํžˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๋‹ค์‹œ ์‹œ์ž‘์„ ์˜ˆ์•ฝํ•˜๊ฑฐ๋‚˜, ํ•˜๋“œ์›จ์–ด๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์š”์ฒญ์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ๋ฅผ ์–ด๋”˜๊ฐ€์— ๋‹ค์‹œ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ ์ธ๋ฑ์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ด ์ฟผ๋ฆฌ์—์„œ ๋” ๋‚˜์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป๋Š” ๊ฒƒ์ด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค
๋”ฐ๋ผ์„œ ์š”์ฒญ๊ณผ ๊ทธ ์ ์ ˆ์„ฑ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๋˜ ๋‹ค๋ฅธ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ๋„ ๋ชจ๋‹ˆํ„ฐ๋ง์ด ๋›ฐ์–ด๋‚œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ณต์ œ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์žˆ๊ณ , ์ฒ˜๋ฆฌ๋Ÿ‰, ์ฐจ๋‹จ, ๋ฆฌ์†Œ์Šค ํ™œ์šฉ๋„์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ด์ง€๋งŒ ์š”์ฒญ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์–ด๋–ค ์ฟผ๋ฆฌ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€, ์–ผ๋งˆ๋‚˜ ์˜ค๋žซ๋™์•ˆ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€, ์ด๋Ÿฌํ•œ ์ฟผ๋ฆฌ๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€๋Š” ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋‹ˆํ„ฐ๋ง์—๋Š” ํ•ญ์ƒ ์ด ์ •๋ณด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

๊ทธ๋ฆฌ๊ณ  ์ด ์ •๋ณด๋ฅผ ์–ป์œผ๋ ค๋ฉด pg_stat_statements ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์–‘ํ•œ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ€์žฅ ์ž์ฃผ ์‹คํ–‰๋˜๋Š” ์ฟผ๋ฆฌ, ์ฆ‰ ๊ฐ€์žฅ ์ž์ฃผ ์‹คํ–‰๋˜๋Š” ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ, ๋ฐฐํฌ ํ›„์— ์ด๋ฅผ ์‚ดํŽด๋ณด๊ณ  ์š”์ฒญ์ด ๊ธ‰์ฆํ•˜๋Š”์ง€ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ๋„ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ๊ธด ์ฟผ๋ฆฌ, ์ฆ‰ ์™„๋ฃŒํ•˜๋Š” ๋ฐ ๊ฐ€์žฅ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์„œ์—์„œ ์‹คํ–‰๋˜๋ฉฐ I/O๋ฅผ ์†Œ๋น„ํ•ฉ๋‹ˆ๋‹ค. total_time,mean_time, blk_write_time ๋ฐ blk_read_time ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ํ‰๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ ์ธก๋ฉด์—์„œ ๊ฐ€์žฅ ๊ณผ์ค‘ํ•œ ์š”์ฒญ, ์ฆ‰ ๋””์Šคํฌ์—์„œ ์ฝ๋Š” ์š”์ฒญ, ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์š”์ฒญ, ๋˜๋Š” ๋ฐ˜๋Œ€๋กœ ์ผ์ข…์˜ ์“ฐ๊ธฐ ๋ถ€ํ•˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์š”์ฒญ์„ ํ‰๊ฐ€ํ•˜๊ณ  ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๊ฐ€์žฅ ๊ด€๋Œ€ํ•œ ์š”์ฒญ์„ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋งŽ์€ ์ˆ˜์˜ ํ–‰์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ฟผ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ œํ•œ ์„ค์ •์„ ์žŠ์–ด๋ฒ„๋ฆฐ ์š”์ฒญ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹จ์ˆœํžˆ ์ฟผ๋ฆฌ๋œ ํ…Œ์ด๋ธ” ์ „์ฒด์— ๊ฑธ์ณ ํ…Œ์ด๋ธ” ๋˜๋Š” ์ฟผ๋ฆฌ์˜ ์ „์ฒด ๋‚ด์šฉ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ž„์‹œ ํŒŒ์ผ์ด๋‚˜ ์ž„์‹œ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค
๊ทธ๋ฆฌ๊ณ  ์—ฌ์ „ํžˆ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฒดํฌํฌ์ธํŠธ์ด๊ฑฐ๋‚˜ ์ฒดํฌํฌ์ธํŠธ๋ผ๊ณ ๋„ ํ•˜๋ฉฐ autovacuum ๋ฐ ๋ณต์ œ์ž…๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๋˜ ๋‹ค๋ฅธ ์˜ˆ์ž…๋‹ˆ๋‹ค. ์™ผ์ชฝ์— ์œ ์ง€ ๊ด€๋ฆฌ ํƒญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ํƒญ์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ๋Š” ์ง„๊ณต์ž‘์—…๊ณผ ํ†ต๊ณ„ ์ˆ˜์ง‘์˜ ์‹œ๊ฐ„์ผ ๋ฟ, ๊ทธ ์ด์ƒ์€ ์•„๋‹ˆ๋‹ค. ์ด๋Š” ๋งค์šฐ ๋นˆ์•ฝํ•œ ์ •๋ณด์ด๋ฏ€๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€, ํ•ด๋‹น ์ž‘์—…์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํ•ญ์ƒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

์ฒดํฌํฌ์ธํŠธ๋ฅผ ๋ณผ ๋•Œ ์ฒดํฌํฌ์ธํŠธ๋Š” ์ƒค๋”ฉ๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์—์„œ ๋”ํ‹ฐ ํŽ˜์ด์ง€๋ฅผ ๋””์Šคํฌ๋กœ ํ”Œ๋Ÿฌ์‹œํ•œ ๋‹ค์Œ ์ฒดํฌํฌ์ธํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ์ฒดํฌํฌ์ธํŠธ๋Š” PostgreSQL์ด ๊ธด๊ธ‰ ์ƒํ™ฉ์œผ๋กœ ์ธํ•ด ๊ฐ‘์ž๊ธฐ ์ข…๋ฃŒ๋œ ๊ฒฝ์šฐ ๋ณต๊ตฌ ์žฅ์†Œ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋ชจ๋“  "๋”ํ‹ฐ" ํŽ˜์ด์ง€๋ฅผ ๋””์Šคํฌ๋กœ ํ”Œ๋Ÿฌ์‹œํ•˜๋ ค๋ฉด ์ผ์ •๋Ÿ‰์˜ ์“ฐ๊ธฐ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋งŽ์€ ์‹œ์Šคํ…œ์—์„œ๋Š” ์ด๋Š” ๋งŽ์€ ์–‘์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์งง์€ ๊ฐ„๊ฒฉ์œผ๋กœ ์ฒดํฌํฌ์ธํŠธ๋ฅผ ๋งค์šฐ ์ž์ฃผ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋””์Šคํฌ ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ์ €ํ•˜๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์€ ๋ฆฌ์†Œ์Šค ๋ถ€์กฑ์œผ๋กœ ์ธํ•ด ์–ด๋ ค์›€์„ ๊ฒช๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ž์›์„ ๋†“๊ณ  ๊ฒฝ์Ÿํ•˜๊ณ  ์ƒ์‚ฐ์„ฑ์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ง€์ •๋œ ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” pg_stat_bgwriter๋ฅผ ํ†ตํ•ด ๋ฐœ์ƒํ•˜๋Š” ์ฒดํฌํฌ์ธํŠธ ์ˆ˜๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํŠน์ • ๊ธฐ๊ฐ„(10-15-20๋ถ„, 3๋ถ„) ๋™์•ˆ ์ฒดํฌํฌ์ธํŠธ๊ฐ€ ๋งŽ์œผ๋ฉด(์˜ˆ: 4-5-XNUMX) ์ด๋Š” ์ด๋ฏธ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฏธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ดํŽด๋ณด๊ณ  ๊ตฌ์„ฑ์„ ์‚ดํŽด๋ณด์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋งŽ์€ ์ฒดํฌํฌ์ธํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์›์ธ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์–ด์ฉŒ๋ฉด ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋Œ€๊ทœ๋ชจ ๋…น์Œ์ด ์ง„ํ–‰๋˜๊ณ  ์žˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ์›Œํฌ๋กœ๋“œ ๊ทธ๋ž˜ํ”„๋ฅผ ์ถ”๊ฐ€ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์›Œํฌ๋กœ๋“œ๋ฅผ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์ฒดํฌํฌ์ธํŠธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์กฐ์ •ํ•˜์—ฌ ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

์•ž์„œ ๋งํ–ˆ๋“ฏ์ด Autovacuum์€ ๋””์Šคํฌ์™€ ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์„ ์‰ฝ๊ฒŒ ํ•ฉ์‚ฐํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ Autovacuum์˜ ์–‘์„ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์ด ํ•ญ์ƒ ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์‹œ Autovacuum์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ Autovacuum ์ž‘์—…์ž ์ˆ˜๋Š” ์ œํ•œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ทธ ์ค‘ XNUMX๊ฐœ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ•ญ์ƒ XNUMX๋ช…์˜ ์ž‘์—…์ž๊ฐ€ ์ž‘์—…ํ•œ๋‹ค๋ฉด ์ด๋Š” autovacuum์ด ๊ตฌ์„ฑ๋˜์ง€ ์•Š์•˜์Œ์„ ์˜๋ฏธํ•˜๋ฏ€๋กœ ์ œํ•œ์„ ๋†’์ด๊ณ  autovacuum ์„ค์ •์„ ์ˆ˜์ •ํ•œ ํ›„ ๊ตฌ์„ฑ์— ๋“ค์–ด๊ฐ€์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์šฐ๋ฆฌ๊ฐ€ ์–ด๋–ค ์ง„๊ณต์ฒญ์†Œ๊ธฐ ์ž‘์—…์ž๋ฅผ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ‰๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ์ž‘ํ–ˆ๊ฑฐ๋‚˜ DBA๊ฐ€ ์™€์„œ ์ˆ˜๋™์œผ๋กœ ์ผ์ข…์˜ ์ง„๊ณต์„ ์‹œ์ž‘ํ–ˆ๊ณ  ์ด๋กœ ์ธํ•ด ๋ถ€ํ•˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ์ด๊ฒƒ์€ ๊ฑฐ๋ž˜ ์นด์šดํ„ฐ๋ฅผ ํ‘ธ๋Š” ์ง„๊ณต ์ฒญ์†Œ๊ธฐ์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€ PostgreSQL ๋ฒ„์ „์˜ ๊ฒฝ์šฐ ์ด๋Š” ๋งค์šฐ ํฐ ์ง„๊ณต ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ „์ฒด ํ…Œ์ด๋ธ”์„ ์ฝ๊ณ  ํ•ด๋‹น ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ธ”๋ก์„ ์Šค์บ”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์„ ์‰ฝ๊ฒŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ฌผ๋ก , ์ง„๊ณต์ฒญ์†Œ ๊ธฐ๊ฐ„๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ๋งค์šฐ ์˜ค๋žซ๋™์•ˆ ์ž‘๋™ํ•˜๋Š” ์˜ค๋ž˜ ์ง€์†๋˜๋Š” ์ง„๊ณต์ฒญ์†Œ๊ธฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ด๋Š” ์ง„๊ณต์ฒญ์†Œ๊ธฐ ๊ตฌ์„ฑ์— ๋‹ค์‹œ ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ด๊ณ  ํ•ด๋‹น ์„ค์ •์„ ๋‹ค์‹œ ๊ณ ๋ คํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์— ์ง„๊ณต์ฒญ์†Œ๊ธฐ๋ฅผ ์˜ค๋žซ๋™์•ˆ(3~4์‹œ๊ฐ„) ์ž‘๋™์‹œํ‚ค๋ฉด ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ง„๊ณต์ฒญ์†Œ๊ธฐ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋™์•ˆ ํ…Œ์ด๋ธ”์— ๋‹ค์‹œ ๋Œ€๋Ÿ‰์˜ ๋ฐ๋“œ ๋กœ์šฐ๊ฐ€ ์Œ“์ด๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ง„๊ณต์ฒญ์†Œ๊ฐ€ ์™„๋ฃŒ๋˜์ž๋งˆ์ž ๊ทธ๋Š” ์ด ํ…Œ์ด๋ธ”์„ ๋‹ค์‹œ ์ง„๊ณต์ฒญ์†Œ๊ธฐ๋กœ ์ฒญ์†Œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ๋์—†๋Š” ์ง„๊ณต์ƒํƒœ์— ๋น ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๊ฒฝ์šฐ ์ง„๊ณต ์ƒํƒœ๊ฐ€ ์ž‘์—…์— ๋Œ€์ฒ˜ํ•˜์ง€ ๋ชปํ•˜๊ณ  ์œ ์šฉํ•œ ๋ฐ์ดํ„ฐ์˜ ์–‘์€ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋˜์ง€๋งŒ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๊ฐ€ ์ ์ฐจ ์ปค์ง€๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์˜ค๋žœ ๊ณต๋ฐฑ ๊ธฐ๊ฐ„ ๋™์•ˆ ์šฐ๋ฆฌ๋Š” ํ•ญ์ƒ ๊ตฌ์„ฑ์„ ์‚ดํŽด๋ณด๊ณ  ์ตœ์ ํ™”ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜์ง€๋งŒ ๋™์‹œ์— ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

์š”์ฆ˜์—๋Š” ์ŠคํŠธ๋ฆฌ๋ฐ ๋ณต์ œ ๊ธฐ๋Šฅ์ด ์—†๋Š” PostgreSQL ์„ค์น˜๊ฐ€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ณต์ œ๋Š” ๋งˆ์Šคํ„ฐ์—์„œ ๋ณต์ œ๋ณธ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ด๋™ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค.

PostgreSQL์˜ ๋ณต์ œ๋Š” ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋งˆ๋ฒ•์‚ฌ๊ฐ€ ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ๋Š” ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ๋ณต์ œ๋ณธ์œผ๋กœ ์ด๋™ํ•œ ๋‹ค์Œ ๋ณต์ œ๋ณธ์—์„œ ์žฌ์ƒ๋ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จ ํ•ด.

๋”ฐ๋ผ์„œ pg_stat_replication ๋ทฐ๋Š” ๋ณต์ œ ์ง€์—ฐ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋…€์˜ ๋ชจ๋“  ๊ฒƒ์ด ๋‹จ์ˆœํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ 10์—์„œ๋Š” ๋ณด๊ธฐ๊ฐ€ ๋ช‡ ๊ฐ€์ง€ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฒซ์งธ, ์ผ๋ถ€ ํ•„๋“œ์˜ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ผ๋ถ€ ํ•„๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ 10์—์„œ๋Š” ๋ณต์ œ ์ง€์—ฐ์„ ์ดˆ ๋‹จ์œ„๋กœ ์ถ”์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํ•„๋“œ๊ฐ€ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ํŽธ์•ˆํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„์ „ 10 ์ด์ „์—๋Š” ๋ณต์ œ ์ง€์—ฐ์„ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์ถ”์ •ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋ฒ„์ „ 10์—๋„ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ง€์—ฐ ์‹œ๊ฐ„์„ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์ถ”์ •ํ•˜๊ฑฐ๋‚˜ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ดˆ ๋‹จ์œ„๋กœ ์ถ”์ •ํ•˜๋Š” ๋“ฑ ์ž์‹ ์—๊ฒŒ ๋” ํŽธ๋ฆฌํ•œ ๊ฒƒ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋‘ ๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ณต์ œ ์ง€์—ฐ์„ ํ‰๊ฐ€ํ•˜๋ ค๋ฉด ํŠธ๋žœ์žญ์…˜์—์„œ ๋กœ๊ทธ์˜ ์œ„์น˜๋ฅผ โ€‹โ€‹์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ ์œ„์น˜๋Š” ์ •ํ™•ํžˆ pg_stat_replication ๋ทฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ๋Œ€์ ์œผ๋กœ ๋งํ•˜๋ฉด pg_xlog_location_diff() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ์—์„œ ๋‘ ์ง€์ ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค ์‚ฌ์ด์˜ ๋ธํƒ€๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ๋ณต์ œ ์ง€์—ฐ์„ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๋งค์šฐ ํŽธ๋ฆฌํ•˜๊ณ  ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 10์—์„œ๋Š” ์ด ํ•จ์ˆ˜์˜ ์ด๋ฆ„์ด pg_wal_lsn_diff()๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ "xlog"๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๋ฐœ๊ฒฌ๋œ ๋ชจ๋“  ๊ธฐ๋Šฅ, ๋ณด๊ธฐ ๋ฐ ์œ ํ‹ธ๋ฆฌํ‹ฐ์—์„œ๋Š” "wal"์ด๋ผ๋Š” ๊ฐ’์œผ๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ทฐ์™€ ๊ธฐ๋Šฅ ๋ชจ๋‘์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ •๋ง ํ˜์‹ ์ž…๋‹ˆ๋‹ค.

๊ฒŒ๋‹ค๊ฐ€ ๋ฒ„์ „ 10์—์„œ๋Š” ์ง€์—ฐ์„ ๊ตฌ์ฒด์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ์ค„์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์“ฐ๊ธฐ ์ง€์—ฐ, ํ”Œ๋Ÿฌ์‹œ ์ง€์—ฐ, ์žฌ์ƒ ์ง€์—ฐ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ด๋Ÿฌํ•œ ์‚ฌํ•ญ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ณต์ œ ์ง€์—ฐ์ด ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ๋˜๋ฉด ๋ณต์ œ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•œ ์ด์œ , ์ถœ์ฒ˜๋ฅผ ์กฐ์‚ฌํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

๊ฑฐ์˜ ๋ชจ๋“  ๊ฒƒ์ด ์‹œ์Šคํ…œ ์ธก์ •ํ•ญ๋ชฉ๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋‹ˆํ„ฐ๋ง์ด ์‹œ์ž‘๋˜๋ฉด ์‹œ์Šคํ…œ ์ธก์ •ํ•ญ๋ชฉ์œผ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํ”„๋กœ์„ธ์„œ, ๋ฉ”๋ชจ๋ฆฌ, ์Šค์™‘, ๋„คํŠธ์›Œํฌ ๋ฐ ๋””์Šคํฌ๋ฅผ ํ๊ธฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ๋งŽ์€ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์žฌํ™œ์šฉ ํ”„๋กœ์„ธ์Šค์— ๋ชจ๋“  ๊ฒƒ์ด ์ˆœ์กฐ๋กญ๊ฒŒ ์ง„ํ–‰๋œ๋‹ค๋ฉด ๋””์Šคํฌ ์žฌํ™œ์šฉ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ฐœ๋ฐœ์ž๋Š” ์ฒ˜๋ฆฌ๋Ÿ‰์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. iops ๋˜๋Š” ๋ฐ”์ดํŠธ ๋‹จ์œ„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋“ค์€ ๋””์Šคํฌ ์žฅ์น˜์˜ ๋Œ€๊ธฐ ์‹œ๊ฐ„๊ณผ ํ™œ์šฉ๋„๋ฅผ ์žŠ์–ด๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. ์ด๋Š” ๋””์Šคํฌ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋กœ๋“œ๋˜๊ณ  ์–ผ๋งˆ๋‚˜ ๋Š๋ฆฐ์ง€ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋” ์ค‘์š”ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ๊ธธ๋ฉด ๋””์Šคํฌ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํ™œ์šฉ๋„๊ฐ€ ๋†’๋‹ค๋ฉด ๋””์Šคํฌ๊ฐ€ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ฒ˜๋ฆฌ๋Ÿ‰๋ณด๋‹ค ๋” ๋‚˜์€ ํŠน์„ฑ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด๋Ÿฌํ•œ ํ†ต๊ณ„๋Š” ํ”„๋กœ์„ธ์„œ ์žฌํ™œ์šฉ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ /proc ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ๋„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ ์ด ์ •๋ณด๊ฐ€ ๋ชจ๋‹ˆํ„ฐ๋ง์— ์ถ”๊ฐ€๋˜์ง€ ์•Š๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ด๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์—๋„ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ํŒจํ‚ท, ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๋„คํŠธ์›Œํฌ ์ฒ˜๋ฆฌ๋Ÿ‰์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์žˆ์ง€๋งŒ ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋Œ€๊ธฐ ์‹œ๊ฐ„์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ์—†์œผ๋ฉฐ ํ™œ์šฉ๋„์— ๋Œ€ํ•œ ์ •๋ณด๋„ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์œ ์šฉํ•œ ์ •๋ณด์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

๋ชจ๋“  ๋ชจ๋‹ˆํ„ฐ๋ง์—๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์ˆ˜ํ–‰ํ•˜๋”๋ผ๋„ ํ•ญ์ƒ ํŠน์ • ๊ธฐ์ค€์„ ์ถฉ์กฑํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ณ„์†ํ•ด์„œ ๋ฐœ์ „ํ•˜๊ณ  ์žˆ๊ณ , ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์ƒˆ๋กœ์šด ๊ฒƒ๋“ค์ด ์ถ”๊ฐ€๋˜๊ณ  ์žˆ์œผ๋‹ˆ, ๋ญ”๊ฐ€๋ฅผ ์„ ํƒํ•ด์„œ ๋งˆ๋ฌด๋ฆฌํ•ด ๋ณด์„ธ์š”.

๊ทธ๋ฆฌ๊ณ  ๋๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ œ๊ณต๋œ ํ†ต๊ณ„๊ฐ€ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ๋ฌธ์ œ ํ•ด๊ฒฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋ฅผ ํ•ญ์ƒ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ช‡ ๊ฐ€์ง€ ํ•ต์‹ฌ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ํ•ญ์ƒ ๊ฐ€์šฉ์„ฑ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๊ฐ–์ถ”์–ด์•ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ชจ๋“  ๊ฒƒ์ด ์ œ๋Œ€๋กœ ๋˜์–ด ์žˆ๋Š”์ง€ ์‹ ์†ํ•˜๊ฒŒ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‚˜์œ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ฑธ๋Ÿฌ๋‚ด๊ณ  ๊ฒฉ์ถ”์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•ญ์ƒ ์–ด๋–ค ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋Ÿฌํ•œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ํ‰๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ž‘์—…๋Ÿ‰์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ์–ด๋–ค ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์›Œํฌ๋กœ๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ํ˜•์„ฑ๋˜๋Š”์ง€ ํ‰๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ๋ฅผ ํ‰๊ฐ€ํ•˜๊ณ , ์ตœ์ ํ™”ํ•˜๊ณ , ๋ฆฌํŒฉํ„ฐ๋งํ•˜๊ณ , ์ธ๋ฑ์Šค๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๋Š” ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์— ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ๋„ˆ๋ฌด ๋งŽ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”์ง€ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹œ์Šคํ…œ ์ง€ํ‘œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋ฒ„ ์šฉ๋Ÿ‰ ํ™•์žฅ ๋ฐ ์ฆ๊ฐ€์— ๋Œ€ํ•œ ๊ณ„ํš์„ ์„ธ์šธ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด๋ฅผ ์ถ”์ ํ•˜๊ณ  ํ‰๊ฐ€ํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

PostgreSQL ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์•Œ๋ ‰์„ธ์ด ๋ ˆ์†Œํ”„์Šคํ‚ค

์ด ์ฃผ์ œ์— ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ๋‹ค์Œ ๋งํฌ๋ฅผ ๋”ฐ๋ผ๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
http://bit.do/stats_collector - ์ด๊ฒƒ์€ ํ†ต๊ณ„ ์ˆ˜์ง‘๊ธฐ์˜ ๊ณต์‹ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ํ†ต๊ณ„ ๋ณด๊ธฐ์— ๋Œ€ํ•œ ์„ค๋ช…๊ณผ ๋ชจ๋“  ํ•„๋“œ์— ๋Œ€ํ•œ ์„ค๋ช…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ๊ณ , ์ดํ•ดํ•˜๊ณ , ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋ชจ๋‹ˆํ„ฐ๋ง์— ์ถ”๊ฐ€ํ•˜์„ธ์š”.

์š”์ฒญ ์˜ˆ์‹œ:
http://bit.do/dataegret_sql
http://bit.do/lesovsky_sql

์ด๊ฒƒ์€ ์šฐ๋ฆฌ ํšŒ์‚ฌ ์ €์žฅ์†Œ์ด์ž ๋‚ด ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์˜ˆ์ œ ์ฟผ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์—๋Š” ์‹œ๋ฆฌ์ฆˆ์˜ select*์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์›์‹œ ์ˆซ์ž๋ฅผ ์ฝ๊ธฐ ์‰ฝ๊ณ  ํŽธ๋ฆฌํ•œ ๊ฐ’(์˜ˆ: ๋ฐ”์ดํŠธ, ์‹œ๊ฐ„)์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ํฅ๋ฏธ๋กœ์šด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์กฐ์ธ์ด ํฌํ•จ๋œ ๊ธฐ์„ฑ ์ฟผ๋ฆฌ๊ฐ€ ์ด๋ฏธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์„ ํƒํ•˜๊ณ , ์‚ดํŽด๋ณด๊ณ , ๋ถ„์„ํ•˜๊ณ , ๋ชจ๋‹ˆํ„ฐ๋ง์— ์ถ”๊ฐ€ํ•˜๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์งˆ๋ฌธ

์งˆ๋ฌธ: ๋ธŒ๋žœ๋“œ ๊ด‘๊ณ ๋ฅผ ํ•˜์ง€ ์•Š๊ฒ ๋‹ค๊ณ  ํ•˜์…จ๋Š”๋ฐ, ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋‚˜์š”?
๋Œ€๋‹ต: ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ณ ๊ฐ์„ ๋ฐฉ๋ฌธํ–ˆ๋Š”๋ฐ ๊ทธ ๊ณ ๊ฐ์€ ์ด๋ฏธ ์ž์ฒด ๋ชจ๋‹ˆํ„ฐ๋ง์„ ๊ฐ–๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋‹ˆํ„ฐ๋ง์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•  ์‚ฌํ•ญ์„ ๊ณ ๊ฐ์—๊ฒŒ ์กฐ์–ธํ•ฉ๋‹ˆ๋‹ค. ์ตœ์•…์˜ ์ƒํ™ฉ์€ Zabbix์˜ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. TopN ๊ทธ๋ž˜ํ”„๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์Šค์Šค๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค ์˜คํฌ๋ฏธํ„ฐ, ์™œ๋ƒํ•˜๋ฉด ์šฐ๋ฆฌ๋Š” ์ด ์‚ฌ๋žŒ๋“ค๊ณผ ๋ชจ๋‹ˆํ„ฐ๋ง์— ๊ด€ํ•ด ์ƒ๋‹ด์„ ํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์šฐ๋ฆฌ์˜ ๊ธฐ์ˆ  ์‚ฌ์–‘์„ ๊ธฐ๋ฐ˜์œผ๋กœ PostgreSQL์„ ๋ชจ๋‹ˆํ„ฐ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” Prometheus๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ์ด๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ๋‚˜๋งŒ์˜ ์• ์™„๋™๋ฌผ ํ”„๋กœ์ ํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ผ ํŒŒ๋‚˜. ๋‚ด ์ž„๋ฌด๋Š” Prometheus์—์„œ ๋‚˜๋งŒ์˜ ๋‚ด๋ณด๋‚ด๊ธฐ ๋„๊ตฌ๋ฅผ ๋งŒ๋“  ๋‹ค์Œ Grafana์—์„œ ๋ชจ๋“  ๊ฒƒ์„ ๋ Œ๋”๋งํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์งˆ๋ฌธ: AWR ๋ณด๊ณ ์„œ๋‚˜... ์ง‘๊ณ„์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ด๋Ÿฐ ๊ฒƒ์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ๋‚˜์š”?
๋Œ€๋‹ต: ๋„ค, ์ €๋Š” AWR์ด ๋ฌด์—‡์ธ์ง€ ์••๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ฉ‹์ง„ ์ผ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ๋Œ€๋žต ๋‹ค์Œ ๋ชจ๋ธ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋‹ค์–‘ํ•œ ์ž์ „๊ฑฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ์ •ํ•œ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์„ ๋‘๊ณ  ์ผ๋ถ€ ๊ธฐ์ค€์„ ์ด ๋™์ผํ•œ PostgreSQL ๋˜๋Š” ๋ณ„๋„์˜ ์Šคํ† ๋ฆฌ์ง€์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท์—์„œ ๊ตฌ๊ธ€์— ๊ฒ€์ƒ‰ํ•ด ๋ณด๋ฉด ๊ฑฐ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌํ•œ ๊ฐœ๋ฐœ์ž ์ค‘ ํ•œ ๋ช…์ด PostgreSQL ์Šค๋ ˆ๋“œ์˜ sql.ru ํฌ๋Ÿผ์— ์•‰์•„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์„œ ๊ทธ๋ฅผ ์žก์„ ์ˆ˜ ์žˆ์–ด์š”. ์˜ˆ, ๊ทธ๋Ÿฐ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ๊ทธ ์•ˆ์—๋Š” pgCenter ๋‚˜๋Š” ๋˜ํ•œ ๋‹น์‹ ์ด ๊ฐ™์€ ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธ€์„ ์“ฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

PS1 postgres_exporter๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์–ด๋–ค ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ ์ค‘ ๋ช‡ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ด๋ฏธ ๊ตฌ์‹์ž…๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์—…๋ฐ์ดํŠธ๋œ ํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์„๊นŒ์š”?

PS2 pganalyze๋Š” ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์ž๋™ํ™”๋œ ์กฐ์ • ์ œ์•ˆ์— ์ดˆ์ ์„ ๋งž์ถ˜ ๋…์  SaaS ์ œํ’ˆ์ด๋ฏ€๋กœ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋“ฑ๋ก๋œ ์‚ฌ์šฉ์ž๋งŒ ์„ค๋ฌธ ์กฐ์‚ฌ์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ์ œ๋ฐœ

์–ด๋–ค ์ž์ฒด ํ˜ธ์ŠคํŒ… postgresql ๋ชจ๋‹ˆํ„ฐ๋ง(๋Œ€์‹œ๋ณด๋“œ ํฌํ•จ)์ด ๊ฐ€์žฅ ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹œ๋‚˜์š”?

  • 30,0%Zabbix + Alexey Lesovsky ๋˜๋Š” zabbix 4.4 ๋˜๋Š” libzbxpgsql + zabbix libzbxpgsql + zabbix3์˜ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ

  • 0,0%https://github.com/lesovsky/pgcenter0

  • 0,0%https://github.com/pg-monz/pg_monz0

  • 20,0%https://github.com/cybertec-postgresql/pgwatch22

  • 20,0%https://github.com/postgrespro/mamonsu2

  • 0,0%https://www.percona.com/doc/percona-monitoring-and-management/conf-postgres.html0

  • 10,0%pganalyze๋Š” ๋…์  SaaS์ด๋ฏ€๋กœ ์‚ญ์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค1

  • 10,0%https://github.com/powa-team/powa1

  • 0,0%https://github.com/darold/pgbadger0

  • 0,0%https://github.com/darold/pgcluu0

  • 0,0%https://github.com/zalando/PGObserver0

  • 10,0%https://github.com/spotify/postgresql-metrics1

10๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ํˆฌํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. 26๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๊ถŒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€