Bioyino - ๋ถ„์‚ฐ๋˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ธก์ •ํ•ญ๋ชฉ ์ˆ˜์ง‘๊ธฐ

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

Bioyino - ๋ถ„์‚ฐ๋˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ธก์ •ํ•ญ๋ชฉ ์ˆ˜์ง‘๊ธฐ

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

์ฃผ์žฅ 1. ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์ž์ธ Github๋Š” ํŒจ์น˜ ๋ฐ ์ˆ˜์ • ์‚ฌํ•ญ ๊ฒŒ์‹œ, ์šฐ๋ฆฌ์™€ (์šฐ๋ฆฌ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ) PR์„ ์ˆ˜๋ฝํ•˜๋Š” ๋“ฑ ์ง€์›์„ ์ค‘๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง€๋‚œ ๋ช‡ ๋‹ฌ ๋™์•ˆ(2018๋…„ 2์›”~XNUMX์›”๊ฒฝ) ํ™œ๋™์ด ์žฌ๊ฐœ๋˜์—ˆ์ง€๋งŒ ๊ทธ ์ „์—๋Š” ๊ฑฐ์˜ XNUMX๋…„ ๋™์•ˆ ์™„์ „ํžˆ ํ‰์˜จํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ฐœ๋ฐœ ์ค‘์ž…๋‹ˆ๋‹ค. ๋‚ด๋ถ€ Gihub ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž๊ฒŒ, ์ด๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๋„์ž…์— ์‹ฌ๊ฐํ•œ ์žฅ์• ๋ฌผ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์žฅ 2. ๊ณ„์‚ฐ์˜ ์ •ํ™•์„ฑ. Brubeck์€ ์ง‘๊ณ„๋ฅผ ์œ„ํ•ด ์ด 65536๊ฐœ์˜ ๊ฐ’์„ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ์ผ๋ถ€ ์ง€ํ‘œ์˜ ๊ฒฝ์šฐ ์ง‘๊ณ„ ๊ธฐ๊ฐ„(30์ดˆ) ๋™์•ˆ ํ›จ์”ฌ ๋” ๋งŽ์€ ๊ฐ’์ด ๋„์ฐฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ตœ๊ณ  1๊ฐœ). ์ด ์ƒ˜ํ”Œ๋ง ๊ฒฐ๊ณผ ์ตœ๋Œ€๊ฐ’๊ณผ ์ตœ์†Œ๊ฐ’์€ ์“ธ๋ชจ์—†์–ด ๋ณด์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Bioyino - ๋ถ„์‚ฐ๋˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ธก์ •ํ•ญ๋ชฉ ์ˆ˜์ง‘๊ธฐ
๊ทธ๋Œ€๋กœ

Bioyino - ๋ถ„์‚ฐ๋˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ธก์ •ํ•ญ๋ชฉ ์ˆ˜์ง‘๊ธฐ
์–ด๋• ์–ด์•ผ ํ–ˆ๋Š”๋ฐ?

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

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

