Why eBPF?

  • kkumtree

2024-10-21T19:47:33+09:00

kans
ebpf
xdp
kubernetes

๊ณ ์ณ์•ผํ•  ๋ถ€๋ถ„์ด ๋„ˆ๋ฌด ๋งŽ์•„์„œ ๋‚˜์ค‘์— ํ•ด๋‹น ๋ถ€๋ถ„๋งŒ ๊ธ€์„ ์ž‘์„ฑํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์–ด๋А๋ง ์ด๋ฒˆ ์Šคํ„ฐ๋””๋„ ๋Œ€๋ง์˜ Cilium์„ ๋‹ค๋ฃจ๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
Cilium์— ์ด๋ ‡๊ฒŒ๋„ (์ €๋ฅผ ํฌํ•จํ•œ) ๋ชจ?๋‘๊ฐ€ ์—ด๊ด‘ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๊ธฐ ์ „์—
๊ทผ๊ฐ„์ด ๋˜๋Š” eBPF๋ฅผ ๋จผ์ € ๊ฐ€๋ณ๊ฒŒ ์•Œ์•„๋ณด๊ณ  ๊ฐ€๋ คํ•ฉ๋‹ˆ๋‹ค.
์ด ๋•Œ๋Š” ์„ค๋งˆ ํ–ˆ์ง€๋งŒ, ์—ญ์‹œ๋‚˜ ์Šค๋ถˆ์žฌ ์—”๋”ฉ์ด์—ˆ๋‹ค

CloudNet@์—์„œ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” K8s Advanced Network Study(์ดํ•˜, KANS)๋ฅผ ํ†ตํ•ด ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

1. Linux Network Stack

์Šคํ„ฐ๋”” 1์ฃผ์ฐจ์˜ Jenkins ์ปจํ…Œ์ด๋„ˆ์—์„œ Host์˜ Docker ๋ฐ๋ชฌ ์‚ฌ์šฉํ•˜๊ธฐ์—์„œ ๊ฐ€๋ณ๊ฒŒ ๋ง›์„ ๋ณด๊ณ  ๋„๋ง์น˜๊ธฐ ๋ฐ”๋นด์ง€๋งŒ, ์—ฌํŠผ ์•„๋ž˜์˜ ์‚ฌํ•ญ์€ ์Šค์ณ์ง€๋‚˜๊ฐ”์Šต๋‹ˆ๋‹ค.

  • iptables: userspace ๊ธฐ๋ฐ˜์˜ ๋„คํŠธ์›Œํ‚น

ufw, firewalld ๋“ฑ์˜ ๋ฐฉํ™”๋ฒฝ ํ”„๋กœ๊ทธ๋žจ์ด ์ด๋ฅผ ๋ž˜ํ•‘ํ•˜์˜€๋‹ค๋Š” ๊ฑด ๋Œ€์ถฉ ๋„˜์–ด๊ฐ„๋‹คํ•˜๋”๋ผ๋„,
Linux ํ™˜๊ฒฝ์—์„œ userspace๋ฅผ ํ†ตํ•ด ์ œ์–ด๋ฅผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„๋‘์—ˆ์„ ๋•Œ,
์ด๋ฅผ ๋„คํŠธ์›Œํ‚น ์Šคํ…์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๊ธฐ์กด์˜ ๋ฐฉ์‹์ด ์•ฝ๊ฐ„์ด๋ผ๋„ ๋ฒˆ๊ฑฐ๋กญ๋‹ค๋Š” ๊ฒƒ์„ ๋А๋‚„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์˜๋ฏธ๋Š” yaml์— ์ ์šฉํ•˜๋ฉด, ์ผ์ผํžˆ iptables๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด๋ฅผ ๋˜ ํ’€๊ฒŒ๋˜๋ฉด…

  • ํ•œ๋ฒˆ ๊ทœ์น™(rule)์„ ์ˆ˜์ •ํ•œ๋‹ค๊ณ  ํ• ๋•Œ, ์žฌ์ƒ์„ฑ=๋ชจ๋“  ๊ทœ์น™์„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.
  • Chaning ๋œ ๊ทœ์น™์€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋™์ž‘์˜ ๋ณต์žก๋„๋Š” O(n).
  • ACLs๋Š” ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๊ทœ์น™์—์„œ ์ˆœ์ฐจ์ ์œผ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • IP ๋ฐ ํฌํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ, L7 ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•ด์„œ๋Š” ์ง€์›์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด IP ํ˜น์€ ํฌํŠธ๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด, ๊ทœ์น™์€ ์ถ”๊ฐ€๋˜์–ด์•ผํ•˜๊ณ  ์ฒด์ด๋‹์€ ๋ฐ”๋€Œ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.
    ์ฆ‰ ๊ทธ๋•Œ๋งˆ๋‹ค ๋ชจ๋“  ๊ทœ์น™์„ ์—…๋ฐ์ดํŠธํ•ด์•ผํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ kube-proxy์ฒ˜๋Ÿผ ์ด๋ฅผ ํ™œ์šฉํ•œ Kubernetes์— ์žˆ์–ด ๋ฆฌ์†Œ์Šค ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๊ณ , Youtube/FOSDEM2020์— ๋‚˜์™€์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ผ๋ฐ˜์ ์œผ๋กœ iptables๋ฅผ ์“ฐ๋Š” ๊ฒƒ์ด kernel ๋‹จ์˜ netfilter๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์ต์ˆ™ํ•œ ๋ฐฉ์‹์ด๋ผ ์ ์šฉํ•˜๊ธฐ ํšจ์œจ์ ์ด์—ˆ์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค.

