์๋ฒ๋ฅผ ์๋ฌด๋ฆฌ ๋๋ ค๋ ํธ๋ํฝ ๋ณ๋ชฉ์ด ํด๊ฒฐ๋์ง ์๋ ์ง์ง ์ด์
๊ฐ์๊ธฐ ์๋น์ค์ ์์ฒญ๋ ํธ๋ํฝ์ด ๋ชฐ๋ ค์ ์๋ฒ๊ฐ ๋ป์ด๋ฒ๋ฆฌ๋ ํ์. ์ธํ๋ผ ๋ค๋ฃจ๋ ๋ถ๋ค์ด๋ผ๋ฉด ์ ๋ง ์๋ค๊ฐ๋ ๋ฒ๋ก ์ผ์ด๋ ์ ๋ชฝ์ด์ฃ . ๋ณดํต ์ด๋ฐ ์ํฉ์ด ์ค๋ฉด ๊ฐ์ฅ ๋จผ์ ํ๋ ์กฐ์น๊ฐ ์คํ ์ค์ผ์ผ๋ง(Auto-scaling)์ผ๋ก ์๋ฒ ๋์๋ฅผ ๋ฌด์ํ๊ฒ ๋๋ฆฌ๋ ๊ฒ๋๋ค.
๊ทธ๋ฐ๋ฐ ๊ฐ๋ ์ด๋ฐ ๋ต๋ตํ ๊ตฌ๊ฐ์ ๋ถ๋ชํ๋๋ค.
"์ปดํจํ ์์์ ์๋ฌด๋ฆฌ ์์๋ถ์ด๋ ์๋ต ์๋(Latency)๊ฐ ์ ํ ๊ฐ์ ๋์ง ์๋ค?"
์ ๊ทธ๋ด๊น์? CPU๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํด์๊ฐ ์๋๋๋ค. ์๋ฒ์ ๋คํธ์ํฌ ์คํ ์์ฒด๊ฐ ํจํท์ ์ฒ๋ฆฌํ๋ค๊ฐ ์ง์ณ๋ฒ๋ ธ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ฌธ์ ๋ ๋์์๋ '์ปจํ ์คํธ ์ค์์นญ'
์ฐ๋ฆฌ๊ฐ ํํ ์ฐ๋ ํ๋ก์๋ ๋ฐฉํ๋ฒฝ ํด๋ค์ ๋๋ถ๋ถ '์ ์ ์คํ์ด์ค(User Space)'์์ ๋์ํฉ๋๋ค. ์ธ๋ถ์์ ๋ฐ์ดํฐ ํจํท์ด ํ๋ ๋ค์ด์ฌ ๋๋ง๋ค ๋ด๋ถ์์๋ ์ด๋ฐ ๋ณต์กํ ๊ณผ์ ์ด ์ผ์ด๋ฉ๋๋ค.
ํจํท ๋์ฐฉ
์ปค๋ ์คํ์ด์ค์์ ์ ์ ์คํ์ด์ค๋ก ๋ฐ์ดํฐ ๋ณต์ฌ
๋ณด์ ๋ฐ ๋ผ์ฐํ ๋ก์ง ์ฒ๋ฆฌ
๋ค์ ์ปค๋ ์คํ์ด์ค๋ก ๋ฐ์ดํฐ ์ ๋ฌ
ํธ๋ํฝ์ด ์ด๋น ์๋ง ๊ฑด ๋จ์๋ก ์น์์ผ๋ฉด ์ด ์ปจํ ์คํธ ์ค์์นญ(Context Switching) ๋น์ฉ ์์ฒด๊ฐ ๋๋ฉ์ด์ฒ๋ผ ๋ถ์ด๋ฉ๋๋ค. ๊ฒฐ๊ตญ ์์คํ ์ ์ฒด๋ฅผ ๋ง๋น์ํค๋ ์ฃผ๋ฒ์ด ๋๋ ๊ฑฐ์ฃ .
์ด์ ๋ ์ปค๋ ๋จ์์ ์ง์ ์ณ๋ด์ผ ํ ๋: eBPF
์ด ํ๊ณ๋ฅผ ๋ํํ๋ ค๋ฉด ํจํท์ด ์ ์ ์คํ์ด์ค๋ก ์ฌ๋ผ์ค๊ธฐ๋ ์ ์, ์์ OS ์ปค๋์ ๊ฐ์ฅ ๋ฎ์ ๋จ์์ ๋ถํ์ํ ํธ๋ํฝ์ ๋๋์ํค๊ฑฐ๋ ๋ผ์ฐํ ํด๋ฒ๋ ค์ผ ํฉ๋๋ค. ์ต๊ทผ ๊ธ๋ก๋ฒ ํ ํฌ ๊ธฐ์ ๋ค์ด ์๋คํฌ์ด ์ธํ๋ผ์ ๋์ ํ๊ณ ์๋ eBPF(Extended Berkeley Packet Filter) ๊ธฐ์ ์ด ๋ฐ๋ก ๊ทธ ์ญํ ์ ํฉ๋๋ค.
eBPF๋ฅผ ํ์ฉํ๋ฉด ๋ฌด๊ฒ๊ณ ๋๋ฆฐ ์ฌ์ด๋์นด ํ๋ก์ ๋์ , ๋คํธ์ํฌ ์ธํฐํ์ด์ค ์นด๋(NIC) ์์ค์์ ์ค์๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํต์ ํ ์ ์์ต๋๋ค. ์ฑ๋ฅ ์ฐจ์ด๋ ๊ตณ์ด ๋งํ ํ์๋ ์์ด ์๋์ ์ ๋๋ค.
๋จ์ํ ๊ฐ๋ ์ ๋์ด์ ์ค์ ํ๋ก๋์ ํ๊ฒฝ์์ ์ด๋ป๊ฒ eBPF๋ฅผ ๊ตฌํํ๊ณ ๋ ์ดํด์๋ฅผ 0.1ms ๋จ์๋ก ์ต์ ํํ๋์ง ๊ถ๊ธํ์๋ค๋ฉด, ์ต๊ทผ์ ์ฝ์๋ ์๋ ๊ฐ์ด๋๋ฅผ ๊ผญ ํ๋ฒ ์ฐธ๊ณ ํด ๋ณด์๊ธธ ๊ถํฉ๋๋ค.
๐ ์ปค๋ ๋ ๋ฒจ์ ์ค์๊ฐ ๋ถ์ฐ ์์คํ ํ์ฅ ์ํคํ ์ฒ ๊ฐ์ด๋ (C์ธ์ด XDP ํํน ์ฝ๋ ํฌํจ)
๋ฌด์กฐ๊ฑด ์๋ฒ๋ง ๋๋ฆฌ๋ ์๋๋ ์ง๋ฌ์ต๋๋ค. ์ด์ ๋ ๋คํธ์ํฌ์ ๊ฐ์ฅ ๊น์ ๊ณณ, ์ปค๋์ ํจ์จ์ฑ์ ์์ฌํ๊ณ ์ต์ ํํด์ผ ํ ํ์ด๋ฐ์ ๋๋ค.

