์ฒซ์งธ, ์„œ๋ฒ„์— ๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ์‚ฌ๋ฌด์‹ค์— ์ •์‹ ๋ณ‘์ ์ธ ์ข€๋น„ ๋Œ€์žฌ์•™์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ๋‚ด๊ฒฐํ•จ์„ฑ์ž…๋‹ˆ๋‹ค. ๋‘˜์งธ, Linux ๋„คํŠธ์›Œํฌ ์Šคํƒ์„ ๊นŠ์ด ํŒŒ๊ณ ๋“ค์ง€ ์•Š๊ณ  ํ•„์š”ํ•œ ํฌ๊ธฐ๋กœ "ํญ"์„ ์กฐ์šฉํžˆ ํ™•์žฅํ•˜์ง€ ์•Š๊ณ ๋„ 4๋งŒ MPS ์ด์ƒ์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™•์žฅํ•  ์—ฌ์ง€๊ฐ€ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๊ฒฐํ•จ์„ฑ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. "์— ๋Œ€ํ•œ! ๊ฒฐํ•จ ํ—ˆ์šฉ! ๊ฐ„๋‹จํ•ด์š”. ํ•  ์ˆ˜ ์žˆ์–ด์š”.โ€๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์„œ๋ฒ„ 2๋Œ€๋ฅผ ์‹œ์ž‘ํ•˜์—ฌ ๊ฐ๊ฐ์— brubeck ์‚ฌ๋ณธ์„ ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ๋ฉ”ํŠธ๋ฆญ์ด ํฌํ•จ๋œ ํŠธ๋ž˜ํ”ฝ์„ ๋‘ ์„œ๋ฒ„ ๋ชจ๋‘์— ๋ณต์‚ฌํ•˜๊ณ  ์ด์— ๋Œ€ํ•ด ์ž‘์„ฑํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž‘์€ ์œ ํ‹ธ๋ฆฌํ‹ฐ. ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์œผ๋กœ ๋‚ด๊ฒฐํ•จ์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์ง€๋งŒ... ๋ณ„๋กœ ์ข‹์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ๋ชจ๋“  ๊ฒƒ์ด ํ›Œ๋ฅญํ•ด ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ๊ฐ brubeck์€ ์ž์ฒด ์ง‘๊ณ„ ๋ฒ„์ „์„ ์ˆ˜์ง‘ํ•˜๊ณ  30์ดˆ๋งˆ๋‹ค ํ•œ ๋ฒˆ์”ฉ Graphite์— ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๊ณ  ์ด์ „ ๊ฐ„๊ฒฉ์„ ๋ฎ์–ด์”๋‹ˆ๋‹ค(์ด ์ž‘์—…์€ Graphite ์ธก์—์„œ ์ˆ˜ํ–‰๋จ). ํ•œ ์„œ๋ฒ„๊ฐ€ ๊ฐ‘์ž๊ธฐ ์‹คํŒจํ•˜๋ฉด ํ•ญ์ƒ ์ง‘๊ณ„๋œ ๋ฐ์ดํ„ฐ์˜ ์ž์ฒด ๋ณต์‚ฌ๋ณธ์ด ์žˆ๋Š” ๋‘ ๋ฒˆ์งธ ์„œ๋ฒ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„๊ฐ€ ์‹คํŒจํ•˜๋ฉด ๊ทธ๋ž˜ํ”„์— "ํ†ฑ"์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์ด๋Š” brubeck์˜ 30์ดˆ ๊ฐ„๊ฒฉ์ด ๋™๊ธฐํ™”๋˜์ง€ ์•Š๊ณ  ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋Š” ์ˆœ๊ฐ„ ๊ทธ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฎ์–ด์“ฐ์—ฌ์ง€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์„œ๋ฒ„๊ฐ€ ์‹œ์ž‘๋˜๋ฉด ๋™์ผํ•œ ์ผ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ฝค ๊ฒฌ๋”œ๋งŒํ•˜์ง€๋งŒ ๋” ๋‚˜์€ ๊ฒƒ์„ ์›ํ•ฉ๋‹ˆ๋‹ค! ํ™•์žฅ์„ฑ ๋ฌธ์ œ๋„ ์‚ฌ๋ผ์ง€์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ง€ํ‘œ๋Š” ์—ฌ์ „ํžˆ ๋‹จ์ผ ์„œ๋ฒ„๋กœ "์ด๋™"ํ•˜๋ฏ€๋กœ ๋„คํŠธ์›Œํฌ ์ˆ˜์ค€์— ๋”ฐ๋ผ ๋™์ผํ•œ 2๋งŒ~4๋งŒ MPS๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ์— ๋Œ€ํ•ด ์กฐ๊ธˆ ์ƒ๊ฐํ•˜๊ณ  ๋™์‹œ์— ์‚ฝ์œผ๋กœ ๋ˆˆ์„ ํŒŒ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ถ„๋ช…ํ•œ ์•„์ด๋””์–ด๊ฐ€ ๋– ์˜ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ„์‚ฐ ๋ชจ๋“œ์—์„œ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋Š” ํ†ต๊ณ„๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์‹œ๊ฐ„๊ณผ ๋ฉ”ํŠธ๋ฆญ์˜ ๋…ธ๋“œ ๊ฐ„ ๋™๊ธฐํ™”๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. โ€œ๋ฌผ๋ก  ๊ทธ๋Ÿฌํ•œ ์†”๋ฃจ์…˜์€ ์ด๋ฏธ ์กด์žฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.โ€๋ผ๊ณ  ๋งํ•˜๊ณ  Google์„ ๋ฐฉ๋ฌธํ–ˆ์Šต๋‹ˆ๋‹คโ€ฆ ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค์€ ์•„๋ฌด๊ฒƒ๋„ ๋ฐœ๊ฒฌํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ํ†ต๊ณ„์— ๋Œ€ํ•œ ๋ฌธ์„œ๋ฅผ ์‚ดํŽด๋ณธ ํ›„(https://github.com/etsy/statsd/wiki#server-implementations 11.12.2017๋…„ XNUMX์›” XNUMX์ผ ํ˜„์žฌ) ์ „ํ˜€ ๋ฐœ๊ฒฌ๋œ ๋ฐ”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ์ด๋Ÿฌํ•œ ์†”๋ฃจ์…˜์˜ ๊ฐœ๋ฐœ์ž๋‚˜ ์‚ฌ์šฉ์ž ๋ชจ๋‘ ์•„์ง๊นŒ์ง€ ๋งŽ์€ ์ธก์ • ํ•ญ๋ชฉ์„ ์ ‘ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ถ„๋ช…ํžˆ ๋ญ”๊ฐ€๋ฅผ ์ƒ๊ฐํ•ด ๋‚ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ์šฐ๋ฆฌ๋Š” ์žฌ๋ฏธ๋ฅผ ์œ„ํ•ด ํ•ด์ปคํ†ค(ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์€ ํ•ด์ปคํ†ค ์‹œ์ž‘ ์ „์— ์Šคํฌ๋ฆฝํŠธ์— ์˜ํ•ด ์ƒ์„ฑ๋จ)์—์„œ ์ž‘์„ฑ๋œ "์žฅ๋‚œ๊ฐ" ํ†ต๊ณ„์ธ bioyino์— ๋Œ€ํ•ด ๊ธฐ์–ตํ•˜๊ณ  ์šฐ๋ฆฌ ์ž์‹ ์˜ ํ†ต๊ณ„๊ฐ€ ์‹œ๊ธ‰ํžˆ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ๋ฌด์—‡์„ ์œ„ํ•ด?

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