linux-network-stack

2. BPF(Berkeley Packet Filter) kernel hooks

BPF๋ฅผ ์ปค๋„์— ์‚ฝ์ž…ํ•˜์—ฌ, ํŒจํ‚ท์„ ํ•„ํ„ฐ๋ง(ํ†ต์ œ)ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ… ์ด๊ฑธ๋กœ๋Š” ํฌ๊ฒŒ ์™€๋‹ฟ์ง€ ์•Š๊ณ ์š”.
๋‹ค๋ฅธ ๊ธ€์—๋„ tcpdump๋ฅผ ๋Œ€ํ‘œ์ ์ธ ์‚ฌ์šฉ๋ก€๋กœ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋„์„œ์ถœํŒ ์ธ์‚ฌ์ดํŠธ์— ๋”ฐ๋ฅด๋ฉด, ํŒจํ‚ท ํ•„ํ„ฐ๋ง์„ ๋„˜์–ด ๊ณ ๊ธ‰ ์„ฑ๋Šฅ ๋ถ„์„ ๋„๊ตฌ ๋“ฑ์— ์ด์šฉ๋˜๋Š” ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์— ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ๋ฒ”์šฉ ์‹คํ–‰ ์—”์ง„์„ ์ผ์ปฝ๋Š” ๋…๋ฆฝ์  ๊ธฐ์ˆ ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ์ปค๋„์˜ ๋‚ด๋ถ€๋ฅผ ๋“ค์—ฌ๋‹ค ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ดˆ๋Šฅ๋ ฅ(๋งค์ง!)์„ ์ค€๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ปดํ“จํ„ฐ๊ณผํ•™์— ์ดˆ๋Šฅ๋ ฅ์ด๋ผ๋‹ˆ, ์ฒ˜์Œ์—” ๊ฐธ์›ƒํ–ˆ๋Š”๋ฐ Cilium์„ ๋ณด๋ฉด์„œ ๊ทธ์ € ๋ฏฟ๋Š” ์ˆ˜๋ฐ–์— ์—†์—ˆ์ฃ .

what-bpf-do

์œ„์˜ ํฌ์ŠคํŒ…์— ์ž์„ธํžˆ ๋‚˜์™€์žˆ์ง€๋งŒ, ์ œ๊ฐ€ ์ดํ•ดํ•˜๋ ค๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด ๋„์ ์˜€์Šต๋‹ˆ๋‹ค.

  • Syscall

userspace map interaction(์ƒํ˜ธ์ž‘์šฉ)์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • Sockmap

BPF Map์˜ ํ•œ ์œ ํ˜•์œผ๋กœ ๋ณด์ด๋ฉฐ, ์†Œ์ผ“์„ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

