๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ๊ด€๋ฆฌ ๊ถŒ์žฅ์‚ฌํ•ญ

์ด ํŽ˜์ด์ง€์—์„œ๋Š” Cloud SQL ์ธ์Šคํ„ด์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†Œ๊ฐœ

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

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

PostgreSQL ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์„ฑ์š”์†Œ๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐœ์˜ ์„น์…˜์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

  • ์ „์—ญ ๋ฉ”๋ชจ๋ฆฌ: ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์—์„œ ๊ณต์œ ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด shared_buffers ๋ฐ max_connections์ž…๋‹ˆ๋‹ค.
  • ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ: ๊ฐ ์—ฐ๊ฒฐ์— ํ• ๋‹น๋œ ์ „์šฉ ๋ฉ”๋ชจ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, work_mem, maintenance_work_mem ๋ฐ temp_buffers์ž…๋‹ˆ๋‹ค.

๊ธฐํƒ€ ๊ตฌ์„ฑ ๊ณ ๋ ค์‚ฌํ•ญ์€ ์ผ๋ฐ˜ ๊ถŒ์žฅ์‚ฌํ•ญ ๋ฐ ์šด์˜ ๊ฐ€์ด๋“œ๋ผ์ธ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ๋ฐ ํ”Œ๋ž˜๊ทธ