๋ฌด์—‡์„ ์“ธ๊นŒ? ๋ฌผ๋ก  ๋Ÿฌ์ŠคํŠธ์—์„œ์š”. ์™œ?

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

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

์‹œ๊ฐ„์ด ์ง€๋‚ฌ๋‹ค...

๋งˆ์นจ๋‚ด ๋ช‡ ๋ฒˆ์˜ ์‹œ๋„ ์‹คํŒจ ๋์— ์ฒซ ๋ฒˆ์งธ ์ž‘์—… ๋ฒ„์ „์ด ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์Šจ ์ผ์ด์—์š”? ์ด๊ฒƒ์ด ์ผ์–ด๋‚œ ์ผ์ž…๋‹ˆ๋‹ค.

Bioyino - ๋ถ„์‚ฐ๋˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ธก์ •ํ•ญ๋ชฉ ์ˆ˜์ง‘๊ธฐ

๊ฐ ๋…ธ๋“œ๋Š” ์ž์ฒด ์ธก์ •ํ•ญ๋ชฉ ์„ธํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ ๋ˆ„์ ํ•˜๋ฉฐ, ์ตœ์ข… ์ง‘๊ณ„์— ์ „์ฒด ์„ธํŠธ๊ฐ€ ํ•„์š”ํ•œ ์œ ํ˜•์— ๋Œ€ํ•ด์„œ๋Š” ์ธก์ •ํ•ญ๋ชฉ์„ ์ง‘๊ณ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋…ธ๋“œ๋Š” ์ผ์ข…์˜ ๋ถ„์‚ฐ ์ž ๊ธˆ ํ”„๋กœํ† ์ฝœ์— ์˜ํ•ด ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด Great One์— ๋ฉ”ํŠธ๋ฆญ์„ ๋ณด๋‚ผ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ์œ ์ผํ•œ ๋…ธ๋“œ(์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ์šธ์—ˆ์Šต๋‹ˆ๋‹ค)๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ํ˜„์žฌ ํ•ด๊ฒฐ ์ค‘์ž…๋‹ˆ๋‹ค. ์˜์‚ฌํ•˜์ง€๋งŒ ์•ž์œผ๋กœ ์ €์ž์˜ ์•ผ๋ง์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค. ์ž์‹ ์˜ ๊ตฌํ˜„ ๋ฌผ๋ก  ๊ฐ€์žฅ ๊ฐ€์น˜ ์žˆ๋Š” ๋…ธ๋“œ๊ฐ€ ํ•ฉ์˜ ๋ฆฌ๋” ๋…ธ๋“œ๊ฐ€ ๋˜๋Š” Raft์ž…๋‹ˆ๋‹ค. ํ•ฉ์˜ ์™ธ์—๋„ ๋…ธ๋“œ๋Š” ๋งค์šฐ ์ž์ฃผ(๊ธฐ๋ณธ์ ์œผ๋กœ ์ดˆ๋‹น ํ•œ ๋ฒˆ) ํ•ด๋‹น ์ดˆ์— ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ์‚ฌ์ „ ์ง‘๊ณ„๋œ ์ง€ํ‘œ์˜ ์ผ๋ถ€๋ฅผ ์ด์›ƒ์—๊ฒŒ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ํ™•์žฅ์„ฑ๊ณผ ๋‚ด๊ฒฐํ•จ์„ฑ์€ ์œ ์ง€๋˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋…ธ๋“œ๋Š” ์—ฌ์ „ํžˆ ์ „์ฒด ๋ฉ”ํŠธ๋ฆญ ์„ธํŠธ๋ฅผ ๋ณด์œ ํ•˜์ง€๋งŒ ๋ฉ”ํŠธ๋ฆญ์€ ์ด๋ฏธ TCP๋ฅผ ํ†ตํ•ด ์ง‘๊ณ„๋˜์–ด ๋ฐ”์ด๋„ˆ๋ฆฌ ํ”„๋กœํ† ์ฝœ๋กœ ์ธ์ฝ”๋”ฉ๋˜์–ด ์ „์†ก๋˜๋ฏ€๋กœ UDP์— ๋น„ํ•ด ๋ณต์ œ ๋น„์šฉ์ด ํฌ๊ฒŒ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค. ์ƒ๋‹นํžˆ ๋งŽ์€ ์ˆ˜์˜ ์ˆ˜์‹  ๋ฉ”ํŠธ๋ฆญ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ถ•์ ์—๋Š” ๋งค์šฐ ์ ์€ ๋ฉ”๋ชจ๋ฆฌ์™€ CPU๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์••์ถ•๋ฅ ์ด ๋†’์€ ์ธก์ • ํ•ญ๋ชฉ์˜ ๊ฒฝ์šฐ ์ด๋Š” ์ˆ˜์‹ญ ๋ฉ”๊ฐ€๋ฐ”์ดํŠธ์— ๋ถˆ๊ณผํ•œ ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ๋ณด๋„ˆ์Šค๋กœ Burbeck์˜ ๊ฒฝ์šฐ์ฒ˜๋Ÿผ Graphite์—์„œ๋Š” ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ๋‹ค์‹œ ์“ฐ๊ธฐ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

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

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

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

