๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Kafka

๋กœ๊ทธ ์ปดํŒฉ์…˜

by Soono991 2023. 5. 7.
๐Ÿ’ก ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋กœ๊ทธ ์ปดํŒฉ์…˜์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ปดํŒฉ์…˜์€ ๋กœ๊ทธ ์„ธ๊ทธ๋จผํŠธ ๊ด€๋ฆฌ ์ •์ฑ… ์ค‘ ํ•˜๋‚˜๋กœ, ๋กœ๊ทธ๋ฅผ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ์ปดํŒฉ์…˜ํ•˜์—ฌ ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋กœ๊ทธ ์ปดํŒฉ์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ๋กœ์ปฌ ๋””์Šคํฌ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์‹คํ–‰๋˜๋Š”๋ฐ, ํ˜„์žฌ ํ™œ์„ฑํ™”(active)๋œ ์„ธ๊ทธ๋จผํŠธ๋Š” ์ œ์™ธํ•˜๊ณ  ๋‚˜๋จธ์ง€ ์„ธ๊ทธ๋จผํŠธ๋“ค์„ ๋Œ€์ƒ์œผ๋กœ ์ปดํŒฉ์…˜์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

 

์นดํ”„์นด์—์„œ๋Š” ๋‹จ์ˆœํ•˜๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ์ปดํŒฉ์…˜ํ•˜์—ฌ ๋ณด๊ด€ํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๋ฉ”์‹œ์ง€์˜ ํ‚ค๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๋งˆ์ง€๋ง‰์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋ณด๊ด€ํ•˜๋Š” ์ข€ ๋” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์ปดํŒฉ์…˜ํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋Ÿฐ ์ปดํŒฉ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์ปจ์Šˆ๋จธ๊ฐ€ ๋ฐ”๋กœ __consumer_offsets์ž…๋‹ˆ๋‹ค.

 

 

 

์œ„ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด k1์— ๋Œ€ํ•ด k1, v1, v3, v4 ๊ฐ€ ์ €์žฅ๋˜์—ˆ๋‹ค๊ณ  ํ–ˆ์„ ๊ฒฝ์šฐ ๋งˆ์ง€๋ง‰ k1์— ๋Œ€ํ•œ ๊ฐ’์€ v4์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ปดํŒฉ์…˜ ํ›„์—๋Š” k1์— ๋Œ€ํ•œ ๊ฐ’์œผ๋กœ v4 ๋งŒ ์ €์žฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

๐Ÿ’ก ๋กœ๊ทธ ์ปดํŒฉ์…˜์„ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด ์ปดํŒฉ์…˜ ๋œ ํ† ํ”ฝ์— ํ‚ค๊ฐ€ ์žˆ๋Š” ๋ ˆ์ฝ”๋“œ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

 

Log Cleaner

๋กœ๊ทธ ์ปดํŒฉ์…˜์€ Log Cleaner๋ผ๋Š” ๊ฐ์ฒด๊ฐ€ ๋กœ๊ทธ ์ปดํŒฉ์…˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

๋กœ๊ทธ ์ปดํŒฉ์…˜์ด ์ ์šฉ๋œ ์˜์—ญ์„ clean area, ์•„์ง ์ ์šฉ๋˜์ง€ ์•Š์€ ์˜์—ญ์„ dirty area๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

๋กœ๊ทธ ์ปดํŒฉ์…˜ ํŒŒ๋ผ๋ฏธํ„ฐ

config ์„ค๋ช…
log.cleaner.min.cleanable.auto Log Cleaner๊ฐ€ ์ปดํŒฉ์…˜์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํŒŒํ‹ฐ์…˜ ๋‚ด์˜ dirty ๋ฐ์ดํ„ฐ ๋น„์œจ
๊ธฐ๋ณธ๊ฐ’์€ 0.5์ด๋ฉฐ ๊ฐ’์ด ์ž‘์„์ˆ˜๋ก Log Cleaner๊ฐ€ ๋” ๋นˆ๋ฒˆํžˆ ์ปดํŒฉ์…˜์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
ํ† ํ”ฝ ๊ตฌ์„ฑ์€ min.cleanable.dirty.ratio ์ž…๋‹ˆ๋‹ค.  
log.cleaner.min.compaction.lag.ms ๋ฉ”์‹œ์ง€๊ฐ€ ์ƒ์„ฑ ๋œ ํ›„ ์ตœ์†Œํ•œ log.cleaner.min.compaction.lag.ms๊ฐ€ ์ง€๋‚˜์•ผ ์ปดํŒฉ์…˜ ๋Œ€์ƒ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’์€ 0์ด๋ฉฐ ๊ฐ’์ด ํด์ˆ˜๋ก ์ตœ๊ทผ ๋ฐ์ดํ„ฐ๋ณด๋‹ค๋Š” ์˜ค๋ž˜๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
ํ† ํ”ฝ ๊ตฌ์„ฑ์€ min.compaction.lag.ms์ž…๋‹ˆ๋‹ค.
log.cleaner.max.compaction.lga.ms Dirty ratio ์ดํ•˜์—ฌ๋„ ๋ฉ”์‹œ์ง€ ์ƒ์„ฑ ํ›„ log.cleaner.max.compaction.ms ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์ปดํŒฉ์…˜ ๋Œ€์ƒ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’์€ ๋ฌดํ•œ๋Œ€์— ๊ฐ€๊นŒ์šด ํฐ ๊ฐ’์ด๋ฉฐ ํ† ํ”ฝ ๊ตฌ์„ฑ์€ max.compaction.lag.ms์ž…๋‹ˆ๋‹ค.

 

 

๋กœ๊ทธ ์ปดํŒฉ์…˜ ์žฅ์ 

์ด๋Ÿฌํ•œ ๋กœ๊ทธ ์ปดํŒฉ์…˜์˜ ์žฅ์ ์œผ๋กœ๋Š” ๋น ๋ฅธ ์žฅ์•  ๋ณต๊ตฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์žฅ์•  ๋ณต๊ตฌ ์‹œ ์ „์ฒด ๋กœ๊ทธ๋ฅผ ๋ณต๊ตฌํ•˜์ง€ ์•Š๊ณ , ๋ฉ”์‹œ์ง€์˜ ํ‚ค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ตœ์‹ ์˜ ์ƒํƒœ๋งŒ ๋ณต๊ตฌํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ „์ฒด ๋กœ๊ทธ๋ฅผ ๋ณต๊ตฌํ•  ๋•Œ๋ณด๋‹ค ๋ณต๊ตฌ ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๋กœ๊ทธ ์ปดํŒฉ์…˜ ๋‹จ์ 

๋น ๋ฅธ ์žฌ์ฒ˜๋ฆฌ๋ผ๊ณ  ํ•ด์„œ ๋ชจ๋“  ํ† ํ”ฝ์— ๋กœ๊ทธ ์ปดํŒฉ์…˜์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ‚ค๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ตœ์ข…๊ฐ’๋งŒ ํ•„์š”ํ•œ ์›Œํฌ๋กœ๋“œ์— ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋กœ๊ทธ ์ปดํŒฉ์…˜ ์ž‘์—…์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๋ธŒ๋กœ์ปค์˜ ๊ณผ๋„ํ•œ ์ž…์ถœ๋ ฅ ๋ถ€ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์œ ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

 

์ฐธ๊ณ  ์ž๋ฃŒ

 

๋Œ“๊ธ€