Cloud SQL ์ธ์Šคํ„ด์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๋†’์„ ๋•Œ๋งˆ๋‹ค ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์งˆ๋ฌธ์„ ๊ณ ๋ คํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฟผ๋ฆฌ ๋˜๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?
  • ๋ฉ”๋ชจ๋ฆฌ ์„ค์ •์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™œ๋™์— ์ ํ•ฉํ•œ๊ฐ€์š”?
  • ๋ฉ”๋ชจ๋ฆฌ ์„ค์ •์„ ์–ด๋–ป๊ฒŒ ๋ณ€๊ฒฝํ•˜๋‚˜์š”?

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

  • ๊ณต์œ  ๋ฒ„ํผ: PostgreSQL์—์„œ read ๋ฐ write ์ž‘์—…์˜ ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•˜๋„๋ก ํ• ๋‹นํ•˜๋Š” ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ์ž…๋‹ˆ๋‹ค. read ์ž‘์—…์˜ ๊ฒฝ์šฐ ๋””์Šคํฌ์—์„œ ์š”์ฒญ๋œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € RAM์œผ๋กœ ๊ฐ€์ ธ์˜จ ํ›„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ PostgreSQL์—์„œ๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ์š”์ฒญ๋˜๋ฉด(์˜ˆ: SELECT * from emp) ๋จผ์ € ์บ์‹ฑ์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ์—์„œ shared_buffers๋กœ ๊ฐ€์ ธ์˜จ ๋‹ค์Œ ํด๋ผ์ด์–ธํŠธ์— ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. write ์ž‘์—…์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

    ๊ณต์œ  ๋ฒ„ํผ๋Š” ๋ฐ์ดํ„ฐ ์บ์‹ฑ, ์—ฐ๊ฒฐ ์บ์‹ฑ, ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ์–ธ์–ด(DML) ์ž‘์—…๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™œ๋™์— ๋Œ€ํ•œ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค ๋ฐ ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜์—ญ์—์„œ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ“๊ฐ’์€ shared_buffers ํ”Œ๋ž˜๊ทธ๋กœ ์ง€์ •๋˜๋ฉฐ ๊ธฐ๋ณธ๊ฐ’์€ ์ธ์Šคํ„ด์Šค ๋ฉ”๋ชจ๋ฆฌ์˜ 33%์ž…๋‹ˆ๋‹ค. shared_buffers ๊ฐ’์ด ๋†’์œผ๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๊ฐ€ ํฝ๋‹ˆ๋‹ค.

  • ์ฟผ๋ฆฌ ์ž‘์—… ๋ฉ”๋ชจ๋ฆฌ: ์ฟผ๋ฆฌ๊ฐ€ ์‹คํ–‰๋˜๋ฉด PostgreSQL์€ ์ •๋ ฌ ๋ฐ ํ•ด์‹ฑ๊ณผ ๊ฐ™์€ ๊ฐ ์ž‘์—…์— ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ž„์‹œ ๋””์Šคํฌ ํŒŒ์ผ์— ์“ฐ๊ธฐ ์ „์— ๊ฐ ์ฟผ๋ฆฌ ์ž‘์—…์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ“๊ฐ’์€ work_mem ํ”Œ๋ž˜๊ทธ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ๊ธฐ๋ณธ๊ฐ’์€ 4MB์ž…๋‹ˆ๋‹ค. work_mem ๊ฐ’์ด ๋†’์œผ๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์–‘์ด ๋งŽ์Šต๋‹ˆ๋‹ค.
  • ์œ ์ง€๋ณด์ˆ˜ ์ž‘์—… ๋ฉ”๋ชจ๋ฆฌ: VACUUM, CREATE INDEX, ALTER TABLE, ADD FOREIGN KEY์™€ ๊ฐ™์€ ์ผ๋ถ€ ์œ ์ง€๋ณด์ˆ˜ ์ž‘์—…์—๋Š” PostgreSQL์ด ํ• ๋‹นํ•˜๋Š” ๋ณ„๋„์˜ ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ž‘์—…์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฑ์—”๋“œ ํ”„๋กœ์„ธ์Šค์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋Š” maintenance_work_mem ํ”Œ๋ž˜๊ทธ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ธฐ๋ณธ๊ฐ’์€ 64MB์ž…๋‹ˆ๋‹ค. autovacuum ์ž‘์—…์ž๋„ ์œ ์ง€๋ณด์ˆ˜ ์ž‘์—… ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์ตœ๋Œ“๊ฐ’์€ autovacuum_work_mem ํ”Œ๋ž˜๊ทธ๋กœ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. maintenance_work_mem ๊ฐ’์ด ๋†’์œผ๋ฉด VACUUM ์ž‘์—…์˜ ์„ฑ๋Šฅ ์†๋„๊ฐ€ ๋†’์Šต๋‹ˆ๋‹ค.
  • ์ž„์‹œ ๋ฒ„ํผ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ธ์…˜์—์„œ ์ž„์‹œ ํ…Œ์ด๋ธ”์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ PostgreSQL์€ ์„ธ์…˜ ๋กœ์ปฌ ์ž„์‹œ ํ…Œ์ด๋ธ”์„ ์ €์žฅํ•  ์ž„์‹œ ๋ฒ„ํผ๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ตœ๋Œ€ ์šฉ๋Ÿ‰์€ temp_buffers ํ”Œ๋ž˜๊ทธ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ธฐ๋ณธ๊ฐ’์€ 8MB์ž…๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋ฉด PostgreSQL์€ ํด๋ผ์ด์–ธํŠธ ์„ธ์…˜์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฑ์—”๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. PostgreSQL์€ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ๋ฉ”๋ชจ๋ฆฌ ์™ธ์—๋„ ์‹œ์Šคํ…œ ์นดํƒˆ๋กœ๊ทธ ์บ์‹œ ๋ฐ ์ค€๋น„๋œ ์ฟผ๋ฆฌ ๊ณ„ํš๊ณผ ๊ฐ™์€ ์ •๋ณด๋ฅผ ์œ ์ง€๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์— ํ—ˆ์šฉ๋˜๋Š” ์ตœ๋Œ€ ๋™์‹œ ์—ฐ๊ฒฐ ์ˆ˜๋Š” max_connections ํ”Œ๋ž˜๊ทธ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์œ ํœด ์—ฐ๊ฒฐ์€ ์•ฝ 2MB~3MB์˜ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. max_connections ๊ฐ’์ด ๋†’์œผ๋ฉด ์ธ์Šคํ„ด์Šค๊ฐ€ ๋” ๋งŽ์€ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

PostgreSQL์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์„ฑ์š”์†Œ์˜ ์ „์ฒด ๋ชฉ๋ก์€ PostgreSQL ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ์ด ์„น์…˜์— ๋‚˜์—ด๋œ ํ”Œ๋ž˜๊ทธ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”Œ๋ž˜๊ทธ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ๋ชจ๋‹ˆํ„ฐ๋ง