์ฃผ์˜

๊ธฐ๋ณธ ์„ค์ •์—์„œ๋Š” ๋ฒ„ํผ ํฌ๊ธฐ๊ฐ€ ์ƒ๋‹นํžˆ ํฌ๊ฒŒ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ‘์ž๊ธฐ ์„œ๋ฒ„๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•ด ๋ณด๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ๊ฒฝ์šฐ ์†Œ์ˆ˜์˜ ๋ฉ”ํŠธ๋ฆญ์„ ๋ณด๋‚ธ ํ›„ ํ•ด๋‹น ๋ฉ”ํŠธ๋ฆญ์ด Graphite์— ๋„์ฐฉํ•˜์ง€ ์•Š๊ณ  ๋„คํŠธ์›Œํฌ ์ŠคํŠธ๋ฆผ ๋ฒ„ํผ์— ๋‚จ์•„ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ ‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ ์€ ์ˆ˜์˜ ๋ฉ”ํŠธ๋ฆญ์œผ๋กœ ์ž‘์—…ํ•˜๋ ค๋ฉด ๊ตฌ์„ฑ์—์„œ bufsize ๋ฐ task-queue-size๋ฅผ ๋” ์ž‘์€ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์ฐจํŠธ ์• ํ˜ธ๊ฐ€๋ฅผ ์œ„ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ฐจํŠธ์ž…๋‹ˆ๋‹ค.

