°³¶ËÀ̳׿¡¼ ÆÇ¸ÅµÈ "BPF ¼º´É ºÐ¼® µµ±¸" Á¤°¡ 52,000¿ø Æò±ÕÇÒÀΰ¡
|
|
|
1Àå ¼Ò°³ 1.1 BPF/eBPF¶õ? 1.2 Æ®·¹À̽Ì, ½º´©ÇÎ, »ùÇøµ, ÇÁ·ÎÆÄÀϸµ°ú °üÃø°¡´É¼º 1.3 BCC, bpftrace ±×¸®°í IO Visor¶õ? 1.4 BCC »ìÆ캸±â 1.5 BPF Æ®·¹ÀÌ½Ì °¡½Ã¼º 1.6 µ¿Àû °èÃø: kprobe¿Í uprobes 1.7 Á¤Àû °èÃø: tracepoint¿Í USDT 1.8 bpftrace »ìÆ캸±â: open() Æ®·¹ÀÌ½Ì 1.9 BCC »ìÆ캸±â: open() Æ®·¹ÀÌ½Ì 1.10 Á¤¸®
2Àå ±â¼ú ¹è°æ 2.1 BPF µµ½ÄÈÇϱâ 2.2 BPF 2.3 È®Àå BPF(eBPF) 2.4 ½ºÅà Ʈ·¹À̽º ÃßÀû 2.5 Ç÷¹ÀÓ ±×·¡ÇÁ 2.6 À̺¥Æ® ¼Ò½º 2.7 kprobe 2.8 uprobes 2.9 tracepoint 2.10 USDT 2.11 µ¿Àû USDT 2.12 PMC 2.13 perf_events 2.14 Á¤¸®
3Àå ¼º´É ºÐ¼® 3.1 °³¿ä 3.2 ¼º´É ºÐ¼® ¹æ¹ý·Ð 3.3 60ÃÊ ¸®´ª½º ¼º´É ºÐ¼® 3.4 BCC µµ±¸ üũ¸®½ºÆ® 3.5 Á¤¸®
4Àå BCC 4.1 BCC ÄÄÆ÷³ÍÆ® 4.2 BCCÀÇ ±â´É 4.3 BCC ¼³Ä¡ 4.4 BCC µµ±¸ 4.5 funccount 4.6 stackcount 4.7 trace 4.8 argdist 4.9 µµ±¸ ¹®¼ 4.10 BCC µµ±¸ °³¹ßÇϱâ 4.11 BCC ³»ºÎ ±¸Á¶ 4.12 BCC µð¹ö±ë 4.13 Á¤¸®
5Àå bpftrace 5.1 bpftrace ÄÄÆ÷³ÍÆ® 5.2 bpftraceÀÇ ±â´É 5.3 bpftrace ¼³Ä¡ 5.4 bpftrace µµ±¸ 5.5 bpftrace ¿ø ¶óÀÌ³Ê 5.6 bpftrace ¹®¼ 5.7 bpftrace ÇÁ·Î±×·¡¹Ö 5.8 bpftrace »ç¿ë¹ý 5.9 bpftrace probe À¯Çü 5.10 bpftrace È帧 Á¦¾î 5.11 bpftrace ¿¬»êÀÚ 5.12 bpftrace º¯¼ö 5.13 bpftrace ÇÔ¼ö 5.14 bpftrace ¸Ê ÇÔ¼ö 5.15 bpftrace ÇâÈÄ ÀÛ¾÷ 5.16 bpftrace ³»ºÎ ±¸Á¶ 5.17 bpftrace µð¹ö±ë 5.18 Á¤¸®
6Àå CPU 6.1 ¹è°æÁö½Ä 6.2 ±âÁ¸ µµ±¸ 6.3 BPF µµ±¸ 6.4 BPF ¿ø ¶óÀÌ³Ê 6.5 ¼±Åà ¿¬½À ¹®Á¦ 6.6 Á¤¸®
7Àå ¸Þ¸ð¸® 7.1 ¹è°æÁö½Ä 7.2 ±âÁ¸ µµ±¸ 7.3 BPF µµ±¸ 7.4 BPF ¿ø ¶óÀÌ³Ê 7.5 ¼±Åà ¿¬½À ¹®Á¦ 7.6 Á¤¸®
8Àå ÆÄÀÏ ½Ã½ºÅÛ 8.1 ¹è°æÁö½Ä 8.2 ±âÁ¸ µµ±¸ 8.3 BPF µµ±¸ 8.4 BPF ¿ø ¶óÀÌ³Ê 8.5 ¼±Åà ¿¬½À ¹®Á¦ 8.6 Á¤¸®
9Àå µð½ºÅ© I/O 9.1 ¹è°æÁö½Ä 9.2 ±âÁ¸ µµ±¸ 9.3 BPF µµ±¸ 9.4 BPF ¿ø ¶óÀÌ³Ê 9.5 ¼±Åà ¿¬½À ¹®Á¦ 9.6 Á¤¸®
10Àå ³×Æ®¿öÅ· 10.1 ¹è°æÁö½Ä 10.2 ±âÁ¸ µµ±¸ 10.3 BPF µµ±¸ 10.4 BPF ¿ø ¶óÀÌ³Ê 10.5 ¼±Åà ¿¬½À ¹®Á¦ 10.6 Á¤¸®
11Àå º¸¾È 11.1 ¹è°æÁö½Ä 11.2 BPF µµ±¸ 11.3 BPF ¿ø ¶óÀÌ³Ê 11.4 Á¤¸®
12Àå ¾ð¾î 12.1 ¹è°æÁö½Ä 12.2 C 12.3 ÀÚ¹Ù 12.4 ¹è½Ã ¼Ð 12.5 ´Ù¸¥ ¾ð¾îµé 12.6 Á¤¸®
13Àå ¾ÖÇø®ÄÉÀÌ¼Ç 13.1 ¹è°æÁö½Ä 13.2 BPF µµ±¸ 13.3 BPF ¿ø ¶óÀÌ³Ê 13.4 BPF ¿ø ¶óÀÌ³Ê »ç·Ê 13.5 Á¤¸®
14Àå Ä¿³Î 14.1 ¹è°æÁö½Ä 14.2 Àü·« 14.3 ±âÁ¸ µµ±¸ 14.4 BPF µµ±¸ 14.5 BPF ¿ø ¶óÀÌ³Ê 14.6 BPF ¿ø ¶óÀÌ³Ê »ç·Ê 14.7 µµÀü °úÁ¦ 14.8 Á¤¸®
15Àå ÄÁÅ×ÀÌ³Ê 15Àå ÄÁÅ×ÀÌ³Ê 15.1 ¹è°æÁö½Ä 15.2 ±âÁ¸ µµ±¸ 15.3 BPF µµ±¸ 15.4 BPF ¿ø ¶óÀÌ³Ê 15.5 ¿¬½À ¹®Á¦ 15.6 Á¤¸®
16Àå ÄÁÅ×ÀÌ³Ê 16.1 ¹è°æÁö½Ä 16.2 ±âÁ¸ µµ±¸ 16.3 °Ô½ºÆ® BPF µµ±¸ 16.4 È£½ºÆ® BPF µµ±¸ 16.5 Á¤¸®
17Àå ÄÁÅ×ÀÌ³Ê 17.1 º¤ÅÍ¿Í PCP 17.2 ±×¶óÆijª¿Í PCP 17.3 Cloudflare eBPF Prometheus Exporter(with Grafana) 17.4 kubectl-trace 17.5 ±âŸ µµ±¸ 17.6 Á¤¸®
18Àå ÄÁÅ×ÀÌ³Ê 18.1 ÀϹÝÀûÀÎ À̺¥Æ® ¹ß»ý ºóµµ¿Í ¿À¹öÇìµå 18.2 49Hz ¶Ç´Â 99Hz ÁÖ±â·Î »ùÇøµ 18.3 ³ë¶õ µÅÁö¿Í ȸ»ö Áã 18.4 ´ë»ó ¼ÒÇÁÆ®¿þ¾î ÀÛ¼º 18.5 ½Ã½ºÅÛ ÄÝ ¹è¿ì±â 18.6 ½ÉÇÃÇÏ°Ô Çϱâ 18.7 À̺¥Æ® ´©¶ô 18.8 ½ºÅà Ʈ·¹À̽º ´©¶ô 18.9 Ãâ·Â ½Ã ½É¹ú(ÇÔ¼ö À̸§) ´©¶ô 18.10 Æ®·¹À̽ÌÇÒ ¶§ ÇÔ¼ö ´©¶ô 18.11 Çǵå¹é ·çÇÁ 18.12 À̺¥Æ® µå·Ó
ºÎ·Ï A bpftrace ¿ø ¶óÀÌ³Ê 6Àå CPU 7Àå ¸Þ¸ð¸® 8Àå ÆÄÀÏ ½Ã½ºÅÛ 9Àå µð½ºÅ© I/O 10Àå ³×Æ®¿öÅ· 11Àå º¸¾È 13Àå ¾ÖÇø®ÄÉÀÌ¼Ç 14Àå Ä¿³Î
ºÎ·Ï B bpftrace Cheat Sheet
ºÎ·Ï C BCC µµ±¸ °³¹ß ¸®¼Ò½º ´Ù¼¸ °¡Áö ÆÁ µµ±¸ »ç¿ë ¿¹½Ã Ãß°¡ Á¤º¸
ºÎ·Ï D C BPF C·Î ÇÁ·Î±×·¥ÇÏ´Â ÀÌÀ¯ ´Ù¼¸ °¡Áö ÆÁ C ÇÁ·Î±×·¥ perf C Ãß°¡ Á¤º¸
ºÎ·Ï E BPF ¸í·É¾î ÇïÆÛ ¸ÅÅ©·Î ¸í·É¾î ÀÎÄÚµù Âü°í ÀÚ·á
ºÎ·Ï F ¿ë¾î»çÀü
ºÎ·Ï G Âü°í¹®Çå
BPF µµ±¸¸¦ ÅëÇÑ ¼º´É ÃÖÀûÈ, ¹®Á¦ ÇØ°á ¹× ½Ã½ºÅÛ ³»ºÎ ±¸Á¶ ºÐ¼®
BPF ±â¹Ý ¼º´É ºÐ¼® µµ±¸µéÀº ½Ã½ºÅÛ°ú ¾ÖÇø®ÄÉÀ̼ǿ¡ ´ëÇØ ±âÁ¸°ú´Â Â÷¿øÀÌ ´Ù¸¥ °¡½Ã¼ºÀ» Á¦°øÇÕ´Ï´Ù. À̸¦ ÅëÇØ ¼º´É ÃÖÀûÈ, ¹®Á¦ ÇØ°á, º¸¾È °È, ºñ¿ë Àý°¨ µîÀÇ È¿°ú¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ¡¶BPF ¼º´É ºÐ¼® µµ±¸¡·´Â ÀÌ·¯ÇÑ °üÃø°¡´É¼º µµ±¸¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¾È³»ÇÕ´Ï´Ù. BPFÀÇ ¼±±¸ÀÚÀÌÀÚ Àü¹®°¡ÀÎ ÀúÀÚ´Â ¹Ù·Î ½ÇÇàÇØ º¼ ¼ö ÀÖ´Â 150°³ ÀÌ»óÀÇ ¼º´É ºÐ¼® ¹× µð¹ö±ë µµ±¸¸¦ ¼Ò°³ÇÏ°í, »ç¿ë ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù. ¶ÇÇÑ, µ¶ÀÚ°¡ ½º½º·Î ¼º´É ºÐ¼® µµ±¸¸¦ Á¦ÀÛÇÒ ¼ö ÀÖµµ·Ï ´Ü°èº°·Î ¾È³»ÇÕ´Ï´Ù. ÀÌ Ã¥À» ÅëÇؼ CPU, ¸Þ¸ð¸®, µð½ºÅ©, ÆÄÀÏ ½Ã½ºÅÛ, ³×Æ®¿öÅ·, ¾ð¾î, ¾ÖÇø®ÄÉÀ̼Ç, ÄÁÅ×À̳Ê, ÇÏÀÌÆÛ¹ÙÀÌÀú, º¸¾È ¹× Ä¿³ÎÀ» ºÐ¼®ÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ ¹è¿ï ¼ö ÀÖ½À´Ï´Ù. ÀúÀÚ´Â ±âº» µµ±¸ºÎÅÍ °í±Þ µµ±¸±îÁö »ç¿ëÇؼ °¢ ÄÄÆ÷³ÍÆ®¸¦ ºÐ¼®ÇÏ°í, µ¶ÀÚ°¡ ¸®´ª½º ½Ã½ºÅÛÀ̳ª ¾ÖÇø®ÄÉÀ̼ǿ¡ ´ëÇØ ±íÀÌ ÀÖ°í À¯¿ëÇÑ ½Ã°¢À» °¡Áú ¼ö ÀÖµµ·Ï µµ¿ÍÁÝ´Ï´Ù. ¡¶BPF ¼º´É ºÐ¼® µµ±¸¡·´Â ¿£ÅÍÇÁ¶óÀÌÁî/Ŭ¶ó¿ìµå ȯ°æ¿¡¼ ÃֽŠ¸®´ª½º¸¦ »ç¿ëÇÏ´Â ½Ã½ºÅÛ °ü¸®ÀÚ, °³¹ßÀÚ, Áö¿ø ½ºÅÂÇÁ»Ó ¾Æ´Ï¶ó ¸ðµç IT Àü¹®°¡¿¡°Ô ±ÍÁßÇÑ ÀÚ·á°¡ µÉ °ÍÀÔ´Ï´Ù
ÀÌ Ã¥Àº ¸®´ª½º ¿î¿µÃ¼Á¦ÀÇ ¼ºê½Ã½ºÅÛ¿¡ ´ëÇÑ ¹è°æÁö½ÄºÎÅÍ ¼³¸íÇÏ¸ç ¼º´É ºÐ¼® Àü·«, ¼º´É ºÐ¼®¿¡ È°¿ëÇÒ ¼ö ÀÖ´Â ÀüÅëÀûÀÎ µµ±¸µé ±×¸®°í ½Ç¿ëÀûÀÎ BPF µµ±¸µéÀ» ¾Ë·Á ÁÝ´Ï´Ù. ÀÌ·Î½á µ¶ÀÚµéÀº ¸®´ª½ºÀÇ ÁÖ¿äÇÑ ¼º´É °èÃø ÁöÁ¡ÀÇ Àǹ̸¦ ¹è¿ï ¼ö ÀÖ°í ¼º´É ºÐ¼®À» À§ÇÑ BPF µµ±¸¸¦ ½º½º·Î ÀÛ¼ºÇÒ ¼ö ÀÖ°Ô µÇ¸ç, ¸®´ª½º ¿î¿µÃ¼Á¦¸¦ ±âÁ¸°ú´Â ´Ù¸¥ °üÁ¡¿¡¼ ÀÌÇØÇÏ°Ô µË´Ï´Ù. ¸®´ª½º ¿î¿µÃ¼Á¦¸¦ ¼º´É ºÐ¼® °üÁ¡¿¡¼ ÀÌÇØÇÏ°í ½Í°Å³ª BPF µµ±¸¸¦ ¸¸µé°í ½ÍÀº ºÐµé²² ÀÌ Ã¥À» ÃßõÇÕ´Ï´Ù. - Á¤ÁØ¿µ, Ä«Ä«¿À¿£ÅÍÇÁ¶óÀÌÁî
ÀÌ Ã¥Àº ¿À·£ ½Ã°£ ¾Ë°í ÀÖ¾úÁö¸¸ ¸Ó¸´¼Ó¿¡¼ Àϸñ¿ä¿¬ÇÏ°Ô Á¤¸®µÇÁö´Â ¾Ê¾Ò´ø ¸®´ª½º Áö½Ä ¹× ¼º´É Æ®·¯ºí½´Æà ±â¼úÀ» ¹è°æÁö½Ä¡æBPF È°¿ë °¡´É¼º¡æ(ÀÌ¿ë) Àü·«¡æ±âÁ¸ µµ±¸¡æBPF µµ±¸¡æBPF ¿ø ¶óÀ̳ʡ漱Åà ¿¬½À ¹®Á¦ÀÇ °úÁ¤À» ÅëÇØ ¿Ïº®ÇÏ°Ô Á¤¸®ÇØ ÁÝ´Ï´Ù. ½Ã½ºÅÛ¿¡ ´ëÇÑ ÀÌÇصµ¸¦ ³ôÀÌ°í advanced system engineer·Î °Åµì³ª°í ½ÍÀº µ¶ÀÚ¿¡°Ô ±ÇÇÕ´Ï´Ù. - ÃÖ±Ô¹Î, ±¹°¡Á¤º¸ÀÚ¿ø°ü¸®¿ø
[ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë] ¡Ü Æ®·¹À̽ÌÀÇ ÇÙ½É °³³ä°ú ÁÖ¿ä BPF ÇÁ·ÐÆ®¿£µåÀÎ BCC, bpftrace ¡Ü ¹Ù·Î ½ÇÇàÇØ º¼ ¼ö ÀÖ´Â 150°³ ÀÌ»óÀÇ °·ÂÇÑ BPF µµ±¸ ¡Ü ÄÄÆÄÀÏ, JIT ÄÄÆÄÀÏ, ÀÎÅÍÇÁ¸®ÅÍ ¾ð¾î¸¦ °èÃø, ºÐ¼®ÇÏ´Â ¹æ¹ý ¡Ü »óÈ£ º¸¿ÏÀûÀÎ ºÐ¼® µµ±¸µéÀ» »ç¿ëÇØ ¼º´É Çâ»óÁ¡À» ºü¸£°Ô ã¾Æ³»´Â ¹æ¹ý ¡Ü ´Ù¾çÇÑ ÁöÇ¥, ½ºÅà Ʈ·¹À̽º ¹× Ä¿½ºÅÒ Áö¿¬ ½Ã°£ È÷½ºÅä±×·¥À» »ý¼ºÇÏ´Â ¹æ¹ý ¡Ü BPF ±â¹ÝÀ¸·Î ¸¸µç °í±Þ µµ±¸ È°¿ë ¹æ¹ý ¡Ü È¿°úÀûÀÎ ºÐ¼®À» À§ÇÑ ½Ç¿ëÀûÀÎ Àü·«°ú ÆÁ
|
|
|
|
|