Data Egret "Fundamentals of PostgreSQL ๋ชจ๋ํฐ๋ง"์์ Alexey Lesovsky๊ฐ ์์ฑํ ๋ณด๊ณ ์ ์ฌ๋ณธ์ ์ฝ์ด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
์ด ๋ณด๊ณ ์์์ Alexey Lesovsky๋ ์ฌํ ํต๊ณ์ ํต์ฌ ์ฌํญ, ๊ทธ ์๋ฏธ, ๋ชจ๋ํฐ๋ง์ ์ฐธ์ฌํด์ผ ํ๋ ์ด์ ์ ๋ํด ์ค๋ช ํฉ๋๋ค. ๋ชจ๋ํฐ๋ง์ ์ด๋ค ๊ทธ๋ํ๊ฐ ๋ค์ด๊ฐ์ผ ํ๋์ง, ์ด๋ป๊ฒ ์ถ๊ฐํด์ผ ํ๋์ง, ์ด๋ป๊ฒ ํด์ํด์ผ ํ๋์ง. ์ด ๋ณด๊ณ ์๋ Postgres ๋ฌธ์ ํด๊ฒฐ์ ๊ด์ฌ์ด ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์, ์์คํ ๊ด๋ฆฌ์ ๋ฐ ๊ฐ๋ฐ์์๊ฒ ์ ์ฉํฉ๋๋ค.
์ ์ด๋ฆ์ Alexey Lesovsky์ด๊ณ Data Egret ํ์ฌ๋ฅผ ๋ํํฉ๋๋ค.
๋ ์์ ์ ๋ํ ๋ช ๋ง๋. ์ ๋ ์ค๋ ์ ์ ์์คํ ๊ด๋ฆฌ์๋ก ์ผ์ ์์ํ์ต๋๋ค.
๋๋ ๋ชจ๋ ์ข ๋ฅ์ ๋ค์ํ Linux ์์คํ ์ ๊ด๋ฆฌํ๊ณ Linux์ ๊ด๋ จ๋ ๋ค์ํ ์์ (์: ๊ฐ์ํ, ๋ชจ๋ํฐ๋ง, ํ๋ก์ ์์ ๋ฑ)์ ์ํํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ ์์ ์์ ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค, PostgreSQL์ ๋ํ ์์ ์ ๋ ๋ง์ด ์์ํ์ต๋๋ค. ๋๋ ๊ทธ๋ฅผ ์ ๋ง ์ข์ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ์์ ๋ถํฐ ์ ๋ ๊ทผ๋ฌด ์๊ฐ์ ๋๋ถ๋ถ์ PostgreSQL์์ ์์ ํ๊ธฐ ์์ํ์ต๋๋ค. ๊ทธ๋์ ์ ์ฐจ์ ์ผ๋ก ์ ๋ PostgreSQL DBA๊ฐ ๋์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ๊ฒฝ๋ ฅ ์ ๋ฐ์ ๊ฑธ์ณ ์ ๋ ํญ์ ํต๊ณ, ๋ชจ๋ํฐ๋ง, ์๊ฒฉ ์ธก์ ์ด๋ผ๋ ์ฃผ์ ์ ๊ด์ฌ์ ๊ฐ์ ธ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๊ฐ ์์คํ
๊ด๋ฆฌ์์์ ๋ Zabbix์ ๋งค์ฐ ๊ธด๋ฐํ๊ฒ ํ๋ ฅํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ ๋ค์๊ณผ ๊ฐ์ ์์ ์คํฌ๋ฆฝํธ ์ธํธ๋ฅผ ์์ฑํ์ต๋๋ค.
์ง๊ธ์ PostgreSQL ์์
์ ํ๊ณ ์์ต๋๋ค. ๋๋ ์ด๋ฏธ PostgreSQL ํต๊ณ ์์
์ ํ ์ ์๋ ๋ ๋ค๋ฅธ ๊ธ์ ์์ฑ ์ค์
๋๋ค. ๊ทธ๊ฒ์์ด๋ผ๊ณ
์ฝ๊ฐ์ ์๊ฐ๊ธ์ ๋๋ค. ์ฐ๋ฆฌ ๊ณ ๊ฐ, ๊ณ ๊ฐ์ ์ด๋ค ์ํฉ์ ์ฒํด ์์ต๋๊น? ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ด๋ จ๋ ์ผ์ข ์ ์ฌ๊ณ ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ด๋ฏธ ๋ณต์๋๋ฉด ๋ถ์์ฅ์ด๋ ๊ฐ๋ฐ ์ฑ ์์๊ฐ ์์ ์ด๋ ๊ฒ ๋งํฉ๋๋ค. "์น๊ตฌ ์ฌ๋ฌ๋ถ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ชจ๋ํฐ๋งํด์ผ ํฉ๋๋ค. ๋์ ์ผ์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์์ผ๋ก ์ด๋ฐ ์ผ์ด ๋ฐ์ํ์ง ์๋๋ก ํด์ผ ํฉ๋๋ค." ์ฌ๊ธฐ์์ PostgreSQL, MySQL ๋๋ ๊ธฐํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ชจ๋ํฐ๋งํ ์ ์๋๋ก ๋ชจ๋ํฐ๋ง ์์คํ ์ ์ ํํ๊ฑฐ๋ ๊ธฐ์กด ๋ชจ๋ํฐ๋ง ์์คํ ์ ์กฐ์ ํ๋ ํฅ๋ฏธ๋ก์ด ํ๋ก์ธ์ค๊ฐ ์์๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ฃ๋ค์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํ๊ธฐ ์์ํฉ๋๋ค. โ์ด๋ฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๋ค๊ณ ๋ค์์ต๋๋ค. ํ์ฉํด๋ณด์." ๋๋ฃ๋ค์ด ์๋ก ๋ ผ์์ ๋ฒ์ด๊ธฐ ์์ํฉ๋๋ค. ๊ฒฐ๊ตญ ์ฐ๋ฆฌ๋ ์ด๋ค ์ข ๋ฅ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํํ์ง๋ง PostgreSQL ๋ชจ๋ํฐ๋ง์ด ์ ๋๋ก ์ ๊ณต๋์ง ์์ ํญ์ ๋ฌด์ธ๊ฐ๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค. GitHub์์ ์ผ๋ถ ์ ์ฅ์๋ฅผ ๊ฐ์ ธ์์ ๋ณต์ ํ๊ณ , ์คํฌ๋ฆฝํธ๋ฅผ ์กฐ์ ํ๊ณ , ์ด๋ป๊ฒ๋ ์ฌ์ฉ์ ์ ์ํ์ธ์. ๊ทธ๋ฆฌ๊ณ ๊ฒฐ๊ตญ ๊ทธ๊ฒ์ ์ผ์ข ์ ์์์ ์ผ๋ก ๋๋๊ฒ ๋ฉ๋๋ค.
๋ฐ๋ผ์ ์ด๋ฒ ๊ฐ์ฐ์์๋ PostgreSQL๋ฟ๋ง ์๋๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ๋ชจ๋ํฐ๋ง์ ์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ง์์ ์ ๊ณตํ๋ ค๊ณ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ผ๋ก ๋ฐ์ํ ์ ์๋ ๊ธด๊ธ ์ํฉ์ ์ฆ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ชจ๋ํฐ๋ง์ ์๋ฃํ์ฌ ์ด์ ์ ์ป์ ์ ์๋ ์ง์์ ์ ๊ณตํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ตํ๊ฒ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ๋ณด๊ณ ์์ ํฌํจ๋ ์์ด๋์ด๋ DBMS์ด๋ noSQL์ด๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ง์ ์ ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ PostgreSQL๋ฟ๋ง ์๋๋ผ PostgreSQL์์ ์ด๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ง์ ๋ ์ํผ๊ฐ ์์ ๊ฒ์ ๋๋ค. PostgreSQL์ด ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํด ๊ฐ์ง๊ณ ์๋ ์ฟผ๋ฆฌ์ ์, ์ํฐํฐ์ ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ DBMS์ ๋ชจ๋ํฐ๋งํ ์ ์๋ ๋์ผํ ๊ธฐ๋ฅ์ด ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ์กฐ์ ํ๊ณ ์ถ๊ฐํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
๋ ๋ณด๊ณ ์์ ๋์ค์ง ์์ ๊ฑฐ์ผ
์ธก์ ํญ๋ชฉ์ ์ ๋ฌํ๊ณ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ผ๊ธฐํฉ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ํ์ฒ๋ฆฌํ์ฌ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ๋ ๊ฒ์ ๋ํด์๋ ์๋ฌด ๋ง๋ ํ์ง ์๊ฒ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ ๊ฒฝ๊ณ ์ ๋ํด ์๋ฌด ๋ง๋ํ์ง ์์ ๊ฒ์
๋๋ค.
ํ์ง๋ง ์คํ ๋ฆฌ๊ฐ ์งํ๋๋ฉด์ ๊ธฐ์กด ๋ชจ๋ํฐ๋ง์ ๋ค์ํ ์คํฌ๋ฆฐ์ท์ ๋ณด์ฌ์ฃผ๋ฉฐ ์ด๋ป๊ฒ๋ ๋นํ์ ํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๋๋ ์ด๋ฌํ ์ ํ์ ๋ํ ๊ด๊ณ ๋๋ ๊ด๊ณ ๋ฐฉ์ง๋ฅผ ์์ฑํ์ง ์๊ธฐ ์ํด ๋ธ๋๋ ์ด๋ฆ์ ์ง์ ํ์ง ์์ผ๋ ค๊ณ ๋
ธ๋ ฅํ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ์ฐ์ฐ์ ์ผ์น๋ ๋ฌด์์์ด๋ฉฐ ์์์ ๋งก๊น๋๋ค.
๋จผ์ ๋ชจ๋ํฐ๋ง์ด ๋ฌด์์ธ์ง ์์ ๋ณด๊ฒ ์ต๋๋ค. ๋ชจ๋ํฐ๋ง์ ๋งค์ฐ ์ค์ํ ์ผ์
๋๋ค. ๋ชจ๋๊ฐ ์ด๊ฒ์ ์ดํดํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋์์ ๋ชจ๋ํฐ๋ง์ ๋น์ฆ๋์ค ์ ํ๊ณผ ๊ด๋ จ์ด ์์ผ๋ฉฐ ํ์ฌ์ ์ด์ต์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์น์ง ์์ผ๋ฏ๋ก ํญ์ ์์ฌ ์๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ชจ๋ํฐ๋ง์ ์๊ฐ์ ํ ๋นํฉ๋๋ค. ์๊ฐ์ด ์์ผ๋ฉด ๋ชจ๋ํฐ๋ง์ ํ๊ณ , ์๊ฐ์ด ์์ผ๋ฉด ๋ฐฑ๋ก๊ทธ์ ๋ฃ์ด๋๊ณ ์ธ์ ๊ฐ ์ด ์์
์ผ๋ก ๋์์ค๊ฒ ์ต๋๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๊ทผํ ๋ ๋ชจ๋ํฐ๋ง์ ์ข ์ข ๋ถ์์ ํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ ๋ ์ ์ํํ๋ ๋ฐ ๋์์ด ๋๋ ํฅ๋ฏธ๋ก์ด ๋ด์ฉ์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ํฐ๋ง์ ํญ์ ์๋ฃ๋์ด์ผ ํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ ๋ณด์ ์ ์ฅ์์ด๊ธฐ ๋๋ฌธ์ ๋ชจ๋ํฐ๋ง์ด ํ์ํ ๋ณต์กํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ณด๋ ํ์ฌ์ ๋งค์ฐ ์ค์ํ๋ฏ๋ก ์ด๋ค ๊ฒฝ์ฐ์๋ ์์ค๋ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋งค์ฐ ๋ณต์กํ ์ํํธ์จ์ด์ด๊ธฐ๋ ํฉ๋๋ค. ๊ทธ๋ค์ ๋ง์ ์์ ๊ตฌ์ฑ ์์๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ๊ตฌ์ฑ ์์ ์ค ์๋น์๋ฅผ ๋ชจ๋ํฐ๋งํด์ผ ํฉ๋๋ค.
PostgreSQL์ ๊ดํด ๊ตฌ์ฒด์ ์ผ๋ก ์ด์ผ๊ธฐํ๋ ๊ฒฝ์ฐ์๋ ๋ง์ ์์ ๊ตฌ์ฑ ์์๋ก ๊ตฌ์ฑ๋ ์ฒด๊ณ ํํ๋ก ํํ๋ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ตฌ์ฑ ์์๋ ์๋ก ์ํธ ์์ฉํฉ๋๋ค. ๋์์ PostgreSQL์๋ ์์ Stats Collector ํ์ ์์คํ ์ด ์์ด ์ด๋ฌํ ํ์ ์์คํ ์ ์๋์ ๋ํ ํต๊ณ๋ฅผ ์์งํ๊ณ ๊ด๋ฆฌ์๋ ์ฌ์ฉ์๊ฐ ์ด๋ฌํ ํต๊ณ๋ฅผ ๋ณผ ์ ์๋๋ก ์ผ์ข ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
์ด๋ฌํ ํต๊ณ๋ ํน์ ๊ธฐ๋ฅ ๋ฐ ๋ณด๊ธฐ ์ธํธ์ ํํ๋ก ์ ๊ณต๋ฉ๋๋ค. ํ ์ด๋ธ์ด๋ผ๊ณ ๋ถ๋ฅผ ์๋ ์์ต๋๋ค. ์ฆ, ์ผ๋ฐ psql ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๊ณ , ์ด๋ฌํ ๊ธฐ๋ฅ๊ณผ ๋ณด๊ธฐ๋ฅผ ์ ํํ๊ณ , PostgreSQL ํ์ ์์คํ ์ ์๋์ ๋ํ ํน์ ์์น๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ซ์๋ฅผ ์ฆ๊ฒจ ์ฌ์ฉํ๋ ๋ชจ๋ํฐ๋ง ์์คํ ์ ์ถ๊ฐํ๊ณ , ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆฌ๊ณ , ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ , ์ฅ๊ธฐ์ ์ผ๋ก ๋ถ์์ ์ป์ ์ ์์ต๋๋ค.
ํ์ง๋ง ์ด ๋ณด๊ณ ์์์๋ ์ด ๋ชจ๋ ๊ธฐ๋ฅ์ ์์ ํ ๋ค๋ฃจ์ง๋ ์์ ๊ฒ์
๋๋ค. ์๋ํ๋ฉด ํ๋ฃจ ์ข
์ผ ๊ฑธ๋ฆด ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ๋ฌธ์ ๊ทธ๋๋ก ๋ ๊ฐ์ง, ์ธ ๊ฐ์ง ๋๋ ๋ค ๊ฐ์ง ์ฌํญ์ ๋ค๋ฃจ๊ณ ์ด๋ฌํ ์ฌํญ์ด ๋ชจ๋ํฐ๋ง์ ๊ฐ์ ํ๋ ๋ฐ ์ด๋ป๊ฒ ๋์์ด ๋๋์ง ์๋ ค ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ํฐ๋ง์ ๊ดํด ์ด์ผ๊ธฐํ๋ค๋ฉด ๋ฌด์์ ๋ชจ๋ํฐ๋งํด์ผ ํ ๊น์? ์ฐ์ , ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐ์ดํฐ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๋ ์๋น์ค์ด๊ณ ๊ฐ์ฉ์ฑ์ ๋ชจ๋ํฐ๋งํ๊ณ ์ผ๋ถ ์ง์ , ์์ ํน์ฑ๋ ์ ๊ณตํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฉ์ฑ์ ๋ชจ๋ํฐ๋งํด์ผ ํฉ๋๋ค.
๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๋ ํด๋ผ์ด์ธํธ๋ ์ผ๋ฐ ํด๋ผ์ด์ธํธ์ผ ์๋ ์๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํด๋ฅผ ๋ผ์น ์ ์๋ ์ ํดํ ํด๋ผ์ด์ธํธ์ผ ์๋ ์์ผ๋ฏ๋ก ๋ชจ๋ํฐ๋งํด์ผ ํฉ๋๋ค. ๋ํ ์ด๋ค์ ํ๋์ ๋ชจ๋ํฐ๋งํ๊ณ ์ถ์ ํด์ผ ํฉ๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐ๋๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ ์์ ์ ์์ํ๋ค๋ ๊ฒ์ด ๋ถ๋ช ํ๋ฏ๋ก ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์, ์ฆ ์ด๋ค ํ ์ด๋ธ์ ์ฌ์ฉํ๊ณ ์ด๋ ์ ๋ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋์ง ๋ชจ๋ํฐ๋งํด์ผ ํฉ๋๋ค. ์ฆ, ๊ณ ๊ฐ์ด ์์ฑํ๋ ์ํฌ๋ก๋๋ฅผ ํ๊ฐํด์ผ ํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ํฌ๋ก๋๋ ๋ฌผ๋ก ์์ฒญ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๊ณ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ์ ์ก์ธ์คํ๋ฏ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ์ฟผ๋ฆฌ๋ฅผ ํ๊ฐํ๊ณ , ์ฟผ๋ฆฌ์ ์ ์ ์ฑ์ ๋ชจ๋ํฐ๋งํ๊ณ , ๋น๋ค๊ฒ ์์ฑ๋์ง ์์๋์ง, ์ผ๋ถ ์ต์ ์ ๋ค์ ์์ฑํ์ฌ ๋ ๋น ๋ฅด๊ฒ ์๋ํ๋๋ก ๋ง๋๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ๋์ ์ฑ๋ฅ์ผ๋ก.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ผ๋ฏ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํญ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค์ ๋๋ค. ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ์ ์ข์ ์์ค์ผ๋ก ์ ์งํ๋ ๋ฐ ๋์์ด ๋๋ฏ๋ก ์์ฒด์ ์ผ๋ก ์๋ํ๋ ค๋ฉด ์ผ์ ๋์ ๋ฆฌ์์ค๊ฐ ํ์ํฉ๋๋ค. ๋์์ ํด๋ผ์ด์ธํธ ์์ฒญ ๋ฆฌ์์ค์ ๊ฒน์น ์ ์์ผ๋ฏ๋ก ํ์์ค๋ฌ์ด ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๊ฐ ํด๋ผ์ด์ธํธ ์์ฒญ ์ฑ๋ฅ์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค ์ธก๋ฉด์์ ์๊ณก์ด ์๋๋ก ๋ชจ๋ํฐ๋งํ๊ณ ์ถ์ ํด์ผ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ํฐ๋ง ์ธก๋ฉด์์ ์ด ๋ชจ๋ ๊ฒ์ ์์คํ ์ธก์ ํญ๋ชฉ์ ๋จ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ถ๋ถ์ ์ธํ๋ผ๊ฐ ํด๋ผ์ฐ๋๋ก ์ด๋ํ๊ณ ์๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด ๊ฐ๋ณ ํธ์คํธ์ ์์คํ ์งํ๋ ํญ์ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์ฌ๋ผ์ง๋๋ค. ๊ทธ๋ฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ์ฌ์ ํ ๊ด๋ จ์ฑ์ด ์์ผ๋ฉฐ ์์คํ ๋ฉํธ๋ฆญ์ ๋ชจ๋ํฐ๋งํ๋ ๊ฒ๋ ํ์ํฉ๋๋ค.
์์คํ ์ธก์ ํญ๋ชฉ์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ด๋ ์ ๋ ๊ด์ฐฎ์ต๋๋ค. ๋ชจ๋ ์ต์ ๋ชจ๋ํฐ๋ง ์์คํ ์ ์ด๋ฏธ ์ด๋ฌํ ์ธก์ ํญ๋ชฉ์ ์ง์ํ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ์ผ๋ถ ๊ตฌ์ฑ ์์๋ ์ฌ์ ํ ์ถฉ๋ถํ์ง ์์ผ๋ฉฐ ์ผ๋ถ ํญ๋ชฉ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ๋๋ ๋ํ ๊ทธ๊ฒ๋ค์ ๋ค๋ฃฐ ๊ฒ์ด๊ณ , ๊ทธ๊ฒ๋ค์ ๊ดํ ์ฌ๋ฌ ์ฌ๋ผ์ด๋๊ฐ ์์ ๊ฒ์ ๋๋ค.
๊ณํ์ ์ฒซ ๋ฒ์งธ ํฌ์ธํธ๋ ์ ๊ทผ์ฑ์
๋๋ค. ์ ๊ทผ์ฑ์ด๋ ๋ฌด์์
๋๊น? ๋ด๊ฐ ์ดํดํ๋ ๊ฐ์ฉ์ฑ์ ์๋น์ค ์ฐ๊ฒฐ์ ๋ํ ๋ฒ ์ด์ค์ ๋ฅ๋ ฅ์
๋๋ค. ์ฆ, ๋ฒ ์ด์ค๊ฐ ์ฌ๋ผ๊ฐ๊ณ ์๋น์ค๋ก์ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ์ ํ์ฉํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ์ ๊ทผ์ฑ์ ํน์ ํน์ฑ์ผ๋ก ํ๊ฐ๋ ์ ์์ต๋๋ค. ์ด๋ฌํ ํน์ฑ์ ๋์๋ณด๋์ ํ์ํ๋ ๊ฒ์ ๋งค์ฐ ํธ๋ฆฌํฉ๋๋ค.
๋์๋ณด๋๊ฐ โโ๋ฌด์์ธ์ง๋ ๋๊ตฌ๋ ์๊ณ ์์ต๋๋ค. ํ์ํ ์ ๋ณด๊ฐ ์์ฝ๋์ด ์๋ ํ๋ฉด์ ํ ๋ฒ ์ดํด๋ดค์ ๋์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฌธ์ ๊ฐ ์๋์ง ์ฌ๋ถ๋ฅผ ์ฆ์ ํ๋จํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ฉ์ฑ ๋ฐ ๊ธฐํ ์ฃผ์ ํน์ฑ์ ํญ์ ๋์๋ณด๋์ ํ์๋์ด ์ด ์ ๋ณด๋ฅผ ํญ์ ๊ฐ๊น์ด์์ ์ฌ์ฉํ ์ ์๋๋ก ํด์ผ ํฉ๋๋ค. ์ฌ๊ณ ์กฐ์ฌ์ ์ด๋ฏธ ๋์์ด ๋๋ ์ผ๋ถ ์ถ๊ฐ ์ธ๋ถ ์ ๋ณด๋ ์ผ๋ถ ๊ธด๊ธ ์ํฉ์ ์กฐ์ฌํ ๋ ์ด๋ฏธ ๋ณด์กฐ ๋์๋ณด๋์ ๋ฐฐ์น๋๊ฑฐ๋ ํ์ฌ ๋ชจ๋ํฐ๋ง ์์คํ
์ผ๋ก ์ฐ๊ฒฐ๋๋ ๋๋ฆด๋ค์ด ๋งํฌ์ ์จ๊ฒจ์ ธ ์์ด์ผ ํฉ๋๋ค.
์ ์๋ ค์ง ๋ชจ๋ํฐ๋ง ์์คํ ์ ์์ ๋๋ค. ์ด๊ฒ์ ๋งค์ฐ ๋ฉ์ง ๋ชจ๋ํฐ๋ง ์์คํ ์ ๋๋ค. ๊ทธ๋ ๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์์งํ์ง๋ง ๋ด ๊ด์ ์์๋ ๊ทธ๋ ๋ ๋์๋ณด๋์ ๋ํ ๊ฐ๋ ์ด ์ด์ํฉ๋๋ค. '๋์๋ณด๋ ๋ง๋ค๊ธฐ' ๋งํฌ๊ฐ ์์ต๋๋ค. ํ์ง๋ง ๋์๋ณด๋๋ฅผ ๋ง๋ค๋ฉด ๋ ๊ฐ์ ์ด๋ก ๊ตฌ์ฑ๋ ๋ชฉ๋ก, ์ฆ ๊ทธ๋ํ ๋ชฉ๋ก์ด ์์ฑ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌด์ธ๊ฐ๋ฅผ ๋ด์ผ ํ ๋ ๋ง์ฐ์ค๋ก ํด๋ฆญํ๊ณ ์คํฌ๋กคํ๊ณ ์ํ๋ ์ฐจํธ๋ฅผ ์ฐพ๊ธฐ ์์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค. ์ฆ, ๋์๋ณด๋๊ฐ โโ์์ต๋๋ค. ์ฐจํธ ๋ชฉ๋ก๋ง ์์ต๋๋ค.
์ด ๋์๋ณด๋์ ๋ฌด์์ ์ถ๊ฐํด์ผ ํฉ๋๊น? ์๋ต ์๊ฐ๊ณผ ๊ฐ์ ํน์ฑ์ผ๋ก ์์ํ ์ ์์ต๋๋ค. PostgreSQL์๋ pg_stat_statements ๋ทฐ๊ฐ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋์ด ์์ง๋ง ํญ์ ํ์ฑํํ๊ณ ์ฌ์ฉํด์ผ ํ๋ ์ค์ํ ์์คํ ๋ณด๊ธฐ ์ค ํ๋์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์คํ๋ ๋ชจ๋ ์คํ ์ฟผ๋ฆฌ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค.
๋ฐ๋ผ์ ์ ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์์ฒญ์ ์ด ์คํ ์๊ฐ์ ์์ฒญ ์๋ก ๋๋ ์ ์๋ค๋ ์ฌ์ค๋ถํฐ ์์ํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ด๊ฒ์ ๋ณ์์ ํ๊ท ์จ๋์ ๋๋ค. ์ต์ ์ฟผ๋ฆฌ ์คํ ์๊ฐ, ์ต๋ ๋ฐ ์ค์๊ฐ๊ณผ ๊ฐ์ ๋ค๋ฅธ ํ๋์์ ์์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐฑ๋ถ์์๋ฅผ ์์ฑํ ์๋ ์๋๋ฐ, PostgreSQL์๋ ์ด์ ์์ํ๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฏธ ์๋ฃ๋ ์์ฒญ์ ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ต ์๊ฐ์ ํน์ง์ง๋ ๋ช ๊ฐ์ง ์ซ์๋ฅผ ์ป์ ์ ์์ต๋๋ค. ์ฆ, ๊ฐ์ง ์์ฒญ 'select 1'์ ์คํํ์ง ์๊ณ ์๋ต ์๊ฐ์ ์ดํด๋ณด์ง๋ง ์ด๋ฏธ ์๋ฃ๋ ์์ฒญ์ ๋ํ ์๋ต ์๊ฐ์ ๋ถ์ํ์ฌ ๊ทธ๋ฆฝ๋๋ค. ๋ณ๋์ ์์น๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ทธ๋ํ๋ฅผ ์์ฑํฉ๋๋ค.
ํ์ฌ ์์คํ ์์ ์์ฑ๋๋ ์ค๋ฅ ์๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ๊ฒ๋ ์ค์ํฉ๋๋ค. ์ด๋ฅผ ์ํด pg_stat_database ๋ทฐ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. xact_rollback ํ๋์ ์ค์ ์ ๋ก๋๋ค. ์ด ํ๋์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ํ๋ ๋กค๋ฐฑ ์๋ฟ๋ง ์๋๋ผ ์ค๋ฅ ์๋ ๊ณ ๋ ค๋ฉ๋๋ค. ์๋์ ์ผ๋ก ๋งํ๋ฉด ์ด ์์น๋ฅผ ๋์๋ณด๋์ ํ์ํ๊ณ ํ์ฌ ์ผ๋ง๋ ๋ง์ ์ค๋ฅ๊ฐ ์๋์ง ํ์ธํ ์ ์์ต๋๋ค. ์ค๋ฅ๊ฐ ๋ง๋ค๋ฉด ๋ก๊ทธ๋ฅผ ์ดํด๋ณด๊ณ ์ด๋ค ์ค๋ฅ์ธ์ง, ์ ๋ฐ์ํ๋์ง ์ดํด๋ณด๊ณ ํฌ์ํด์ ํด๊ฒฐํด ๋ณด๋ ๊ฒ๋ ์ข์ ์ด์ ๊ฐ ๋ ๊ฒ์ ๋๋ค.
ํ์ฝ๋ฏธํฐ์ ๊ฐ์ ๊ฒ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ด๋ ์ด๋น ํธ๋์ญ์ ์์ ์ด๋น ์์ฒญ ์์ ๋๋ค. ์๋์ ์ผ๋ก ๋งํ์๋ฉด, ์ด๋ฌํ ์ซ์๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ์ฌ ์ฑ๋ฅ์ผ๋ก ์ฌ์ฉํ๊ณ ์์ฒญ์ด ์ต๊ณ ์กฐ์ ๋ฌํ๋์ง, ํธ๋์ญ์ ์ด ์ต๊ณ ์กฐ์ ๋ฌํ๋์ง, ๋๋ ๋ฐ๋๋ก ์ผ๋ถ ๋ฐฑ์๋๊ฐ ์คํจํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๊ณผ์๋ก๋๋์๋์ง ์ฌ๋ถ๋ฅผ ๊ด์ฐฐํ ์ ์์ต๋๋ค. ํญ์ ์ด ์์น๋ฅผ ๋ณด๊ณ ์ฐ๋ฆฌ ํ๋ก์ ํธ์์๋ ์ด๋ฐ ์ข ๋ฅ์ ์ฑ๋ฅ์ด ์ ์์ด์ง๋ง ์์ ์๋์ ๊ฐ์ ์ด๋ฏธ ์ผ์ข ์ ๋ฌธ์ ๊ฐ ์๊ณ ์ดํดํ ์ ์๋ ๊ฐ์ด๋ผ๋ ๊ฒ์ ๊ธฐ์ตํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋๋ฌด ๋๋ค.
ํธ๋์ญ์ ์๋ฅผ ์ถ์ ํ๊ธฐ ์ํด ๋ค์ pg_stat_database ๋ทฐ๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค. ์ปค๋ฐ ์์ ๋กค๋ฐฑ ์๋ฅผ ์ถ๊ฐํ๊ณ ์ด๋น ํธ๋์ญ์ ์๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์ฌ๋ฌ ์์ฒญ์ด ํ๋์ ๊ฑฐ๋์ ํฌํจ๋ ์ ์๋ค๋ ๊ฒ์ ๋ชจ๋๊ฐ ์ดํดํ๊ณ ์์ต๋๊น? ๋ฐ๋ผ์ TPS์ QPS๋ ์ฝ๊ฐ ๋ค๋ฆ ๋๋ค.
์ด๋น ์์ฒญ ์๋ pg_stat_statements์์ ์ป์ ์ ์์ผ๋ฉฐ ์๋ฃ๋ ๋ชจ๋ ์์ฒญ์ ํฉ๊ณ๋ฅผ ๊ฐ๋จํ ๊ณ์ฐํ ์ ์์ต๋๋ค. ํ์ฌ ๊ฐ์ ์ด์ ๊ฐ๊ณผ ๋น๊ตํ๊ณ ๋นผ์ ๋ธํ๋ฅผ ๊ตฌํ๊ณ ์๋์ ๊ตฌํ๋ ๊ฒ์ด ๋ถ๋ช ํฉ๋๋ค.
์ํ๋ ๊ฒฝ์ฐ ์ถ๊ฐ ์ธก์ ํญ๋ชฉ์ ์ถ๊ฐํ ์ ์์ผ๋ฉฐ, ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ฉ์ฑ์ ํ๊ฐํ๊ณ ๊ฐ๋ ์ค์ง ์๊ฐ์ด ์์๋์ง ์ฌ๋ถ๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ๋ฐ๋ ๋์์ด ๋ฉ๋๋ค.
์ด๋ฌํ ์งํ ์ค ํ๋๋ ๊ฐ๋ ์๊ฐ์ ๋๋ค. ๊ทธ๋ฌ๋ 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์ ์๋๊ฐ ๋๋ ค์ง๋๋ค. ๋ฐ๋ผ์ ์ด๋ฌํ ํด๋ผ์ด์ธํธ๋ฅผ ์ ์์ ์ถ์ ํ๊ณ ํด๋น ์์ ์ ๊ฐ์ ๋ก ์ข ๋ฃํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ฌํ ์ํฉ์ด ๋ฐ์ํ์ง ์๋๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ ํํด์ผ ํฉ๋๋ค.
๋ค๋ฅธ ๋์ ํด๋ผ์ด์ธํธ๊ฐ ํด๋ผ์ด์ธํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ํฉ ๋๋ฌธ์ ๊ทธ๋ค์ ๋๋น ์ง๋ค. ์๋ฅผ ๋ค์ด ๊ฐ๋จํ ์ ํด ํธ๋์ญ์ ์ด ์์ต๋๋ค. ํธ๋์ญ์ ์ ์ด๊ณ ์ผ๋ถ ๋ผ์ธ์ ์ ๊ธ์ ์ ์ฉํ ๋ค์ ์ฝ๋ ์ด๋๊ฐ์์ ์คํจํ์ฌ ํธ๋์ญ์ ์ด ์ ์ง๋ ์ ์์ต๋๋ค. ๋ค๋ฅธ ํด๋ผ์ด์ธํธ๊ฐ ์์ ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ์ง๋ง ์ ์ง๋ ํธ๋์ญ์ ์ด ์ด๋ฏธ ์ผ๋ถ ํ์ ํ์ ์ ๊ธ์ ๋ณด์ ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ ๊ธ์ ์ง๋ฉดํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ๋ฒ์งธ ํธ๋์ญ์ ์ ์ฒซ ๋ฒ์งธ ํธ๋์ญ์ ์ด ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๊ฑฐ๋ ๊ด๋ฆฌ์๊ฐ ๊ฐ์ ๋ก ๋ซ์ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋ณด๋ฅ ์ค์ธ ํธ๋์ญ์ ์ด ๋์ ๋์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ ํ์ ์ฑ์ธ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ๋๊ฐ ๊ฐ๋ ์ฐจ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์๋ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์ด๋ฏธ ํ๋ก์ ํธ์ ๊ธด๊ธ ์ํฉ์ ๋๋ค. ๋ฐ๋ผ์ ๋ถ๋ ํด๋ผ์ด์ธํธ๋ฅผ ์ ์์ ์ถ์ ํ๊ณ ๋์ํด์ผ ํฉ๋๋ค.
๋ชจ๋ํฐ๋ง์ ๋ ๋ค๋ฅธ ์์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์๋ ์ด๋ฏธ ๊ด์ฐฎ์ ๋์๋ณด๋๊ฐ โโ์์ต๋๋ค. ์์ ์ฐ๊ฒฐ์ ๋ํ ์ ๋ณด๊ฐ ์์ต๋๋ค. DB ์ฐ๊ฒฐ โ 8๊ฐ. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ ์ ๋ถ์
๋๋ค. ์ด๋ค ํด๋ผ์ด์ธํธ๊ฐ ํ์ฑ ์ํ์ธ์ง, ์ด๋ค ํด๋ผ์ด์ธํธ๊ฐ ์๋ฌด๊ฒ๋ ํ์ง ์๊ณ ์ ํด ์ํ์ธ์ง์ ๋ํ ์ ๋ณด๊ฐ ์์ต๋๋ค. ๋ณด๋ฅ ์ค์ธ ํธ๋์ญ์
๋ฐ ๋ณด๋ฅ ์ค์ธ ์ฐ๊ฒฐ์ ๋ํ ์ ๋ณด๊ฐ ์์ต๋๋ค. ์ฆ, ์ด๊ฒ์ ์ฐ๊ฒฐ ์๋ฅผ ๋ณด์ฌ์ฃผ๋ ์์น์ด๊ณ ๊ทธ๊ฒ ์ ๋ถ์
๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ค์ค๋ก ์ถ์ธกํ์ญ์์ค.
๋ฐ๋ผ์ ์ด ์ ๋ณด๋ฅผ ๋ชจ๋ํฐ๋ง์ ์ถ๊ฐํ๋ ค๋ฉด pg_stat_activity ์์คํ
๋ทฐ์ ์ ๊ทผํด์ผ ํฉ๋๋ค. PostgreSQL์์ ๋ง์ ์๊ฐ์ ๋ณด๋ธ๋ค๋ฉด ์ด๊ฒ์ PostgreSQL์ ํ์ฌ ํ๋, ์ฆ ๊ทธ ์์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ๋ณด์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ ์น๊ตฌ๊ฐ ๋์ด์ผ ํ ๋งค์ฐ ์ข์ ๋ณด๊ธฐ์
๋๋ค. ๊ฐ ํ๋ก์ธ์ค์๋ ์ด ํ๋ก์ธ์ค์ ๋ํ ์ ๋ณด๋ฅผ ํ์ํ๋ ๋ณ๋์ ์ค์ด ์์ต๋๋ค. ์ฐ๊ฒฐ์ด ์ด๋ฃจ์ด์ง ํธ์คํธ, ์ฌ์ฉ์, ์ด๋ฆ, ํธ๋์ญ์
์ด ์์๋ ์๊ธฐ, ํ์ฌ ์คํ ์ค์ธ ์์ฒญ, ๋ง์ง๋ง์ผ๋ก ์คํ๋ ์์ฒญ ๋ฑ์ด ํ์๋ฉ๋๋ค. ๋ฐ๋ผ์ stat ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ์ ์ํ๋ฅผ ํ๊ฐํ ์ ์์ต๋๋ค. ์๋์ ์ผ๋ก ๋งํ์๋ฉด, ์ด ํ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฃนํํ์ฌ ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ํต๊ณ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด ํต๊ณ๊ฐ ์๋ ์ฐ๊ฒฐ ์๋ฅผ ์ป์ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฏธ ์์ ๋ ์์น๋ฅผ ๋ชจ๋ํฐ๋ง์ ์ ์กํ๊ณ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆด ์ ์์ต๋๋ค.
๊ฑฐ๋ ๊ธฐ๊ฐ์ ํ๊ฐํ๋ ๊ฒ๋ ์ค์ํฉ๋๋ค. ์ง๊ณต ๊ธฐ๊ฐ์ ํ๊ฐํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์ด๋ฏธ ๋งํ์ง๋ง ๊ฑฐ๋๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ํ๊ฐ๋ฉ๋๋ค. xact_start ๋ฐ query_start ํ๋๊ฐ ์์ต๋๋ค. ์๋์ ์ผ๋ก ๋งํ๋ฉด ํธ๋์ญ์
์์ ์๊ฐ๊ณผ ์์ฒญ ์์ ์๊ฐ์ ํ์ํฉ๋๋ค. ํ์ฌ ํ์์คํฌํ๋ฅผ ํ์ํ๋ now() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํธ๋์ญ์
๊ณผ ์์ฒญ ํ์์คํฌํ๋ฅผ ๋บ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ๊ฑฐ๋ ๊ธฐ๊ฐ, ์์ฒญ ๊ธฐ๊ฐ์ ์ป์ต๋๋ค.
๊ธด ํธ๋์ญ์ ์ด ๋ณด์ด๋ฉด ์ด๋ฏธ ์๋ฃํด์ผ ํฉ๋๋ค. OLTP ๋ก๋์ ๊ฒฝ์ฐ ๊ธด ํธ๋์ญ์ ์ ์ด๋ฏธ 1-2-3๋ถ์ ์ด๊ณผํฉ๋๋ค.. OLAP ์ํฌ๋ก๋์ ๊ฒฝ์ฐ ๊ธด ํธ๋์ญ์ ์ด ์ผ๋ฐ์ ์ด์ง๋ง ์๋ฃํ๋ ๋ฐ XNUMX์๊ฐ ์ด์์ด ๊ฑธ๋ฆฐ๋ค๋ฉด ์ด๋ ์ด๋๊ฐ์ ๋ถ๊ท ํ์ด ์๋ค๋ ์ ํธ์ด๊ธฐ๋ ํฉ๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐ๋๋ฉด ๋ฐ์ดํฐ ์์
์ ์์ํฉ๋๋ค. ํ
์ด๋ธ์ ์ก์ธ์คํ๊ณ ์ธ๋ฑ์ค์ ์ก์ธ์คํ์ฌ ํ
์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํด๋ผ์ด์ธํธ๊ฐ ์ด ๋ฐ์ดํฐ์ ์ํธ ์์ฉํ๋ ๋ฐฉ์์ ํ๊ฐํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์ด๋ ์์ ๋์ ํ๊ฐํ๊ณ ์ด๋ค ํ ์ด๋ธ์ด "๊ฐ์ฅ ์ธ๊ธฐ ์๋" ํ ์ด๋ธ์ธ์ง ๋๋ต์ ์ผ๋ก ์ดํดํ๋ ๋ฐ ํ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ผ์ข ์ ๋น ๋ฅธ SSD ์คํ ๋ฆฌ์ง์ "ํซ" ํ ์ด๋ธ์ ๋ฐฐ์นํ๋ ค๋ ์ํฉ์ ํ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ค๋ซ๋์ ์ฌ์ฉํ์ง ์์ ์ผ๋ถ ์์นด์ด๋ธ ํ ์ด๋ธ์ ์ผ์ข ์ "์ฝ๋" ์์นด์ด๋ธ, SATA ๋๋ผ์ด๋ธ๋ก ์ด๋ํ์ฌ ๊ทธ๊ณณ์ ๋ณด๊ดํ ์ ์์ผ๋ฉฐ ํ์์ ๋ฐ๋ผ ์ก์ธ์คํ ์ ์์ต๋๋ค.
์ด๋ ๋ฆด๋ฆฌ์ค ๋ฐ ๋ฐฐํฌ ํ ์ด์ ํ์์ ๊ฐ์งํ๋ ๋ฐ์๋ ์ ์ฉํฉ๋๋ค. ํ๋ก์ ํธ๊ฐ ๋ช ๊ฐ์ง ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ์ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ ์ํ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ ์ด๋ธ ์ฌ์ฉ๋ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆฌ๋ฉด ์ด๋ฌํ ๊ทธ๋ํ์์ ์ด๋ฌํ ์ด์ ํ์์ ์ฝ๊ฒ ๊ฐ์งํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ฒ์คํธ๋ฅผ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ๋ฒ์คํธ๋ฅผ ์ญ์ ํฉ๋๋ค. ๊ทธ๊ฒ์ ๋งค์ฐ ๋์ ๋๊ฒ ๋ ๊ฒ์ ๋๋ค.
๋ํ "๋ถ๋" ํต๊ณ์์ ์ด์ ์งํ๋ฅผ ๊ฐ์งํ ์๋ ์์ต๋๋ค. ๋ฌด์จ ๋ป์ด์์? PostgreSQL์๋ ๋งค์ฐ ๊ฐ๋ ฅํ๊ณ ์ฐ์ํ ์ฟผ๋ฆฌ ํ๋๋๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ์๋ค์ ๊ฐ๋ฐ์ ๋ง์ ์๊ฐ์ ํ ์ ํฉ๋๋ค. ๊ทธ๋ ์ด๋ป๊ฒ ์ผํฉ๋๊น? ์ข์ ๊ณํ์ ์ธ์ฐ๊ธฐ ์ํด PostgreSQL์ ํน์ ์๊ฐ ๊ฐ๊ฒฉ๊ณผ ํน์ ๋น๋๋ก ํ ์ด๋ธ์ ๋ฐ์ดํฐ ๋ถํฌ์ ๋ํ ํต๊ณ๋ฅผ ์์งํฉ๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๊ฐ์ ๊ณ ์ ๊ฐ์ ์, ํ ์ด๋ธ์ NULL์ ๋ํ ์ ๋ณด, ๋ง์ ์ ๋ณด์ ๋๋ค.
ํ๋๋๋ ์ด๋ฌํ ํต๊ณ๋ฅผ ๋ฐํ์ผ๋ก ์ฌ๋ฌ ์ฟผ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๊ณ ๊ฐ์ฅ ์ต์ ์ ์ฟผ๋ฆฌ๋ฅผ ์ ํํ๋ฉฐ, ์ด ์ฟผ๋ฆฌ ๊ณํ์ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ ์์ฒด๋ฅผ ์คํํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํต๊ณ๊ฐ "๋ถ๋"๋๋ ์ผ์ด ๋ฐ์ํฉ๋๋ค. ํ ์ด๋ธ์ ํ์ง ๋ฐ ์๋ ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ๋ ๋ณ๊ฒฝ๋์์ง๋ง ํต๊ณ๊ฐ ์์ง๋์ง ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ฑ๋ ๊ณํ์ด ์ต์ ์ด ์๋ ์๋ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ ์ด๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ์์ง๋ ๋ชจ๋ํฐ๋ง์ ๊ธฐ๋ฐ์ผ๋ก ์ฐ๋ฆฌ์ ๊ณํ์ด ์ต์ ์ด ์๋ ๊ฒ์ผ๋ก ํ๋ช ๋๋ฉด ์ด๋ฌํ ์ด์ ํ์์ ํ์ธํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฐ์ดํฐ๊ฐ ์ง์ ์ผ๋ก ๋ณ๊ฒฝ๋๊ณ ์ธ๋ฑ์ค ๋์ ํ ์ด๋ธ์ ํตํ ์์ฐจ์ ์ ๋ฌ์ด ์ฌ์ฉ๋๊ธฐ ์์ํ์ต๋๋ค. ์ฟผ๋ฆฌ๊ฐ 100๊ฐ์ ํ๋ง ๋ฐํํด์ผ ํ๋ ๊ฒฝ์ฐ(100๊ฐ ์ ํ) ์ด ์ฟผ๋ฆฌ์ ๋ํด ์ ์ฒด ๊ฒ์์ด ์ํ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ํญ์ ์ฑ๋ฅ์ ๋งค์ฐ ๋์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ๋ชจ๋ํฐ๋ง์์ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฏธ ์ด ์ฟผ๋ฆฌ๋ฅผ ๋ณด๊ณ ์ด์ ๋ํ ์ค๋ช ์ ์คํํ๊ณ ํต๊ณ๋ฅผ ์์งํ๊ณ ์๋ก์ด ์ถ๊ฐ ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ถํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฏธ ์ด ๋ฌธ์ ์ ๋์ํ๊ณ ์์ต๋๋ค. ๊ทธ๊ฒ์ด ์ค์ํ ์ด์ ์ ๋๋ค.
๋ชจ๋ํฐ๋ง์ ๋ ๋ค๋ฅธ ์์
๋๋ค. ์๋ ์ธ๊ธฐ๊ฐ ๋ง์์ ์์๋ณด์๋ ๋ถ๋ค์ด ๋ง์ ๊ฒ ๊ฐ์์. ๋๊ฐ ํ๋ก์ ํธ์์ ๊ทธ๊ฒ์ ์ฌ์ฉํฉ๋๊น?
์ฌ๋ฌ ๊ทธ๋ํ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํธ๋ ๋จ์๋ก ํ์๋ฉ๋๋ค. ์ฆ, 5๊ฐ์ ๊ทธ๋ํ๊ฐ ์์ต๋๋ค. ๋ฐ์ดํฐ ์ฝ์ , ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ, ๋ฐ์ดํฐ ์ญ์ , ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ๋ฐ์ดํฐ ๋ฐํ์ด ์์ต๋๋ค. ๋จ์ ์ธก์ ์ ๋ฐ์ดํธ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ฌธ์ ๋ PostgreSQL์ ํต๊ณ๊ฐ ๋ฐ์ดํฐ๋ฅผ ํํ(ํ)๋ก ๋ฐํํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์ด๋ฌํ ๊ทธ๋ํ๋ ์์ ๋ถํ๋ฅผ ์ฌ๋ฌ ๋ฒ, ์์ญ ๋ฒ ๊ณผ์ํ๊ฐํ๋ ๋งค์ฐ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค. ํํ์ ๋ฐ์ดํธ๊ฐ ์๋๊ณ , ํํ์ ๋ฌธ์์ด์ด๋ฉฐ, ๋ง์ ๋ฐ์ดํธ์ด๊ณ ํญ์ ๊ฐ๋ณ ๊ธธ์ด์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฆ, ํํ์ ์ฌ์ฉํ์ฌ ์์ ๋์ ๋ฐ์ดํธ ๋จ์๋ก ๊ณ์ฐํ๋ ๊ฒ์ ๋นํ์ค์ ์ด๊ฑฐ๋ ๋งค์ฐ ์ด๋ ค์ด ์์ ์ ๋๋ค. ๋ฐ๋ผ์ ๋์๋ณด๋๋ ๋ด์ฅ ๋ชจ๋ํฐ๋ง์ ์ฌ์ฉํ ๋ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๊ณ ์ฌ๋ฐ๋ฅด๊ฒ ํ๊ฐ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋ค๋ ์ ์ ์ดํดํ๋ ๊ฒ์ด ํญ์ ์ค์ํฉ๋๋ค.
์ด ํ
์ด๋ธ์ ๋ํ ํต๊ณ๋ฅผ ์ป๋ ๋ฐฉ๋ฒ์ ๋ฌด์์
๋๊น? ์ด๋ฅผ ์ํด PostgreSQL์๋ ํน์ ๋ทฐ ๊ณ์ด์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฉ์ธ๋ทฐ๋
์ ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ์ , ์ ๋ฐ์ดํธ ๋ฐ ์ญ์ ํ์๋ฅผ ์ถ์ ํ ์ ์์ต๋๋ค. ์ ๊ฐ ์ฌ์ฉํ ๋์๋ณด๋์ ์์์๋ ์ด๋ฌํ ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ํฌ๋ก๋์ ํน์ฑ์ ํ๊ฐํฉ๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถํ ์๋ ์์ต๋๋ค. ํ์ง๋ง ์ด๋ ๋ฐ์ดํธ๊ฐ ์๋ ํํ์ด๋ฏ๋ก ๋ฐ์ดํธ ๋จ์๋ก๋ง ์ํํ ์๋ ์๋ค๋ ์ ์ ๊ธฐ์ตํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
์ด ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ TopN ํ ์ด๋ธ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์์ 5๊ฐ, ์์ 10๊ฐ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ๊ฒ๋ณด๋ค ๋ ๋ง์ด ์ฌํ์ฉ๋๋ ํซ ํ ์ด๋ธ์ ์ถ์ ํ ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ฝ์ ์ ์ํ 5๊ฐ์ "ํซ" ํ ์ด๋ธ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ TopN ํ ์ด๋ธ์ ์ฌ์ฉํ์ฌ ์ํฌ๋ก๋๋ฅผ ํ๊ฐํ๊ณ ๋ฆด๋ฆฌ์ค, ์ ๋ฐ์ดํธ ๋ฐ ๋ฐฐํฌ ํ ์ํฌ๋ก๋ ๊ธ์ฆ์ ํ๊ฐํ ์ ์์ต๋๋ค.
๊ฐ๋ฐ์๊ฐ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ์ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ, ๋ฐ์ดํฐ ์์ ์ถ๊ฐํ๊ธฐ๋ก ๊ฒฐ์ ํ์ง๋ง ์ด๊ฒ์ด ์ด๋ค ์ํฅ์ ๋ฏธ์น ์ง ์์ธกํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ํ ์ด๋ธ ํฌ๊ธฐ๊ฐ ์ปค์ง๊ธฐ ์์ํ๊ธฐ ๋๋ฌธ์ ํ ์ด๋ธ ํฌ๊ธฐ๋ฅผ ํ๊ฐํ๋ ๊ฒ๋ ์ค์ํฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํฌ๊ธฐ. ๊ทธ๋ฌํ ๊ฒฝ์ฐ๋ ์ฐ๋ฆฌ์๊ฒ๋ ๋๋ผ์ด ์ผ์ ๋๋ค.
์ด์ ์์ ์ง๋ฌธ์ด ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ๋ก๋๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ์ด๋ค ์ง๋ฌธ์ด ๋ ์ค๋ฅด๋์? ๋ค์ ์ง๋ฌธ์ ๋ฌด์์ ๋๊น?
๊ทธ๋ฌ๋ ์ค์ ๋ก ๋ค์๊ณผ ๊ฐ์ ์ง๋ฌธ์ด ๋ฐ์ํฉ๋๋ค. ๋ก๋๋ก ์ธํด ์ด๋ค ์์ฒญ์ด ๋ฐ์ํฉ๋๊น? ์ฆ, ๋ถํ๋ก ์ธํด ๋ฐ์ํ๋ ํ๋ก์ธ์ค๋ฅผ ์ดํด๋ณด๋ ๊ฒ์ ํฅ๋ฏธ๋กญ์ง ์์ต๋๋ค. ํธ์คํธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ผ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๊ทธ๊ณณ์์ ์คํ๋๊ณ ์๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ง ๊ทธ๊ณณ์์ ์ญ์ ๋ ๊ฒ์ด ๋ถ๋ช ํฉ๋๋ค. Top์ ์ด๋ฉด PostgreSQL์์ ์์ ์ค์ธ ํ๋ก์ธ์ค ๋ชฉ๋ก์ด ํ์๋ฉ๋๋ค. Top์์๋ ๊ทธ๋ค์ด ๋ฌด์์ ํ๊ณ ์๋์ง ๋ช ํํ์ง ์์ต๋๋ค.
๋ฐ๋ผ์ ์ผ๋ฐ์ ์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ํ๋ํ๋ฉด PostgreSQL์ด๋ ์ด์ ์ฒด์ ๊ตฌ์ฑ์ ํ๋ํ๊ฑฐ๋ ์ฌ์ง์ด ํ๋์จ์ด๋ฅผ ํ๋ํ๋ ๊ฒ๋ณด๋ค ๋ ๋ง์ ์ด์ต์ ์ป์ ์ ์์ผ๋ฏ๋ก ๊ฐ์ฅ ๋์ ๋ก๋๋ฅผ ์ ๋ฐํ๋ ์ฟผ๋ฆฌ๋ฅผ ์ฐพ์์ผ ํฉ๋๋ค. ๋ด ์ถ์ ์ ๋ฐ๋ฅด๋ฉด ์ด๋ ์ฝ 80-85-90%์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ํจ์ฌ ๋ ๋นจ๋ฆฌ ์ด๋ฃจ์ด์ง๋๋ค. ๊ตฌ์ฑ์ ์์ ํ๊ฑฐ๋, ํนํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ค์ ์์ํ ์ ์๋ ๊ฒฝ์ฐ ๋ค์ ์์์ ์์ฝํ๊ฑฐ๋, ํ๋์จ์ด๋ฅผ ์ถ๊ฐํ๋ ๊ฒ๋ณด๋ค ์์ฒญ์ ์์ ํ๋ ๊ฒ์ด ๋ ๋น ๋ฆ ๋๋ค. ์ฟผ๋ฆฌ๋ฅผ ์ด๋๊ฐ์ ๋ค์ ์์ฑํ๊ฑฐ๋ ์ธ๋ฑ์ค๋ฅผ ์ถ๊ฐํ์ฌ ์ด ์ฟผ๋ฆฌ์์ ๋ ๋์ ๊ฒฐ๊ณผ๋ฅผ ์ป๋ ๊ฒ์ด ๋ ์ฝ์ต๋๋ค.
๋ฐ๋ผ์ ์์ฒญ๊ณผ ๊ทธ ์ ์ ์ฑ์ ๋ชจ๋ํฐ๋งํ ํ์๊ฐ ์์ต๋๋ค. ๋ชจ๋ํฐ๋ง์ ๋ ๋ค๋ฅธ ์๋ฅผ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ๋ ๋ชจ๋ํฐ๋ง์ด ๋ฐ์ด๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ณต์ ์ ๋ํ ์ ๋ณด๊ฐ ์๊ณ , ์ฒ๋ฆฌ๋, ์ฐจ๋จ, ๋ฆฌ์์ค ํ์ฉ๋์ ๋ํ ์ ๋ณด๊ฐ ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ์ ์์ด์ง๋ง ์์ฒญ์ ๋ํ ์ ๋ณด๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ด๋ค ์ฟผ๋ฆฌ๊ฐ ์คํ๋๊ณ ์๋์ง, ์ผ๋ง๋ ์ค๋ซ๋์ ์คํ๋๊ณ ์๋์ง, ์ด๋ฌํ ์ฟผ๋ฆฌ๊ฐ ๋ช ๊ฐ์ธ์ง๋ ๋ช
ํํ์ง ์์ต๋๋ค. ๋ชจ๋ํฐ๋ง์๋ ํญ์ ์ด ์ ๋ณด๊ฐ ํ์ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ์ ๋ณด๋ฅผ ์ป์ผ๋ ค๋ฉด pg_stat_statements ๋ชจ๋์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ํ ๊ทธ๋ํ๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ฐ์ฅ ์์ฃผ ์คํ๋๋ ์ฟผ๋ฆฌ, ์ฆ ๊ฐ์ฅ ์์ฃผ ์คํ๋๋ ์ฟผ๋ฆฌ์ ๋ํ ์ ๋ณด๋ฅผ ์ป์ ์ ์์ต๋๋ค. ์, ๋ฐฐํฌ ํ์ ์ด๋ฅผ ์ดํด๋ณด๊ณ ์์ฒญ์ด ๊ธ์ฆํ๋์ง ํ์ ํ๋ ๊ฒ๋ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
๊ฐ์ฅ ๊ธด ์ฟผ๋ฆฌ, ์ฆ ์๋ฃํ๋ ๋ฐ ๊ฐ์ฅ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์ฟผ๋ฆฌ๋ฅผ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค. ํ๋ก์ธ์์์ ์คํ๋๋ฉฐ I/O๋ฅผ ์๋นํฉ๋๋ค. total_time,mean_time, blk_write_time ๋ฐ blk_read_time ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ํ๊ฐํ ์๋ ์์ต๋๋ค.
๋ฆฌ์์ค ์ฌ์ฉ ์ธก๋ฉด์์ ๊ฐ์ฅ ๊ณผ์คํ ์์ฒญ, ์ฆ ๋์คํฌ์์ ์ฝ๋ ์์ฒญ, ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์์ฒญ, ๋๋ ๋ฐ๋๋ก ์ผ์ข ์ ์ฐ๊ธฐ ๋ถํ๋ฅผ ์์ฑํ๋ ์์ฒญ์ ํ๊ฐํ๊ณ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ๊ฐ์ฅ ๊ด๋ํ ์์ฒญ์ ํ๊ฐํ ์ ์์ต๋๋ค. ์ด๋ ๋ง์ ์์ ํ์ ๋ฐํํ๋ ์ฟผ๋ฆฌ์ ๋๋ค. ์๋ฅผ ๋ค์ด ์ ํ ์ค์ ์ ์์ด๋ฒ๋ฆฐ ์์ฒญ์ด ์์ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋จ์ํ ์ฟผ๋ฆฌ๋ ํ ์ด๋ธ ์ ์ฒด์ ๊ฑธ์ณ ํ ์ด๋ธ ๋๋ ์ฟผ๋ฆฌ์ ์ ์ฒด ๋ด์ฉ์ ๋ฐํํฉ๋๋ค.
๋ํ ์์ ํ์ผ์ด๋ ์์ ํ ์ด๋ธ์ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ๋ฅผ ๋ชจ๋ํฐ๋งํ ์๋ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ์ ํ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๊ฐ ์์ต๋๋ค. ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฒดํฌํฌ์ธํธ์ด๊ฑฐ๋ ์ฒดํฌํฌ์ธํธ๋ผ๊ณ ๋ ํ๋ฉฐ autovacuum ๋ฐ ๋ณต์ ์
๋๋ค.
๋ชจ๋ํฐ๋ง์ ๋ ๋ค๋ฅธ ์์ ๋๋ค. ์ผ์ชฝ์ ์ ์ง ๊ด๋ฆฌ ํญ์ด ์์ต๋๋ค. ํด๋น ํญ์ผ๋ก ์ด๋ํ์ฌ ์ ์ฉํ ์ ๋ณด๋ฅผ ํ์ธํ์๊ธฐ ๋ฐ๋๋๋ค. ํ์ง๋ง ์ฌ๊ธฐ๋ ์ง๊ณต์์ ๊ณผ ํต๊ณ ์์ง์ ์๊ฐ์ผ ๋ฟ, ๊ทธ ์ด์์ ์๋๋ค. ์ด๋ ๋งค์ฐ ๋น์ฝํ ์ ๋ณด์ด๋ฏ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง, ํด๋น ์์ ์ ๋ฌธ์ ๊ฐ ์๋์ง์ ๋ํ ์ ๋ณด๊ฐ ํญ์ ํ์ํฉ๋๋ค.
์ฒดํฌํฌ์ธํธ๋ฅผ ๋ณผ ๋ ์ฒดํฌํฌ์ธํธ๋ ์ค๋ฉ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์์ ๋ํฐ ํ์ด์ง๋ฅผ ๋์คํฌ๋ก ํ๋ฌ์ํ ๋ค์ ์ฒดํฌํฌ์ธํธ๋ฅผ ์์ฑํ๋ค๋ ์ ์ ๊ธฐ์ตํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์ฒดํฌํฌ์ธํธ๋ PostgreSQL์ด ๊ธด๊ธ ์ํฉ์ผ๋ก ์ธํด ๊ฐ์๊ธฐ ์ข ๋ฃ๋ ๊ฒฝ์ฐ ๋ณต๊ตฌ ์ฅ์๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ๋ชจ๋ "๋ํฐ" ํ์ด์ง๋ฅผ ๋์คํฌ๋ก ํ๋ฌ์ํ๋ ค๋ฉด ์ผ์ ๋์ ์ฐ๊ธฐ ์์ ์ ์ํํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ง์ ์์คํ ์์๋ ์ด๋ ๋ง์ ์์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์งง์ ๊ฐ๊ฒฉ์ผ๋ก ์ฒดํฌํฌ์ธํธ๋ฅผ ๋งค์ฐ ์์ฃผ ์ํํ๋ฉด ๋์คํฌ ์ฑ๋ฅ์ด ํฌ๊ฒ ์ ํ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ฆฌ์์ค ๋ถ์กฑ์ผ๋ก ์ธํด ์ด๋ ค์์ ๊ฒช๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ค์ ์์์ ๋๊ณ ๊ฒฝ์ํ๊ณ ์์ฐ์ฑ์ด ๋ถ์กฑํฉ๋๋ค.
๋ฐ๋ผ์ ์ง์ ๋ ํ๋๋ฅผ ์ฌ์ฉํ๋ pg_stat_bgwriter๋ฅผ ํตํด ๋ฐ์ํ๋ ์ฒดํฌํฌ์ธํธ ์๋ฅผ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํน์ ๊ธฐ๊ฐ(10-15-20๋ถ, 3๋ถ) ๋์ ์ฒดํฌํฌ์ธํธ๊ฐ ๋ง์ผ๋ฉด(์: 4-5-XNUMX) ์ด๋ ์ด๋ฏธ ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฏธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ดํด๋ณด๊ณ ๊ตฌ์ฑ์ ์ดํด๋ณด์์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ๋ง์ ์ฒดํฌํฌ์ธํธ๊ฐ ๋ฐ์ํ๋ ์์ธ์ ๋ฌด์์ ๋๊น? ์ด์ฉ๋ฉด ์ด๋ค ์ข ๋ฅ์ ๋๊ท๋ชจ ๋ น์์ด ์งํ๋๊ณ ์์ ์๋ ์์ต๋๋ค. ์ด๋ฏธ ์ํฌ๋ก๋ ๊ทธ๋ํ๋ฅผ ์ถ๊ฐํ๊ธฐ ๋๋ฌธ์ ์ํฌ๋ก๋๋ฅผ ํ๊ฐํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฏธ ์ฒดํฌํฌ์ธํธ ๋งค๊ฐ๋ณ์๋ฅผ ์กฐ์ ํ์ฌ ์ฟผ๋ฆฌ ์ฑ๋ฅ์ ํฐ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ก ํ ์ ์์ต๋๋ค.
์์ ๋งํ๋ฏ์ด Autovacuum์ ๋์คํฌ์ ์ฟผ๋ฆฌ ์ฑ๋ฅ์ ์ฝ๊ฒ ํฉ์ฐํ ์ ์์ผ๋ฏ๋ก Autovacuum์ ์์ ์์ธกํ๋ ๊ฒ์ด ํญ์ ์ค์ํ๊ธฐ ๋๋ฌธ์ ๋ค์ Autovacuum์ผ๋ก ๋์๊ฐ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ Autovacuum ์์
์ ์๋ ์ ํ๋์ด ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ทธ ์ค XNUMX๊ฐ๊ฐ ์์ผ๋ฏ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํญ์ XNUMX๋ช
์ ์์
์๊ฐ ์์
ํ๋ค๋ฉด ์ด๋ autovacuum์ด ๊ตฌ์ฑ๋์ง ์์์์ ์๋ฏธํ๋ฏ๋ก ์ ํ์ ๋์ด๊ณ autovacuum ์ค์ ์ ์์ ํ ํ ๊ตฌ์ฑ์ ๋ค์ด๊ฐ์ผ ํฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ด๋ค ์ง๊ณต์ฒญ์๊ธฐ ์์
์๋ฅผ ๋ณด์ ํ๊ณ ์๋์ง ํ๊ฐํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์์ํ๊ฑฐ๋ DBA๊ฐ ์์ ์๋์ผ๋ก ์ผ์ข
์ ์ง๊ณต์ ์์ํ๊ณ ์ด๋ก ์ธํด ๋ถํ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ด๋ค ์ข
๋ฅ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋๋ ์ด๊ฒ์ ๊ฑฐ๋ ์นด์ดํฐ๋ฅผ ํธ๋ ์ง๊ณต ์ฒญ์๊ธฐ์ ์์
๋๋ค. ์ผ๋ถ PostgreSQL ๋ฒ์ ์ ๊ฒฝ์ฐ ์ด๋ ๋งค์ฐ ํฐ ์ง๊ณต ์ํ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ฒด ํ
์ด๋ธ์ ์ฝ๊ณ ํด๋น ํ
์ด๋ธ์ ๋ชจ๋ ๋ธ๋ก์ ์ค์บํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฌผ๋ก , ์ง๊ณต์ฒญ์ ๊ธฐ๊ฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๋งค์ฐ ์ค๋ซ๋์ ์๋ํ๋ ์ค๋ ์ง์๋๋ ์ง๊ณต์ฒญ์๊ธฐ๊ฐ ์๋ ๊ฒฝ์ฐ ์ด๋ ์ง๊ณต์ฒญ์๊ธฐ ๊ตฌ์ฑ์ ๋ค์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด๊ณ ํด๋น ์ค์ ์ ๋ค์ ๊ณ ๋ คํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ํ ์ด๋ธ์ ์ง๊ณต์ฒญ์๊ธฐ๋ฅผ ์ค๋ซ๋์(3~4์๊ฐ) ์๋์ํค๋ฉด ์ํฉ์ด ๋ฐ์ํ ์ ์์ง๋ง, ์ง๊ณต์ฒญ์๊ธฐ๊ฐ ์๋ํ๋ ๋์ ํ ์ด๋ธ์ ๋ค์ ๋๋์ ๋ฐ๋ ๋ก์ฐ๊ฐ ์์ด๋ ํ์์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ง๊ณต์ฒญ์๊ฐ ์๋ฃ๋์๋ง์ ๊ทธ๋ ์ด ํ ์ด๋ธ์ ๋ค์ ์ง๊ณต์ฒญ์๊ธฐ๋ก ์ฒญ์ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ๋์๋ ์ง๊ณต์ํ์ ๋น ์ง๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๊ฒฝ์ฐ ์ง๊ณต ์ํ๊ฐ ์์ ์ ๋์ฒํ์ง ๋ชปํ๊ณ ์ ์ฉํ ๋ฐ์ดํฐ์ ์์ ๋์ผํ๊ฒ ์ ์ง๋์ง๋ง ํ ์ด๋ธ์ ํฌ๊ธฐ๊ฐ ์ ์ฐจ ์ปค์ง๊ธฐ ์์ํฉ๋๋ค. ๋ฐ๋ผ์ ์ค๋ ๊ณต๋ฐฑ ๊ธฐ๊ฐ ๋์ ์ฐ๋ฆฌ๋ ํญ์ ๊ตฌ์ฑ์ ์ดํด๋ณด๊ณ ์ต์ ํํ๋ ค๊ณ ๋ ธ๋ ฅํ์ง๋ง ๋์์ ํด๋ผ์ด์ธํธ ์์ฒญ ์ฑ๋ฅ์ด ์ ํ๋์ง ์๋๋ก ํฉ๋๋ค.
์์ฆ์๋ ์คํธ๋ฆฌ๋ฐ ๋ณต์ ๊ธฐ๋ฅ์ด ์๋ PostgreSQL ์ค์น๊ฐ ๊ฑฐ์ ์์ต๋๋ค. ๋ณต์ ๋ ๋ง์คํฐ์์ ๋ณต์ ๋ณธ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ด๋ํ๋ ํ๋ก์ธ์ค์ ๋๋ค.
PostgreSQL์ ๋ณต์ ๋ ํธ๋์ญ์ ๋ก๊ทธ๋ฅผ ํตํด ์ํ๋ฉ๋๋ค. ๋ง๋ฒ์ฌ๊ฐ ํธ๋์ญ์ ๋ก๊ทธ๋ฅผ ์์ฑํฉ๋๋ค. ํธ๋์ญ์ ๋ก๊ทธ๋ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ํตํด ๋ณต์ ๋ณธ์ผ๋ก ์ด๋ํ ๋ค์ ๋ณต์ ๋ณธ์์ ์ฌ์๋ฉ๋๋ค. ๊ฐ๋จ ํด.
๋ฐ๋ผ์ pg_stat_replication ๋ทฐ๋ ๋ณต์ ์ง์ฐ์ ๋ชจ๋ํฐ๋งํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ ์ ๋ชจ๋ ๊ฒ์ด ๋จ์ํ์ง๋ ์์ต๋๋ค. ๋ฒ์ 10์์๋ ๋ณด๊ธฐ๊ฐ ๋ช ๊ฐ์ง ๋ณ๊ฒฝ๋์์ต๋๋ค. ์ฒซ์งธ, ์ผ๋ถ ํ๋์ ์ด๋ฆ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ผ๋ถ ํ๋๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ๋ฒ์ 10์์๋ ๋ณต์ ์ง์ฐ์ ์ด ๋จ์๋ก ์ถ์ ํ ์ ์๋ ํ๋๊ฐ ๋ํ๋ฌ์ต๋๋ค. ๋งค์ฐ ํธ์ํฉ๋๋ค. ๋ฒ์ 10 ์ด์ ์๋ ๋ณต์ ์ง์ฐ์ ๋ฐ์ดํธ ๋จ์๋ก ์ถ์ ํ ์ ์์์ต๋๋ค. ์ด ์ต์ ์ ๋ฒ์ 10์๋ ๊ทธ๋๋ก ์ ์ง๋ฉ๋๋ค. ์ฆ, ์ง์ฐ ์๊ฐ์ ๋ฐ์ดํธ ๋จ์๋ก ์ถ์ ํ๊ฑฐ๋ ์ง์ฐ ์๊ฐ์ ์ด ๋จ์๋ก ์ถ์ ํ๋ ๋ฑ ์์ ์๊ฒ ๋ ํธ๋ฆฌํ ๊ฒ์ ์ ํํ ์ ์์ต๋๋ค. ๋ง์ ์ฌ๋๋ค์ด ๋ ๊ฐ์ง๋ฅผ ๋ชจ๋ ์ํํฉ๋๋ค.
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๋ณต์ ์ง์ฐ์ ํ๊ฐํ๋ ค๋ฉด ํธ๋์ญ์ ์์ ๋ก๊ทธ์ ์์น๋ฅผ โโ์์์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ํธ๋์ญ์ ๋ก๊ทธ ์์น๋ ์ ํํ pg_stat_replication ๋ทฐ์ ์์ต๋๋ค. ์๋์ ์ผ๋ก ๋งํ๋ฉด pg_xlog_location_diff() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํธ๋์ญ์ ๋ก๊ทธ์์ ๋ ์ง์ ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ๊ทธ๋ค ์ฌ์ด์ ๋ธํ๋ฅผ ๊ณ์ฐํ๊ณ ๋ณต์ ์ง์ฐ์ ๋ฐ์ดํธ ๋จ์๋ก ๊ฐ์ ธ์ต๋๋ค. ๋งค์ฐ ํธ๋ฆฌํ๊ณ ๊ฐ๋จํฉ๋๋ค.
๋ฒ์ 10์์๋ ์ด ํจ์์ ์ด๋ฆ์ด pg_wal_lsn_diff()๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก "xlog"๋ผ๋ ๋จ์ด๊ฐ ๋ฐ๊ฒฌ๋ ๋ชจ๋ ๊ธฐ๋ฅ, ๋ณด๊ธฐ ๋ฐ ์ ํธ๋ฆฌํฐ์์๋ "wal"์ด๋ผ๋ ๊ฐ์ผ๋ก ๋์ฒด๋์์ต๋๋ค. ์ด๋ ๋ทฐ์ ๊ธฐ๋ฅ ๋ชจ๋์ ์ ์ฉ๋ฉ๋๋ค. ์ด๊ฒ์ ์ ๋ง ํ์ ์ ๋๋ค.
๊ฒ๋ค๊ฐ ๋ฒ์ 10์์๋ ์ง์ฐ์ ๊ตฌ์ฒด์ ์ผ๋ก ๋ณด์ฌ์ฃผ๋ ์ค์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ฐ๊ธฐ ์ง์ฐ, ํ๋ฌ์ ์ง์ฐ, ์ฌ์ ์ง์ฐ์ด ์์ต๋๋ค. ์ฆ, ์ด๋ฌํ ์ฌํญ์ ๋ชจ๋ํฐ๋งํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ณต์ ์ง์ฐ์ด ์๋ ๊ฒ์ผ๋ก ํ์ธ๋๋ฉด ๋ณต์ ์ง์ฐ์ด ๋ฐ์ํ ์ด์ , ์ถ์ฒ๋ฅผ ์กฐ์ฌํ๊ณ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํฉ๋๋ค.
๊ฑฐ์ ๋ชจ๋ ๊ฒ์ด ์์คํ ์ธก์ ํญ๋ชฉ๊ณผ ์ผ์นํฉ๋๋ค. ๋ชจ๋ํฐ๋ง์ด ์์๋๋ฉด ์์คํ ์ธก์ ํญ๋ชฉ์ผ๋ก ์์๋ฉ๋๋ค. ์ด๋ ํ๋ก์ธ์, ๋ฉ๋ชจ๋ฆฌ, ์ค์, ๋คํธ์ํฌ ๋ฐ ๋์คํฌ๋ฅผ ํ๊ธฐํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก๋ ๋ง์ ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
์ฌํ์ฉ ํ๋ก์ธ์ค์ ๋ชจ๋ ๊ฒ์ด ์์กฐ๋กญ๊ฒ ์งํ๋๋ค๋ฉด ๋์คํฌ ์ฌํ์ฉ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ชจ๋ํฐ๋ง ๊ฐ๋ฐ์๋ ์ฒ๋ฆฌ๋์ ๋ํ ์ ๋ณด๋ฅผ ์ถ๊ฐํฉ๋๋ค. iops ๋๋ ๋ฐ์ดํธ ๋จ์์ผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ค์ ๋์คํฌ ์ฅ์น์ ๋๊ธฐ ์๊ฐ๊ณผ ํ์ฉ๋๋ฅผ ์์ด๋ฒ๋ฆฝ๋๋ค. ์ด๋ ๋์คํฌ๊ฐ ์ผ๋ง๋ ๋ก๋๋๊ณ ์ผ๋ง๋ ๋๋ฆฐ์ง ํ๊ฐํ ์ ์๋ ๋ ์ค์ํ ๋งค๊ฐ๋ณ์์ ๋๋ค. ๋๊ธฐ ์๊ฐ์ด ๊ธธ๋ฉด ๋์คํฌ์ ๋ฌธ์ ๊ฐ ์์์ ์๋ฏธํฉ๋๋ค. ํ์ฉ๋๊ฐ ๋๋ค๋ฉด ๋์คํฌ๊ฐ ๋์ฒํ ์ ์๋ค๋ ์๋ฏธ์ ๋๋ค. ์ด๋ ์ฒ๋ฆฌ๋๋ณด๋ค ๋ ๋์ ํน์ฑ์ ๋๋ค.
๋ํ ์ด๋ฌํ ํต๊ณ๋ ํ๋ก์ธ์ ์ฌํ์ฉ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก /proc ํ์ผ ์์คํ ์์๋ ์ป์ ์ ์์ต๋๋ค. ์ ์ด ์ ๋ณด๊ฐ ๋ชจ๋ํฐ๋ง์ ์ถ๊ฐ๋์ง ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ด๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๋คํธ์ํฌ ์ธํฐํ์ด์ค์๋ ๋์ผํ๊ฒ ์ ์ฉ๋ฉ๋๋ค. ํจํท, ๋ฐ์ดํธ ๋จ์์ ๋คํธ์ํฌ ์ฒ๋ฆฌ๋์ ๋ํ ์ ๋ณด๊ฐ ์์ง๋ง ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๋๊ธฐ ์๊ฐ์ ๋ํ ์ ๋ณด๋ ์์ผ๋ฉฐ ํ์ฉ๋์ ๋ํ ์ ๋ณด๋ ์์ต๋๋ค. ์ด๋ ์ ์ฉํ ์ ๋ณด์ด๊ธฐ๋ ํฉ๋๋ค.
๋ชจ๋ ๋ชจ๋ํฐ๋ง์๋ ๋จ์ ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ค ์ข ๋ฅ์ ๋ชจ๋ํฐ๋ง์ ์ํํ๋๋ผ๋ ํญ์ ํน์ ๊ธฐ์ค์ ์ถฉ์กฑํ์ง ๋ชปํฉ๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๊ณ์ํด์ ๋ฐ์ ํ๊ณ ์๊ณ , ์๋ก์ด ๊ธฐ๋ฅ๊ณผ ์๋ก์ด ๊ฒ๋ค์ด ์ถ๊ฐ๋๊ณ ์์ผ๋, ๋ญ๊ฐ๋ฅผ ์ ํํด์ ๋ง๋ฌด๋ฆฌํด ๋ณด์ธ์.
๊ทธ๋ฆฌ๊ณ ๋๋ด๊ธฐ ์ํด์๋ ์ ๊ณต๋ ํต๊ณ๊ฐ ๋ฌด์์ ์๋ฏธํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ์ด๋ป๊ฒ ๋ฌธ์ ํด๊ฒฐ์ ์ฌ์ฉํ ์ ์๋์ง์ ๋ํ ์์ด๋์ด๋ฅผ ํญ์ ๊ฐ์ง๊ณ ์์ด์ผ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ช ๊ฐ์ง ํต์ฌ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ํญ์ ๊ฐ์ฉ์ฑ์ ๋ชจ๋ํฐ๋งํ๊ณ ๋์๋ณด๋๋ฅผ ๊ฐ์ถ์ด์ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชจ๋ ๊ฒ์ด ์ ๋๋ก ๋์ด ์๋์ง ์ ์ํ๊ฒ ํ๊ฐํ ์ ์์ต๋๋ค.
- ๋์ ํด๋ผ์ด์ธํธ๋ฅผ ๊ฑธ๋ฌ๋ด๊ณ ๊ฒฉ์ถ์ํค๊ธฐ ์ํด์๋ ํญ์ ์ด๋ค ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์์ ํ๊ณ ์๋์ง์ ๋ํ ์์ด๋์ด๊ฐ ํ์ํฉ๋๋ค.
- ์ด๋ฌํ ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ ํ๊ฐํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์์ ๋์ ๋ํ ์์ด๋์ด๊ฐ ํ์ํฉ๋๋ค.
- ์ด๋ค ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด ์ํฌ๋ก๋๊ฐ ์ด๋ป๊ฒ ํ์ฑ๋๋์ง ํ๊ฐํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ฟผ๋ฆฌ๋ฅผ ํ๊ฐํ๊ณ , ์ต์ ํํ๊ณ , ๋ฆฌํฉํฐ๋งํ๊ณ , ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
- ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๋ ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์์ผ๋ฏ๋ก ๋ฆฌ์์ค๋ฅผ ๋๋ฌด ๋ง์ด ์ฌ์ฉํ์ง ์๋์ง ๋ชจ๋ํฐ๋งํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
- ์์คํ ์งํ๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฒ ์ฉ๋ ํ์ฅ ๋ฐ ์ฆ๊ฐ์ ๋ํ ๊ณํ์ ์ธ์ธ ์ ์์ผ๋ฏ๋ก ์ด๋ฅผ ์ถ์ ํ๊ณ ํ๊ฐํ๋ ๊ฒ๋ ์ค์ํฉ๋๋ค.
์ด ์ฃผ์ ์ ๊ด์ฌ์ด ์๋ค๋ฉด ๋ค์ ๋งํฌ๋ฅผ ๋ฐ๋ผ๊ฐ ์ ์์ต๋๋ค.
์์ฒญ ์์:
์ด๊ฒ์ ์ฐ๋ฆฌ ํ์ฌ ์ ์ฅ์์ด์ ๋ด ์ ์ฅ์์ ๋๋ค. ์ฌ๊ธฐ์๋ ์์ ์ฟผ๋ฆฌ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๊ฑฐ๊ธฐ์๋ ์๋ฆฌ์ฆ์ select*์ ๋ํ ์ฟผ๋ฆฌ๊ฐ ์์ต๋๋ค. ์์ ์ซ์๋ฅผ ์ฝ๊ธฐ ์ฝ๊ณ ํธ๋ฆฌํ ๊ฐ(์: ๋ฐ์ดํธ, ์๊ฐ)์ผ๋ก ๋ณํํ ์ ์๋ ํฅ๋ฏธ๋ก์ด ํจ์๋ฅผ ์ฌ์ฉํ๋ ์กฐ์ธ์ด ํฌํจ๋ ๊ธฐ์ฑ ์ฟผ๋ฆฌ๊ฐ ์ด๋ฏธ ์์ต๋๋ค. ์ด๋ฅผ ์ ํํ๊ณ , ์ดํด๋ณด๊ณ , ๋ถ์ํ๊ณ , ๋ชจ๋ํฐ๋ง์ ์ถ๊ฐํ๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ํฐ๋ง์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
์ง๋ฌธ
์ง๋ฌธ: ๋ธ๋๋ ๊ด๊ณ ๋ฅผ ํ์ง ์๊ฒ ๋ค๊ณ ํ์
จ๋๋ฐ, ํ๋ก์ ํธ์์๋ ์ด๋ค ์ข
๋ฅ์ ๋์๋ณด๋๋ฅผ ์ฌ์ฉํ์๋์?
๋๋ต: ๋ค์ํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ณ ๊ฐ์ ๋ฐฉ๋ฌธํ๋๋ฐ ๊ทธ ๊ณ ๊ฐ์ ์ด๋ฏธ ์์ฒด ๋ชจ๋ํฐ๋ง์ ๊ฐ๊ณ ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ํฐ๋ง์ ์ถ๊ฐํด์ผ ํ ์ฌํญ์ ๊ณ ๊ฐ์๊ฒ ์กฐ์ธํฉ๋๋ค. ์ต์
์ ์ํฉ์ Zabbix์ ๊ฒฝ์ฐ์
๋๋ค. TopN ๊ทธ๋ํ๋ฅผ ๊ตฌ์ถํ๋ ๊ธฐ๋ฅ์ด ์๊ธฐ ๋๋ฌธ์
๋๋ค. ์ฐ๋ฆฌ๋ ์ค์ค๋ก ์ฌ์ฉํฉ๋๋ค
์ง๋ฌธ: AWR ๋ณด๊ณ ์๋... ์ง๊ณ์ ์ ์ฌํ ๊ฒ์ด ์์ต๋๊น? ์ด๋ฐ ๊ฒ์ ๋ํด ์๊ณ ์๋์?
๋๋ต: ๋ค, ์ ๋ AWR์ด ๋ฌด์์ธ์ง ์๋๋ค. ๊ทธ๊ฒ์ ๋ฉ์ง ์ผ์
๋๋ค. ํ์ฌ ๋๋ต ๋ค์ ๋ชจ๋ธ์ ๊ตฌํํ๋ ๋ค์ํ ์์ ๊ฑฐ๊ฐ ์์ต๋๋ค. ์ผ์ ํ ์๊ฐ ๊ฐ๊ฒฉ์ ๋๊ณ ์ผ๋ถ ๊ธฐ์ค์ ์ด ๋์ผํ PostgreSQL ๋๋ ๋ณ๋์ ์คํ ๋ฆฌ์ง์ ๊ธฐ๋ก๋ฉ๋๋ค. ์ธํฐ๋ท์์ ๊ตฌ๊ธ์ ๊ฒ์ํด ๋ณด๋ฉด ๊ฑฐ๊ธฐ์ ์์ต๋๋ค. ๊ทธ๋ฌํ ๊ฐ๋ฐ์ ์ค ํ ๋ช
์ด PostgreSQL ์ค๋ ๋์ sql.ru ํฌ๋ผ์ ์์ ์์ต๋๋ค. ๊ฑฐ๊ธฐ์ ๊ทธ๋ฅผ ์ก์ ์ ์์ด์. ์, ๊ทธ๋ฐ ๊ฒ์ด ์์ต๋๋ค. ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฒ๋ค๊ฐ ๊ทธ ์์๋
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