BPF Map์€ BPF ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ค๋ฅธ BPFํ”„๋กœ๊ทธ๋žจ ๋ฐ map ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ userspace ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ์–ป๋Š” ๋ฐ ์“ฐ์ธ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
๋” ์ž์„ธํ•œ ๊ฒƒ์€ The Linux Kernel Docs์—์„œ.

  • Sockops: also called TCP-BPF mechanism that support setting TCP parameters.

ops๋ผ๊ธธ๋ž˜, xops์ธ์ค„ ์•Œ์•˜๋Š”๋ฐ operand์ธ ๊ฑด์— ๋Œ€ํ•˜์—ฌ;

ํ•œ๋ฒˆ ์ฐพ์•„๋ณด๋‹ˆ ์ข‹์€ ๊ธ€์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. eBPF็ณปๅˆ—-ebpf mapไน‹ไฝฟ็”จsockmapๆๅ‡ๆœฌๅœฐsocket่ฝฌๅ‘
netdevconf/brakmo-tcpbpf-talk์™€ ๋ณ‘ํ–‰ํ•ด์„œ ์ฝ์–ด๋ณธ ๋ฐ”, ํ˜„์žฌ ์ดํ•ดํ•œ ์‚ฌํ•ญ์€…

(1) SYN ์ˆ˜์‹  ์‹œ : BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB ํžˆํŠธ
(2) SYN-ACK ์ˆ˜์‹  ์‹œ : BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB ํžˆํŠธ
(3) ์ด ์™ธ์—๋„ RTO ์‹œ๊ฐ„์„ ๋™์ ์œผ๋กœ ์กฐ์ •๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ธ๋ฐ, ์•„๋ž˜ ๋ธ”๋กœ๊ทธ์— ์žฌ๋ฏธ๋‚˜’๋ณด์ด๋Š”’ ์˜ˆ์‹œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ธ์  ๊ฐ€ ์ € RTO๋ฅผ ์™œ ์กฐ์ž‘ํ•˜๋Š”์ง€ ์ด์œ ๋ฅผ ์ข€ ๋” ์•Œ์•„๋ดค์œผ๋ฉด ์ข‹๊ฒ ๋„ค์š”.

Customize TCP initial RTO (retransmission timeout) with BPF

  • Cgroups / TC(Transmission Control) Hooks

์‚ฌ์‹ค TC๊ฐ€ ํŠธ๋ž˜ํ”ฝ ์ปจํŠธ๋กค ์•„๋‹Œ๊ฐ€, IPv4, IPv6 ๋Š” cgroup ์ด์ฃ ? ๋ผ๋Š” ์งˆ๋ฌธ์„ ๋ฐ›๊ณ ,
๋ญ”๊ฐ€ ์ž˜?๋ชป ๋˜์—ˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ์ด ๊ธ€์„ ํ†ตํ•ด ์ •๋ง ์กฐ๊ธˆ๋งŒ ๋” ํŒŒ๋ณด๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. (๋˜ ํ›„ํšŒ ์ค‘)

OpenEuler/eBPF Introduction์— ์˜ํ•˜๋ฉด cgroup์˜ ๊ฒฝ์šฐ, ๋‹น์—ฐํ•œ ์ด์•ผ๊ธฐ๊ฒ ์ง€๋งŒ Permission ์ด์•ผ๊ธฐ๋กœ ์ƒ๊ฐ์ด ๋˜๋Š”๋ฐ, BPF_PROG_TYPE_CGROUP_DEVICE์ฒ˜๋Ÿผ ์“ธ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋˜์–ด ์ง‘๋‹ˆ๋‹ค.

eunomia/eBPF Tutorial by Example 20: tc Traffic Control์—์„œ
tc(traffic control)๊ณผ TC(Transmission Control)์„ ๊ตฌ๋ถ„ํ•˜๊ณ  ์žˆ๋Š”๋ฐ,
๊ฒฐ๊ตญ ๋ฌด์—‡์ธ์ง€๋Š” ์•„์ง ํ—ท๊ฐˆ๋ฆฝ๋‹ˆ๋‹ค. ์ „์†กํ•˜๋Š”๊ฑด ๋˜‘๊ฐ™์œผ๋‹ˆ ๊ทธ๋งŒ ์ข€ ์ƒ๊ฐํ•ด๋ณผ๊นŒ

