F-Stack 1.13์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


F-Stack 1.13์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ…์„ผํŠธ๊ฐ€ ์ƒˆ ๋ฒ„์ „์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. F-์Šคํƒ 1.13, DPDK ๋ฐ FreeBSD TCP/IP ์Šคํƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ฃผ์š” ํ”Œ๋žซํผ์€ Linux์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” BSD ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

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

ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ช…์‹œ๋œ ๊ธฐ๋Šฅ ์ค‘:

  • ๋„คํŠธ์›Œํฌ ์นด๋“œ์˜ ์ „์ฒด ๋กœ๋“œ: 10๋งŒ ๊ฐœ์˜ ํ™œ์„ฑ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ, 5๋งŒ RPS ๋ฐ 1๋งŒ CPS ๋‹ฌ์„ฑ
  • FreeBSD 11์—์„œ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ์Šคํƒ์„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜์—ฌ ํ•„์ˆ˜์ ์ด์ง€ ์•Š์€ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ฑฐํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค.
  • Nginx์™€ Redis๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋„ F-Stack์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค์ค‘ ํ”„๋กœ์„ธ์Šค ์•„ํ‚คํ…์ฒ˜๋กœ ์ธํ•œ ํ™•์žฅ ์šฉ์ด์„ฑ
  • ๋งˆ์ดํฌ๋กœํ”Œ๋กœ์šฐ์— ๋Œ€ํ•œ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ F-Stack์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์žกํ•œ ๋น„๋™๊ธฐ ๋กœ์ง์„ โ€‹โ€‹๊ตฌํ˜„ํ•˜์ง€ ์•Š๊ณ ๋„ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ‘œ์ค€ epoll/kqueue API ์ง€์›

์ƒˆ ๋ฒ„์ „์—์„œ:

  • ์ธํ„ฐํŽ˜์ด์Šค ff_dup, ff_dup2, ff_ioctl_freebsd, ff_getsockopt_freebsd, ff_setsockopt_freebsd๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋“ค์–ด์˜ค๋Š” ํŒจํ‚ท์ด ์—†์„ ๋•Œ CPU ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ด๊ธฐ ์œ„ํ•ด "idle_sleep" ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • arm64 ์ง€์› ์ถ”๊ฐ€
  • Docker ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • VLAN ์ง€์› ์ถ”๊ฐ€
  • F-Stack์— ๋Œ€ํ•œ nginx ๊ตฌํ˜„์—์„œ getpeername, getsockname, shutdown ํ•จ์ˆ˜๊ฐ€ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • DPDK๊ฐ€ ๋ฒ„์ „ 17.11.4 LTS๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : linux.org.ru

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