๊ฐ ์„œ๋ฒ„์˜ ์ˆ˜์‹  ๋ฉ”ํŠธ๋ฆญ ์ˆ˜์— ๋Œ€ํ•œ ํ†ต๊ณ„: 2๋งŒ MPS ์ด์ƒ.

Bioyino - ๋ถ„์‚ฐ๋˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ธก์ •ํ•ญ๋ชฉ ์ˆ˜์ง‘๊ธฐ

๋…ธ๋“œ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ์ˆ˜์‹  ์ธก์ •ํ•ญ๋ชฉ์„ ์žฌ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

Bioyino - ๋ถ„์‚ฐ๋˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ธก์ •ํ•ญ๋ชฉ ์ˆ˜์ง‘๊ธฐ

๋‚˜๊ฐ€๋Š” ์ธก์ •ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ํ†ต๊ณ„: ํ•ญ์ƒ ํ•˜๋‚˜์˜ ๋…ธ๋“œ(๋ ˆ์ด๋“œ ๋ณด์Šค)๋งŒ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

Bioyino - ๋ถ„์‚ฐ๋˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ธก์ •ํ•ญ๋ชฉ ์ˆ˜์ง‘๊ธฐ

๋‹ค์–‘ํ•œ ์‹œ์Šคํ…œ ๋ชจ๋“ˆ์˜ ์˜ค๋ฅ˜๋ฅผ ๊ณ ๋ คํ•œ ๊ฐ ๋…ธ๋“œ์˜ ์ž‘๋™ ํ†ต๊ณ„์ž…๋‹ˆ๋‹ค.

Bioyino - ๋ถ„์‚ฐ๋˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ธก์ •ํ•ญ๋ชฉ ์ˆ˜์ง‘๊ธฐ

์ˆ˜์‹  ์ธก์ •ํ•ญ๋ชฉ์˜ ์„ธ๋ถ€์ •๋ณด(์ธก์ •ํ•ญ๋ชฉ ์ด๋ฆ„์€ ์ˆจ๊ฒจ์ง)

Bioyino - ๋ถ„์‚ฐ๋˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ธก์ •ํ•ญ๋ชฉ ์ˆ˜์ง‘๊ธฐ

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

๋ฌผ๋ก  ๋ˆ„๊ตฌ๋‚˜ ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์— ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. PR ์ž‘์„ฑ, ์ด์Šˆ ์ž‘์„ฑ, ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ๋Œ€์‘, ๊ฐœ์„  ๋“ฑ์„ ํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ๋งํ•˜๋ฉด ๊ทธ๊ฒŒ ์ „๋ถ€์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ์ฝ”๋ผ๋ฆฌ๋ฅผ ์‚ฌ์„ธ์š”!



์ถœ์ฒ˜ : habr.com

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