์•„์ง์€ ํ™•์‹ ์„ ํ•˜์ง€ ๋ชปํ–ˆ์œผ๋ฏ€๋กœ ์•„๋ž˜์˜ ๊ธ€๊ณผ ํ•จ๊ป˜ ๋ณด๋ฅ˜ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Whirl Offload/Understanding tc โ€œdirect actionโ€ mode for BPF
man7/tc-bpf(8)#DESCRIPTION

๋‹น์—ฐํžˆ traffic control๋กœ ๊ธฐ์žฌ์•ผ ๋˜์–ด์žˆ๊ฒ ์ง€๋งŒ, ์„ค๋ช…์„ ์ฝ์–ด๋ณด๋‹ˆ
(SHAPING) When traffic is shaped, its rate of transmission is under control.
์ด๋ ‡๊ฒŒ ์ ํ˜€์žˆ์–ด์„œ, ๊ฒฐ๊ตญ ์ „์†ก์†๋„ ์ œ์–ด์ด๋‹ˆ ๋‘˜ ๋‹ค ๋งž๋Š” ๋ง ๊ฐ™๊ธฐ๋„…?
์—ฌํŠผ shaping์€ burst ์™„ํ™”์— ๋„์›€์ด ๋˜๊ณ , egress ์—์„œ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  • XDP(eXpress Data Path)

Red Hat/Get started with XDP์„ ๋ณด๋‹ˆ, ์„œ๋‘๋ถ€ํ„ฐ learning curve๊ฐ€ ์‹ฌํ•˜๋‹ค๊ณ  ํ•˜๋Š”๊ตฐ์š”. ์ ‘์„๊นŒ

ํ•˜์œ„๋กœ ์•ˆ๋‚ด๋œ Red Hat/Achieving high-performance, low-latency networking with XDP: Part I๋ฅผ ์‚ดํŽด๋ด…์‹œ๋‹ค.

XDP ์ด์ „์˜ ํŒจํ‚ท ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ปค๋„ ์†”๋ฃจ์…˜์€ DPDK(Data Plane Development Kit)์ด๋ผ๋Š” bypass ์†”๋ฃจ์…˜ ๋Œ€๋น„ 10๋ฐฐ ์ด์ƒ ์„ฑ๋Šฅ์ด ๋’ค์ณ์ ธ์žˆ์—ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ XDP๋ฅผ ํ†ตํ•ด, ์•„๋ž˜์˜ ์žฅ์ ์„ ํฌํ•จํ•˜์—ฌ XDP ์ง€์› ๋“œ๋ผ์ด๋ฒ„์—์„œ 14Mpps ์ด์ƒ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.

(0) ์ปค๋„ ๋‚ด ์ฝ”๋“œ ์ถ”๊ฐ€ ์—†์ด ์ปค๋„ ๋™์ž‘ ๋ณ€๊ฒฝ ๋ฐ ํ™•์žฅ: ??? ๋ญ๋ผ๊ณ ?
(1) SKBs(socket buffers) ๊ด€๋ฆฌ์˜ ์˜ค๋ฒ„ํ—ค๋“œ ์ œ๊ฑฐ(?)
(2) ํŒจํ‚ท๋‹น ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์˜ค๋ฒ„ํ—ค๋“œ ๊ฐ์†Œ
(3) ๋” ํšจ๊ณผ์ ์ธ ๋Œ€๋Ÿ‰ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

์Œ ์จ๋†“๊ณ ๋„ ๋‹ค์‹œ ์ฝ์–ด๋ณด๋‹ˆ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋„ค์š”.

์—ฌํŠผ, ์ปค๋„ ๋‚ด๋ถ€์˜ ์ €์ˆ˜์ค€ hook์— BPF(eBPF) ํ”„๋กœ๊ทธ๋žจ์„ ๋ถ™์ผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
์ด hook์ด network device driver์— ์˜ํ•ด ๊ตฌํ˜„๋˜๋Š” ์‹œ์ ์€
ํ˜„์žฌ(current) ํŒจํ‚ท์— ์†Œ์ผ“ ๋ฒ„ํผ๊ฐ€ ํ• ๋‹น๋˜๊ธฐ ์ „์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ NAPI ๋ฐฉ์‹์˜ poll()๊ณผ ๊ฐ™์ด,
ingress traffic proccessing function(์ธ๊ทธ๋ ˆ์Šค ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ ํ•จ์ˆ˜)๋‚ด๋ถ€์—์„œ ์ฒ˜๋ฆฌ๋œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์™€ ์žฅํ™ฉํ•˜๊ฒŒ ์“ฐ๋‹ˆ, ๋” ๋ชจ๋ฅด๊ฒ ์–ด!

