Cloudflare๋ Rust๋ก ์์ฑ๋ Pingora ํ๋ก์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ค๊ณ ๋ฐํํ์ต๋๋ค. ์๋ก์ด ํ๋ก์๋ NGINX ์๋ฒ ๊ธฐ๋ฐ ๊ตฌ์ฑ์ Lua ์คํฌ๋ฆฝํธ๋ก ๋์ฒดํ์ผ๋ฉฐ ํ๋ฃจ์ 70์กฐ ๊ฑด์ด ๋๋ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค. ํน์ ํ๋ก์๋ก ์ ํํ๋ฉด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์์ ํ ์์ ์ผ๋ก ์ธํด ์๋ก์ด ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ๋ณด์์ ๊ฐํํ ์ ์์ ๋ฟ๋ง ์๋๋ผ ์ฑ๋ฅ ๋ฐ ๋ฆฌ์์ค ์ ์ฝ์ด ํฌ๊ฒ ํฅ์๋์์ต๋๋ค. Pingora ๊ธฐ๋ฐ ์๋ฃจ์ ์ ์ฌ์ฉํ ํ์๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋์ผํ ์์ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋ฉด์ CPU ๋ฆฌ์์ค๋ 67%, ๋ฉ๋ชจ๋ฆฌ๋ XNUMX% ์ ๊ฒ ์ฌ์ฉํฉ๋๋ค.
์ค๋ซ๋์ NGINX ๋ฐ Lua ์คํฌ๋ฆฝํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ์์ ์ต์ข ์๋ฒ ๊ฐ์ ํธ๋ํฝ์ ํ๋ก์ํ๋ ์์คํ ์ Cloudflare์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ์ง๋ง ๋คํธ์ํฌ๊ฐ ์ฑ์ฅํ๊ณ ๋ณต์ก์ฑ์ด ์ฆ๊ฐํจ์ ๋ฐ๋ผ ๋ฒ์ฉ ์๋ฃจ์ ์ ์ฑ๋ฅ ์ธก๋ฉด์์ ์ถฉ๋ถํ์ง ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ณ ๊ฐ์ ์ํ ์๋ก์ด ๊ธฐํ์ ํ์ฅ์ฑ๊ณผ ๊ตฌํ์ ํ๊ณ๋ก ์ธํด. ํนํ ๋จ์ํ ๊ฒ์ดํธ์จ์ด์ ๋ก๋๋ฐธ๋ฐ์ ์ด์์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋๋ฐ ์ด๋ ค์์ด ์์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์๋ฒ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ ์์ฒญ์ ๋ค๋ฅธ ์๋ฒ๋ก ๋ฆฌ๋๋ ์ ํ์ฌ ๋ค๋ฅธ HTTP ํค๋ ์งํฉ์ ์ ๊ณตํด์ผ ํฉ๋๋ค.
์์ฒญ์ ๋ณ๋์ ์์ ์ ํ๋ก์ธ์ค(์์ ์)๋ก ๋ถํ ํ๋ ์ํคํ ์ฒ ๋์ Pingora๋ ๋ค์ค ์ค๋ ๋ ๋ชจ๋ธ์ ์ฌ์ฉํฉ๋๋ค. ์ด ๋ชจ๋ธ์ Cloudflare ์ฌ์ฉ ์๋๋ฆฌ์ค(ํต๊ณ ๋ณํ๊ฐ ํฐ ์ฌ๋ฌ ์ฌ์ดํธ์ ํธ๋ํฝ ์ง์ค)์์ ๋ฆฌ์์ค๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ๋ถ๋ฐฐํ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. CPU ์ฝ์ด. ํนํ nginx์์ ๋ถ๊ท ํํ ์์ฒญ์ ํ๋ก์ธ์ค์ ๋ฐ์ธ๋ฉํ๋ฉด CPU ์ฝ์ด์ ๋ถ๊ท ํํ ๋ถํ๊ฐ ๋ฐ์ํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ ๋ฆฌ์์ค๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ์์ฒญ๊ณผ I/O ์ฐจ๋จ์ผ๋ก ์ธํด ๋ค๋ฅธ ์์ฒญ์ ์ฒ๋ฆฌ ์๋๊ฐ ๋๋ ค์ก์ต๋๋ค. ๋ํ ์ฐ๊ฒฐ ํ์ ํธ๋ค๋ฌ ํ๋ก์ธ์ค์ ๋ฐ์ธ๋ฉํ๋ฉด ๋ค๋ฅธ ํธ๋ค๋ฌ ํ๋ก์ธ์ค์์ ์ด๋ฏธ ์ค์ ๋ ์ฐ๊ฒฐ์ ์ฌ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ํธ๋ค๋ฌ ํ๋ก์ธ์ค ์๊ฐ ๋ง์ ๋ ํจ์จ์ฑ์ด ๋จ์ด์ง๋๋ค.
nginx:
ํ๊ณ ๋ผ:
Pingora์ ๋์ ์ผ๋ก ์๋ก์ด ์ฐ๊ฒฐ ์ค์ ์์ ์๋ฅผ 160๋ฐฐ ์ค์ด๊ณ ์ฌ์ฌ์ฉ ์์ฒญ์ ๋น์จ์ 87.1%์์ 99.92%๋ก ๋์ผ ์ ์์์ต๋๋ค. ์ฌ์ฐ๊ฒฐ์ ์ค์ด๊ณ CPU ์ฝ์ด๋ฅผ ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ ์ธ์๋ ์ ํ๋ก์์ ์ฑ๋ฅ์ ์ฃผ๋ก nginx์ ํจ๊ป ์ฌ์ฉ๋๋ ๋๋ฆฐ Lua ํธ๋ค๋ฌ๋ฅผ ์ ๊ฑฐํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
Rust ์ธ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์์ ๋๊ตฌ์ ๊ฐ์ฉ์ฑ๊ณผ ๊ฒฐํฉ๋ ๊ณ ์ฑ๋ฅ์ ํ์ฉํ๊ธฐ ์ํด ์ ํ๋์์ต๋๋ค. Cloudflare ์์ง๋์ด์ ๋์ ์๊ฒฉ๊ณผ C ์ธ์ด๋ก ์์ฑ๋ ์ฝ๋ ๊ฒํ ์๋ ๋ถ๊ตฌํ๊ณ ๋ฉ๋ชจ๋ฆฌ ๋ฌธ์ (์: HTML ํ์์ ์ทจ์ฝ์ฑ)๋ก ์ด์ด์ง๋ ์ค๋ฅ๋ฅผ ํผํ ์ ์์์ต๋๋ค. ์๋ก์ด ์ฝ๋์ ๊ดํด์๋ Pingora์ ํฌ๋์ ๋ถ์ ์ฌ๋ก์ ๋ํด ์ด์ผ๊ธฐํ๋๋ฐ, ์ด๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฌธ์ ๊ฐ ์๋๋ผ Linux ์ปค๋์ ๋ฒ๊ทธ ๋ฐ ํ๋์จ์ด ์ค๋ฅ๋ก ์ธํด ๋ฐ์ํ ๊ฒ์ผ๋ก ๋ฐํ์ก์ต๋๋ค.
๋ํ Linus Torvalds๋ ์์ฆ ์ด๋ฆฌ๋ Open-Source Summit Europe ์ปจํผ๋ฐ์ค์์ Linux ์ปค๋์ Rust ์ธ์ด ์ง์์ ํฌํจํ๋ ๊ฒ์ ๋ํด ๋
ผํํ์ต๋๋ค. 6.0 ์ปค๋์๋ Rust ์ธ์ด๋ก ์ฅ์น ๋๋ผ์ด๋ฒ๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํ ํจ์น๊ฐ ํฌํจ๋์ด ์์ง ์์ง๋ง Linus์ ๋ฐ๋ฅด๋ฉด 6.1 ์ปค๋์ ์ฑํ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ผ๋ฉฐ ํตํฉ์ ์ถ์งํ์ง ์์ ๊ฒ์
๋๋ค. Rust์ ๋ํ ์ง์์ ์ถ๊ฐํ๋ ๋๊ธฐ๋ก Linus๋ ๋ณด์์ ๋ํ ๊ธ์ ์ ์ธ ์ํฅ ์ธ์๋ ์๋ก์ด ์ฐธ๊ฐ์์ ํต์ฌ ์์
์ ๋ํ ๊ด์ฌ์ ๋์ผ ์ ์๋ ๊ธฐํ๋ฅผ ํธ์ถํฉ๋๋ค.
์ถ์ฒ : opennet.ru