Cloud Monitoring์—์„œ ์ธ์Šคํ„ด์Šค ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ •๊ธฐ์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ๋ฉ”๋ชจ๋ฆฌ ํ•œ๋„ ๋ฏธ๋งŒ์œผ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. 6์‹œ๊ฐ„ ๋™์•ˆ ์‚ฌ์šฉ๋Ÿ‰์ด ํ•œ๋„์˜ 90%๋ฅผ ์ดˆ๊ณผํ•  ๊ฒฝ์šฐ ์•Œ๋ฆผ์„ ๋ฐ›๋„๋ก Cloud Monitoring์—์„œ ์•Œ๋ฆผ์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด ์•Œ๋ฆผ์€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ํ•œ๋„์— ์ง€์†์ ์œผ๋กœ ๊ฐ€๊นŒ์›Œ์งˆ ๋•Œ ๊ฒฝ๊ณ ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ์ด์Šˆ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Cloud Monitoring์—์„œ server process .* was terminated by signal 9: Killed ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•ด ๋กœ๊ทธ ๊ธฐ๋ฐ˜ ์ธก์ •ํ•ญ๋ชฉ์„ ์„ค์ •ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ์ด๋ฒคํŠธ๋ฅผ ๊ณ„์‚ฐํ•œ ๋‹ค์Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค ์•Œ๋ฆผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

์ธ์Šคํ„ด์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ํ•œ๋„์˜ 90% ์ด์ƒ์œผ๋กœ ๊ณ„์† ์ž‘๋™ํ•˜๊ฑฐ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ์ธ์Šคํ„ด์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋Š˜๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์ˆ˜๋ฅผ ์ œํ•œํ•˜๊ฑฐ๋‚˜ shared_buffers, work_mem, max_connections ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”Œ๋ž˜๊ทธ๋ฅผ ๋‚ฎ์ถฐ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ”Œ๋ž˜๊ทธ๋ฅผ ๋‚ฎ์ถ”๋ฉด ์ธ์Šคํ„ด์Šค์˜ ์„ฑ๋Šฅ์ด ์ œํ•œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ

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

2021-10-24 23:34:22.265 UTC [7]: [663-1] db=,user= LOG: server process (PID 1255039) was terminated by signal 9: Killed
2021-10-24 23:34:22.265 UTC [7]: [664-1] db=,user= DETAIL: Failed process was running: SELECT * FROM tab ORDER BY col
2021-10-24 23:34:22.277 UTC [7]: [665-1] db=,user= LOG: terminating any other active server processes
2021-10-24 23:34:22.278 UTC [1255458]: [1-1] db=postgres,user=postgres WARNING: terminating connection because of crash of another server process
2021-10-24 23:34:22.278 UTC [1255458]: [2-1] db=postgres,user=postgres DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.
2021-10-24 23:34:22.278 UTC [1255458]: [3-1] db=postgres,user=postgres HINT: In a moment you should be able to reconnect to the database and repeat your command.
2021-10-24 23:34:22.278 UTC [1255458]: [4-1] db=postgres,user=postgres CONTEXT: while updating tuple (27,18) in relation "tab"
...
2021-10-24 23:34:22.558 UTC [1255477]: [1-1] db=postgres,user=postgres FATAL: the database system is in recovery mode
...
2021-10-24 23:34:25.579 UTC [7]: [666-1] db=,user= LOG: all server processes terminated; reinitializing
...
2021-10-24 23:34:25.691 UTC [1255482]: [1-1] db=,user= LOG: database system was interrupted; last known up at 2021-10-24 23:31:53 UTC
2021-10-24 23:34:25.776 UTC [1255482]: [2-1] db=,user= LOG: database system was not properly shut down; automatic recovery in progress
2021-10-24 23:34:25.789 UTC [1255482]: [3-1] db=,user= LOG: redo starts at 227/AB359400
2021-10-24 23:34:38.957 UTC [1255482]: [4-1] db=,user= LOG: redo done at 229/4621F508
2021-10-24 23:34:38.959 UTC [1255482]: [5-1] db=,user= LOG: last completed transaction was at log time 2021-10-24 23:34:18.5535+00
2021-10-24 23:34:39.290 UTC [7]: [667-1] db=,user= LOG: database system is ready to accept connections

๋‹ค์Œ ๋‹จ๊ณ„