3. eBPF(Extended BPF)

์•ž์˜ ์„ค๋ช…์ด ์žฅํ™ฉํ–ˆ๋Š”๋ฐ, ์•„๋ž˜์˜ ๊ทธ๋ฆผ์„ ์กฐ๊ธˆ์€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณผ์—ฐ

ebpf-explained-in-isitobservable

Source: Is it Observable/How to observe your network with eBPF

์•ž์„  ๋‚ด์šฉ์—์„œ๋„ eBPF๊ฐ€ ๊ฐ„ํ˜น ๋‚˜์˜ค๋Š”๋ฐ ๊ทธ์•ผ BPF์—์„œ ํ™•์žฅ๋œ ๊ฒƒ์ด๋‹ˆ ๊ธฐ๋ณธ์›๋ฆฌ๋Š” ๊ฐ™์„ ์ˆ˜ ๋ฐ–์— ์—†์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ํ•ต์‹ฌ: ์ปค๋„์˜ current feature(ํ˜„์žฌ ๊ธฐ๋Šฅ)์„ ๊ฐœ์„  ํ•  ์ˆ˜ ์žˆ์Œ.

    • ์ปค๋„์ด ์†Œ์ผ“ ์—ฐ๊ฒฐ์ด๋‚˜ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ, KPIs๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์ถ”๊ฐ€
    • ์–ด์งธ์„œ KPI๋ฅผ ์—ฌ๊ธฐ์„œ ๋ณด๋Š” ๊ฒƒ์ธ๊ฐ€
  • ํ™œ์šฉ: ๋ฌด๊ถ๋ฌด์ง„

    • ๋„คํŠธ์›Œํ‚น: ๋ถ„์„, ๋ผ์šฐํŒ… ๋“ฑ
    • ๋ณด์•ˆ: ํŠน์ • ๊ทœ์น™์— ๋”ฐ๋ผ ํŠธ๋ž˜ํ”ฝ ํ•„ํ„ฐ๋ง ๋ฐ ํ—ˆ์šฉ/์ฐจ๋‹จ ํŠธ๋ž˜ํ”ฝ ๋ณด๊ณ 
    • ์‹คํ–‰ํ๋ฆ„ ์ˆ˜์ง‘(execution flows):
      • scope: userspace ~ kernel instruction
      • purpose: tracing, profiling
    • Observability~~(๊ด€์ฐฐ๊ฐ€๋Šฅ์„ฑ…)~~:
      • Not Pooling Information: EFFECTIVE!!!
      • eBPF ํ”„๋กœ๊ทธ๋žŒ์€ ์ธก์ •์ด ํ•„์š”ํ•  ๋•Œ, ์ •ํ™•ํžˆ ์‹คํ–‰๋œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณผ์žฅ OR ์˜คํ•ด: ๋ธŒ๋ผ์šฐ์ €์— JavaScript ์žˆ๋Š” ๊ฒƒ์— ๋น„๊ฒฌํ•จ;;;

์•„๋ž˜ ๊ทธ๋ฆผ์œผ๋กœ ๊ธ‰ํ•œ ๋งˆ๋ฌด๋ฆฌ๋ฅผ ์‹œ๋„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

bpf-compiler-collection

Source: iovisor/bcc @github

4. etc.

  • 1000 Mpbs = 1488000 pps = 1.488 Mpps: ๊ถ๊ธˆํ•ด์„œ ์ฐพ์•„๋ณธ ๊ฒƒ. ๋น ๋ฅด๋„ค์š”.
    • 672 bit/s(=bps) = 1 Packet/s(=pps)
    • 1 Mbps = 1488 pps = 1.488 Kpps
    • Source: inyong_pang @velog

kkumtree

plumber for infra

kkumtree

Source code on GitHub

ยฉ 2025 kkumtree and contributors All rights reserved.
Licensed under
CC BY-NC-ND 4.0