Buffer Pool

  • InnoDB ๋ฒ„ํผ ํ’€์€ InnoDB์—์„œ ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ธ ๋ถ€๋ถ„
  • MySQL ์„ฑ๋Šฅ ํŠœ๋‹์˜ ์ค‘์š”ํ•œ ์ธก๋ฉด
  • innodb_buffer_pool_size๋กœ ์„ค์ •ํ•˜๊ณ , ์ „์ฒด ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์˜ 50~80% ์ˆ˜์ค€์œผ๋กœ ์„ค์ •
  • ๋ฒ„ํผ ํ’€ ๋ฉ”๋ชจ๋ฆฌ๋Š” ํŽ˜์ด์ง•๊ณผ ์บ์‹œ ํšจ์œจ์„ฑ์„ ์œ„ํ•ด LRU ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ
  • ์ธ๋ฑ์Šค ์„ค๊ณ„์— ์ž˜ ๋˜์–ด ์žˆ์ง€๋งŒ ์Šฌ๋กœ์šฐ ์ฟผ๋ฆฌ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ด ๋ถ€๋ถ„์„ ์˜์‹ฌํ•ด ๋ด์•ผ ํ•œ๋‹ค.
  • ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ์ƒํƒœ ํ™•์ธ ์ฟผ๋ฆฌ
SHOW STATUS LIKE '%innodb_buffer_pool%';

 

innodb_buffer_pool_size

  • ๋ฒ„ํผ ํ’€์˜ ํฌ๊ธฐ๊ฐ€ ํด์ˆ˜๋ก ์„ฑ๋Šฅ์— ์œ ๋ฆฌํ•จ
    • ๋ฒ„ํผ ํ’€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ถฉ๋ถ„ํžˆ ํฐ ์–‘์œผ๋กœ ํ• ๋‹น๋˜์–ด ์žˆ๋‹ค๋ฉด innodb๋Š” ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ฒ˜๋Ÿผ ๋™์ž‘
  • ๋””์Šคํฌ์˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์ด๋‚˜ ์ธ๋ฑ์Šค ์ •๋ณด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์บ์‹œํ•ด ๋‘๋Š” ๊ณต๊ฐ„ + ์“ฐ๊ธฐ ์ž‘์—…์„ ์ง€์—ฐ์‹œ์ผœ ์ผ๊ด„ ์ž‘์—…์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฒ„ํผ ์—ญํ• 
    • SELECT๋ฅผ ์œ„ํ•œ ์บ์‹œ ํšจ๊ณผ๊ฐ€ ํฌ๋‹ค -> ์ฝ์œผ๋ ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€ ์žˆ์–ด ๋””์Šคํฌ ์ž‘์—…์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค!
    • INSERT, UPDATE ๋ฐ DELETE์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์ฟผ๋ฆฌ๋Š” ๋””์Šคํฌ ์ž‘์—…์„ ๋ฐœ์ƒ์‹œํ‚ด -> ๋ฒ„ํผ ํ’€์ด ์žˆ๋‹ค๋ฉด ์ด๋ ‡๊ฒŒ ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„์„œ ์ฒ˜๋ฆฌํ•ด์„œ ๋žœ๋คํ•œ ๋””์Šคํฌ ์ž‘์—… ํšŸ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค!
    • => ๋‹ค๋ฅธ ๋ฒ„ํผ์— ํ• ๋‹นํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ฒ„ํผ ํ’€์— ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

innodb_buffer_pool_chunk_size

  • ๋ฒ„ํผํ’€ ์‚ฌ์ด์ฆˆ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์—ญํ• 
    • ๊ธฐ๋ณธ๊ฐ’ = 128M
  • ์ฝ”์–ด ์ˆ˜๊ฐ€ ์ ๋‹ค๋ฉด ์ด ๊ฐ’์„ ๋Š˜๋ ค์„œ ๋ฒ„ํผ ํ’€์˜ ํฌ๊ธฐ๋ฅผ ๋Š˜๋ ค์•ผ ํ•จ

 

innodb_buffer_pool_instances

  • ์ธ์Šคํ„ด์Šค ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๋ฉด ํŠธ๋žœ์žญ์…˜ ๊ฐ„ Lock ๊ฒฝํ•ฉ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ
    • MySQL์€ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ๊ตฌ์กฐ -> ์“ฐ๋ ˆ๋“œ ๊ฐ„ ๋ฒ„ํผ ํ’€ ์กฐ์ž‘์—์„œ exclusive lock ์ฒ˜๋ฆฌ ํ•„์š”
    • ๋ฒ„ํผ ํ’€ ์ ‘๊ทผ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋ฎคํ…์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋ฎคํ…์Šค์— ๋Œ€ํ•œ ๊ฒฝํ•ฉ ๋ฐœ์ƒ
    • => ์ธ์Šคํ„ด์Šค ์ˆ˜๋ฅผ ๋Š˜๋ฆด์ˆ˜๋ก ๋งŽ์€ ์ˆ˜์˜ ์“ฐ๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ๋ฒ„ํผ ํ’€์— ์ ‘๊ทผํ•˜๋”๋ผ๋„ Lock ๊ฒฝํ•ฉ์„ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค.
  • CPU ์ฝ”์–ด ์ˆ˜๊ฐ€ ๋งŽ์€ ์‹œ์Šคํ…œ์ผ์ˆ˜๋ก ์ธ์Šคํ„ด์Šค ์ˆ˜๋ฅผ ๋Š˜๋ฆด ์ˆ˜ ์žˆ๋‹ค.
    • ์ธ์Šคํ„ด์Šค ์ˆ˜ ๊ธฐ๋ณธ๊ฐ’ = 8

 

โญ๏ธ ๋ฒ„ํผ ํ’€ ํฌ๊ธฐ = innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances์˜ ๋ฐฐ์ˆ˜

innodb_buffer_pool_size๋ฅผ innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances์™€ ๊ฐ™์ง€ ์•Š์€ ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑํ•˜๋ฉด ๋ฒ„ํผ ํ’€ ํฌ๊ธฐ๋Š” ์ž๋™์œผ๋กœ innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances์˜ ๋ฐฐ์ˆ˜์™€ ๊ฐ™๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ๊ฐ’์œผ๋กœ ์กฐ์ •๋ฉ๋‹ˆ๋‹ค.

+ Recent posts