並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 124件

新着順 人気順

bpfの検索結果1 - 40 件 / 124件

  • bpftraceによるGoアプリケーションのトレース|hayajo

    はじめにシステムの状態を的確に捉え、運用に必要なインサイトを継続的に得るための特性は「オブザーバビリティ」と呼ばれます。オブザーバビリティを実現することで、パフォーマンスのモニタリングやトラブルシューティングを効果的に行い、システムの信頼性を高めることができます。 この重要な特性を実現する上で、eBPFやbpftraceは強力なツールとなります。 本記事では、Goアプリケーションにおけるオブザーバビリティを実現するための一つの方法として、bpftraceを用いたトレースの手法を紹介します。 内容が多いため、目次を活用して段階的に読み進めることをお勧めします。 eBPFとbpftraceはじめに、eBPFとbpftraceについて簡単に説明します。 eBPFとはeBPF(Extended Berkeley Packet Filter)はLinuxカーネル内で動作する柔軟なプログラミングフレー

      bpftraceによるGoアプリケーションのトレース|hayajo
    • eBPF Documentary

      Recent posts: 17 Mar 2024 » The Return of the Frame Pointers 10 Mar 2024 » eBPF Documentary 28 Apr 2023 » eBPF Observability Tools Are Not Security Tools 01 Mar 2023 » USENIX SREcon APAC 2022: Computing Performance: What's on the Horizon 17 Feb 2023 » USENIX SREcon APAC 2023: CFP 02 May 2022 » Brendan@Intel.com 15 Apr 2022 » Netflix End of Series 1 09 Apr 2022 » TensorFlow Library Performance 19 M

      • [Rust] AyaでeBPFプログラムをつくってみる | DevelopersIO

        Introduction eBPFは、Linuxカーネル対して動的に機能を拡張する技術で、 カーネルで独自のプログラムを安全に実行することができます。 これらのプログラムは任意のポイントに設定可能で、さまざまなタイミングで 実行できます。 eBPFは、カーネル再構築なしでカーネルの動作をカスタマイズすることができるため、 近年いろいろな用途に使われています。 今回はBCC/bpftoolで少しeBPFを使ってみた後、 Aya(eBPF用Rustフレームワーク)を使ってXDPのサンプルをつくってみます。 eBPF? eBPFはExtended Berkeley Packet Filterの略で、 もともとはLinuxでデータパケットを効率的にフィルタリングするために 開発された技術ですが、現在はその機能が拡張されて、 カーネルのコード変更やモジュール追加なしで 独自のプログラムをカーネルで実

          [Rust] AyaでeBPFプログラムをつくってみる | DevelopersIO
        • GitHub - Netflix/bpftop: bpftop provides a dynamic real-time view of running eBPF programs. It displays the average runtime, events per second, and estimated total CPU % for each program.

          You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

            GitHub - Netflix/bpftop: bpftop provides a dynamic real-time view of running eBPF programs. It displays the average runtime, events per second, and estimated total CPU % for each program.
          • クラウドネイティブ開発の文脈で人気の「eBPF」調査レポートを公開 Meta、Google、Netflixが活用

            eBPF FoundationとLinux Foundation Researchは、2024年1月30日(米国時間)、「The State of eBPF」を発表した。このレポートは、「eBPF」(extended BPF)の現状、eBPFのユースケースや今後などについて紹介している。内容は以下の通り。 eBPFの現状 Linuxカーネルは、ソフトウェアとハードウェアのインタフェースとして機能し、アプリケーションのさまざまなタスクを処理する。カーネルは約3000万行のコードを有し、重要な役割を果たすが、変更に時間がかかる。これを解決するのがeBPFだ。eBPFはLinuxカーネル内の仮想マシンで、開発者が小さな専門化されたプログラムを記述できるようにする。これらのプログラムは安全性を確保するために検証を経て、JIT(Just-In-Time)コンパイルされ、ファイルのオープニングなどのイ

              クラウドネイティブ開発の文脈で人気の「eBPF」調査レポートを公開 Meta、Google、Netflixが活用
            • ebpf-goによるLinuxカーネルトレース入門

              ebpf-goによるLinuxカーネルトレース入門 ebpf-goを使用したLinuxカーネルトレース(fentry)について紹介します。 ebpf-goは、eBPFのGo向けライブラリです。このライブラリは、libbpfに依存せず(cgoを使用せず)にeBPFプログラムとデータのやり取りが可能であるため、ポータビリティが高くGo言語に適したeBPFライブラリとなります。 fentryは、カーネル関数のエントリポイントにプログラムをアタッチするためのBPFプログラムタイプです。簡潔に言うと、カーネル関数にフック処理を行うことができます。 GitHub: ebpf-go(cilium/ebpf) 公式ドキュメント: The eBPF Library for Go 本記事ではebpf-goのexamples内のtcprttを基に、ebpf-goの開発方法についても説明します。 前提条件として、

                ebpf-goによるLinuxカーネルトレース入門
              • 今「eBPFを使ったカーネルの拡張」が熱い! eBPFで“カーネルを拡張できるおもちゃ”を作ってみた話

                Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。西村啓佑氏は、eBPFを使ったカーネル拡張の開発について発表しました。 eBPFの概要 西村啓佑氏:あらためまして、mumumuです。「eBPFを使ったオレオレカーネル拡張入門」というタイトルで発表を始めます。今日の発表の目次は(スライドを示して)こんな感じです。 まず、eBPF(extended Berkeley Packet Filter)がけっこう背景になってくるのですが、概要としては、カーネルの中で動いているVM。Kernel/VMの両方を回収できるすごいやつなんですね。こいつは実行前にバイトコードを検証するので、安全に実行できるというのが売りです。基本的には、イベントトリガーで動作するプログラムになっていて、それぞれのイベントに対応す

                  今「eBPFを使ったカーネルの拡張」が熱い! eBPFで“カーネルを拡張できるおもちゃ”を作ってみた話
                • libbpf-rs: eBPF for the Rust ecosystem

                  Summary libbpf-rs provides safe Rust bindings to libbpf as well as a cargo plugin to help you develop “Compile Once - Run Everywhere” eBPF applications. Use libbpf-rs over BCC to produce smaller, more efficient, and more predictable applications. Background eBPF (BPF) programs have traditionally been written using BPF compiler collection (BCC). The application would then call into BCC using the C+

                  • BPFの歩き方 ‐ バイナリの"カッコよさ"に触れてみる

                    本記事は、TechFeed Experts Night#19 〜 達人に聞く、Linuxカーネルコードの歩き方のセッション書き起こし記事になります。 イベントページのタイムテーブルから、その他のセッションに関する記事もお読み頂けますので、一度アクセスしてみてください。 本セッションの登壇者 セッション動画 では「BPFの歩き方」と題して発表させていただきます。 株式会社ミラティブでインフラエンジニアをしている近藤といいます。仕事では日々Goを書きながらミドルウェアのログやiostatと向き合っている感じです。今日、ほかの皆さんは本当にちゃんとカーネルソースコードの読み方を解説されていましたが、私はほぼカーネルのコードを読まないというか、基本的には最後の手段にしているので、今日はソースコードの読み方ではなく、別のものの読み方の話をします。

                      BPFの歩き方 ‐ バイナリの"カッコよさ"に触れてみる
                    • BPFを利用し、Linuxカーネルのパラメータを継続的に自動チューニングする「bpftune」。オラクルがオープンソースで公開

                      オラクルはLinuxカーネルのパラメータを、ワークロードに合わせて継続的に自動チューニングするツール「bpftune」をオープンソースで公開しました(GitHubのページ)。 bpftuneは「BPF」(Berkeley Packet Filter)と呼ばれる、Linuxカーネル内のさまざまな機能をフックして機能拡張が可能な仕組みを利用し、継続的にLinuxカーネルのきめこまなかレベルで監視を行い自動チューニングを実現しています。 オラクルはbpftuneを開発した背景として、クラウドに代表される大規模なサーバ展開が可能なインフラにおいて、以前よりも個々のサーバのチューニングについて注意が払われることがほとんどなくなったこと、チューニングされるとしても静的に適切な設定があると考えられることが一般的であることを挙げています。 bpftuneによる自動チューニング対象の項目 bpftuneは現

                        BPFを利用し、Linuxカーネルのパラメータを継続的に自動チューニングする「bpftune」。オラクルがオープンソースで公開
                      • GitHub - oracle/bpftune: bpftune uses BPF to auto-tune Linux systems

                        You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                          GitHub - oracle/bpftune: bpftune uses BPF to auto-tune Linux systems
                        • TetragonでeBPFとセキュリティオブサーバビリティ入門 | フューチャー技術ブログ

                          CNCF連載 の4本目です。 はじめに数年前にクラウドネイティブ注目技術として挙げられたeBPFにかねてよりキャッチアップしたいなと思っていたので、この連載のタイミングでeBPFとその関連プロダクトに入門してみることにしました。 CNCFプロジェクト傘下のeBPFを活用したプロダクトとしてはCilium, Falcoなどが挙げられます。CiliumはKubernetesなどのクラウドネイティブな環境でネットワーク、オブサーバビリティの機能を提供するOSSなのですが、今回はそのいわばサブプロジェクト的な位置づけのセキュリティツールである、Tetragonに触ってみます。 Cilium, Tetragonの開発をメイン行っているIsovalent社は、書籍やハンズオンラボなどで自社の製品・eBPFについての学習リソースを多く提供しています。 https://isovalent.com/reso

                            TetragonでeBPFとセキュリティオブサーバビリティ入門 | フューチャー技術ブログ
                          • Unit Testing eBPF Programs | who.ldelossa.is

                            Unit Testing eBPFLove it or hate it, writing unit tests is all but mandatory for your code. They provide a safety net when making changes, and give you that nice, warm feeling when you see them all pass after a change. While working on a Kernel patch I had to investigate writing unit tests for eBPF programs. Turns out, the Kernel developers have thought about this already and infrastructure exists

                            • LinuxカーネルをフックするeBPFによるサービスメッシュを、Kubernetesに加えてVMやパブリッククラウドまで拡大する「Cilium Mesh」が登場

                              LinuxカーネルをフックするeBPFによるサービスメッシュを、Kubernetesに加えてVMやパブリッククラウドまで拡大する「Cilium Mesh」が登場 Linuxのカーネルをフックする「eBPF」(extended Berkeley Packet Filter)と呼ばれる仕組みを用いてサービスメッシュを構成する「Cilium」などを開発するIsovalentは、Kubernetesだけでなく仮想マシンやパブリッククラウドまでをカバーするサービスメッシュを実現する「Cilium Mesh」を発表しました。 Introducing Cilium Mesh. Cilium & eBPF powered networking, security, and observability for VMs, servers, and existing networks across cloud,

                                LinuxカーネルをフックするeBPFによるサービスメッシュを、Kubernetesに加えてVMやパブリッククラウドまで拡大する「Cilium Mesh」が登場
                              • 「eBPF」がクラウドネイティブを超強力にする。eBPFとは何か? 何ができて、どんな利点があるのか? Cloud Native Days Tokyo 2022基調講演から

                                「eBPF」がクラウドネイティブを超強力にする。eBPFとは何か? 何ができて、どんな利点があるのか? Cloud Native Days Tokyo 2022基調講演から 2022年11月21日と22日の2日間、クラウドネイティブにフォーカスしたイベント「Cloud Native Days Tokyo 2022」が都内およびオンラインのハイブリッドで行われました。 22日の基調講演に登場したのは、Cilium、Hubble、TetragonなどeBPFを中心としたオープンソースを開発しているIsovalentのTracy P Holmes氏。 Homes氏は、いまクラウドネイティブ関連のテクノロジーとして最も注目されていると言ってよい「eBPF」を紹介するセッション「Cloud Native Superpowers with eBPF」を行いました。 eBPFとはどのようなテクノロジーな

                                  「eBPF」がクラウドネイティブを超強力にする。eBPFとは何か? 何ができて、どんな利点があるのか? Cloud Native Days Tokyo 2022基調講演から
                                • IETFでeBPFの標準化の議論 - ASnoKaze blog

                                  先月行われたIETF 115において、eBPFの一部ドキュメントをIETFからRFCとして出すか?という議論が行われました。 まだ議論の段階で結論は出ていないが、簡単にメモとして残しておく。 なお、僕自身はKernel, eBPF方面に明るいわけではない... eBPF サイドミーティング IETFでは会期中に特定トピックについて議論するサイドミーティングが行われます。IETF 115において「eBPF standardization side meeting」が開催されました。 eBPF Foundationのほうからは、Dave Thaler氏らを中心にeBPF Steering Committeeから数名と、IETF参加者がサイドミーティングに出席したようです。 概要 eBPF Foundation は、eBPF クロスプラットフォーム ドキュメントをどこで公開するかについて検討して

                                    IETFでeBPFの標準化の議論 - ASnoKaze blog
                                  • The BPF extensible scheduler class [LWN.net]

                                    It was only a matter of time before somebody found a way to inject BPF into the CPU scheduler. This patch series, posted by Tejun Heo and containing work by David Vernet, Josh Don, and Barret Rhoden, does exactly that. The cover letter covers the motivation behind this work in detail: One of our main goals was to lower the barrier to entry for experimenting with the scheduler. sched_ext provides e

                                    • eBPFに3日で入門した話 - CADDi Tech Blog

                                      はじめに eBPF とはなにか ざっくり概要 「Packet Filter」なのに「Virtual Machine」? eBPFでなにができるか? カーネルイベントのフック ユーザーランドアプリケーションとのやりとり eBPFの主な用途 eBPFが注目される背景 eBPFの仕組み アーキテクチャと処理フロー カーネルモジュールとeBPFの違い eBPFプログラムの作り方 eBPFプログラムを作ってみる 環境の準備 Hello world もう少し複雑なサンプル その他のサンプル HTTPリクエストのダンプ TCP接続先の調査 tcplife dirtop filetop oomkill まとめ eBPFはなにに使えるか 参考サイト はじめに こんにちは、Platformチームの小森です。 eBPF (extended Berkley Packet Filter) について、2022年8月2

                                        eBPFに3日で入門した話 - CADDi Tech Blog
                                      • 詳説 eBPF 実装編 - VA Linux エンジニアブログ

                                        1. はじめに 2. 使用環境 3. コンパイル 4. opensnoopとは 5. opensnoop.bpf.cの解説 5.1 mapの宣言 5.2 BPFプログラムのメイン処理 5.2.1 33-68行目 5.2.2 88-124行目 5.2.3 プログラムタイプとコンテキスト 5.3 opensnoop.bpf.cのコンパイル 6. opensnoop.cの解説 6.1 ヘッダファイルのインクルード 6.2 BPFアプリケーションのメイン処理 6.3 231-232行目 6.4 opensnoop_bpf__open 6.4.1 bpf_object__init_maps 6.4.2 bpf_object_init_progs 6.5 241-245行目 6.6 opensnoop_bpf__load 6.6.1 bpf_object__create_maps 6.6.2 bpf_

                                          詳説 eBPF 実装編 - VA Linux エンジニアブログ
                                        • eBPFで実現するコンテナランタイムセキュリティ / Container Runtime Security with eBPF

                                          オンラインテックカンファレンス CloudNative Security Conference 2022 by CloudNative Days で発表した「eBPFで実現するコンテナランタイムセキュリティ」の登壇資料です。 https://event.cloudnativedays.jp/cnsec2022 資料内のURLは、PDFをダウンロードするとクリックで遷移できます。 eBPFはLinuxカーネルが提供する機能の一つで、近年、ネットワークやObservabilityといった文脈で注目を集めています。本セッションでは、セキュリティの観点から、eBPFを利用することで実現できることについて整理した上で、コンテナランタイムセキュリティを実現する具体的なeBPFツールとしてFalco、Tracee、Tetragonを紹介します。

                                            eBPFで実現するコンテナランタイムセキュリティ / Container Runtime Security with eBPF
                                          • 詳説 eBPF 概論編 - VA Linux エンジニアブログ

                                            1. はじめに 2. BPFとは 3. BPFで実現できること 4. BPFの仕組み 4.1 BPFプログラムを開発しClang/LLVMでコンパイルしてバイトコードにする 4.2 bpftoolでバイトコードからスケルトンヘッダを作成し、BPFアプリケーションで読み込む 4.3 BPFプログラムの結果を保存するmapを作成 4.4 BPFプログラムをカーネルにロード 4.5 イベントが発生したらBPFプログラムが実行され結果をmapに保存 5. BCCとは 5.1 BCC-Tools 5.2 BCCを使った開発 6. CO-RE 6.1 BPFプログラムをCO-RE対応する場合 6.2 CO-REの仕組み 7. おわりに 執筆者:稲葉貴昭 1. はじめに 本記事は近年注目されているeBPFについて、概論編と実装編に分け解説を行います。 概論編となる今回では、以下のことを解説します。 (1

                                              詳説 eBPF 概論編 - VA Linux エンジニアブログ
                                            • [レポート] 「eBPFってなんだ?」というタイトルの New Relic のセッションを聴講しました #devio2022 | DevelopersIO

                                              eBPF ってご存じでしょうか!(挨拶 eBPF はざっくりいうと、アプリケーションを含む Linux OS 内の動作を横から観測できる仕組みで、近年注目されることも多くなった技術です。最近 (?) Windows がサポートを開始したことも、記憶に新しいかたもいらっしゃるかと。 その仕組み上、セキュリティや開発(デバッギング)目的に使われることも多いですが、可観測性 (オブザーバビリティ) 目的としてみても非常に強力なものです。 本セッションはその可観測性プラットフォーム製品である New Relic が eBPF とどう関係しているか、 24 分ほどのスリムなセッションで、デモを交えてがっつり説明して頂けました。 なお、クラスメソッドがお送りする DevelopersIO 2022 イベントの全セッションはこちらから参照可能です: 以下、簡単にレポートします。 動画 (24 分) Yo

                                                [レポート] 「eBPFってなんだ?」というタイトルの New Relic のセッションを聴講しました #devio2022 | DevelopersIO
                                              • Trace Go program execution with uprobes and eBPF

                                                Weaver PLEASE READ! – I am currently refactoring Weaver to use libbpf instead of bcc which would include various other major improvements. If you’re currently using weaver please be aware that features/bug fixes are being held off until the major refactor occurs. This will be tracked in the branch “refactor” Weaver is a CLI tool that allows you to trace Go programs in order to inspect what values

                                                • Linuxカーネル内部をフックするeBPFを用いてセキュリティの可観測性を実現する「Tetragon」がオープンソースで公開

                                                  Linuxカーネル内部をフックするeBPFを用いてセキュリティの可観測性を実現する「Tetragon」がオープンソースで公開 Linuxカーネルを書き換えることなくその内部の機能をフックし、フック先でサンドボックス化されたプログラムを実行することにより、カーネルをプログラマブルに機能拡張できる「eBPF」(Extended Berkeley Packet Filter)は、クラウドネイティブ関連で最も注目されている技術の1つです。 eBPFを用いたソフトウェアとしては、CNI(Container Networking Interface)を用いてコンテナ間のセキュアな接続やロードバランシングなどさまざまな機能拡張を実現する「Cilium」がCloud Native Computing Foundationのプロジェクトとしてよく知られています。 今回、そのCiliumを開発するIsoval

                                                    Linuxカーネル内部をフックするeBPFを用いてセキュリティの可観測性を実現する「Tetragon」がオープンソースで公開
                                                  • Brendan@Intel.com

                                                    Recent posts: 24 Mar 2024 » Linux Crisis Tools 17 Mar 2024 » The Return of the Frame Pointers 10 Mar 2024 » eBPF Documentary 28 Apr 2023 » eBPF Observability Tools Are Not Security Tools 01 Mar 2023 » USENIX SREcon APAC 2022: Computing Performance: What's on the Horizon 17 Feb 2023 » USENIX SREcon APAC 2023: CFP 02 May 2022 » Brendan@Intel.com 15 Apr 2022 » Netflix End of Series 1 09 Apr 2022 » Te

                                                    • Netflix End of Series 1

                                                      Recent posts: 24 Mar 2024 » Linux Crisis Tools 17 Mar 2024 » The Return of the Frame Pointers 10 Mar 2024 » eBPF Documentary 28 Apr 2023 » eBPF Observability Tools Are Not Security Tools 01 Mar 2023 » USENIX SREcon APAC 2022: Computing Performance: What's on the Horizon 17 Feb 2023 » USENIX SREcon APAC 2023: CFP 02 May 2022 » Brendan@Intel.com 15 Apr 2022 » Netflix End of Series 1 09 Apr 2022 » Te

                                                      • Let's build a simple system calls monitoring dashboard using bpftrace and streamlit

                                                        % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 49.67 0.000301 301 1 execve 14.69 0.000089 11 8 mmap 6.44 0.000039 13 3 openat 4.46 0.000027 9 3 mprotect 4.46 0.000027 6 4 newfstatat 3.47 0.000021 5 4 pread64 3.14 0.000019 19 1 munmap 2.81 0.000017 8 2 close 2.64 0.000016 5 3 brk 2.15 0.000013 6 2 read 2.15 0.000013 13 1 1 access 1

                                                          Let's build a simple system calls monitoring dashboard using bpftrace and streamlit
                                                        • Red Hat Eyeing Innovative eBPF Uses For Linux's HID Subsystem - Phoronix

                                                          Show Your Support: This site is primarily supported by advertisements. Ads are what have allowed this site to be maintained on a daily basis for the past 19+ years. We do our best to ensure only clean, relevant ads are shown, when any nasty ads are detected, we work to remove them ASAP. If you would like to view the site without ads while still supporting our work, please consider our ad-free Phor

                                                            Red Hat Eyeing Innovative eBPF Uses For Linux's HID Subsystem - Phoronix
                                                          • Production ready eBPF, or how we fixed the BSD socket API

                                                            Production ready eBPF, or how we fixed the BSD socket API02/17/2022 As we develop new products, we often push our operating system - Linux - beyond what is commonly possible. A common theme has been relying on eBPF to build technology that would otherwise have required modifying the kernel. For example, we’ve built DDoS mitigation and a load balancer and use it to monitor our fleet of servers. Thi

                                                              Production ready eBPF, or how we fixed the BSD socket API
                                                            • Liz Rice on Programming the Linux Kernel with eBPF, Cilium and Service Meshes

                                                              Transcript Introductions [00:36] Charles Humble: Hello and welcome to the The InfoQ Podcast, I'm Charles Humble, one of the co-hosts of the show, and editor-in-chief of Cloud Native consultancy firm Container Solutions. My guest this week is Liz Rice. Liz is Chief Opensource Officer with cloud native networking and security specialists Isovalent, creators of the Cilium eBPF based networking projec

                                                                Liz Rice on Programming the Linux Kernel with eBPF, Cilium and Service Meshes
                                                              • Linux eBPFトレーシングのツール実装に必要な知識の体系化と動機

                                                                カテゴリー DX (2) 一般 (58) 研究会 (6) 働き方 (4) 技術 (351) Edge AI (2) Edge Computing (12) Erlang (1) FIWARE (2) Fog Computing (9) Infiniband (31) Internet of Things (32) Key Value Store (17) Linux (3) Linux KVM (10) Machine Learning (4) RealTime Web (14) SRE (2) Webサービス (42) インフラ (7) コンテナ (3) ストレージ (92) データセンター (7) データベース (47) データ流通 (6) テレプレゼンス (2) ネットワーク (214) 仮想化 (110) 災害コミュニケーション (26) 空間情報 (30) 量子コンピューティング

                                                                  Linux eBPFトレーシングのツール実装に必要な知識の体系化と動機
                                                                • Linux eBPFトレーシング技術の概論とツール実装 - ゆううきブログ

                                                                  eBPF(extended Berkley Packet Filter)という用語を著者が初めてみかけたのは、2015年ごろだった。最初は、eBPFをその字面のとおり、パケットキャプチャやパケットフィルタリングを担うだけの、Linuxの新しいサブシステムであろうと認識していた。しかし、実際にはそうではなかった。 システム性能の分析のための方法論をまとめた書籍Systems Performance 1 の著者で有名なBrendan Greggが、Linuxのネットワークサブシステムとは特に関係ない文脈で、古典的なシステム性能計測ツールでは計測できないことを計測するツールを作っていた。その計測ツールがeBPFという技術によって実装されていることを知ったときに、eBPFに興味をもったのだった。また、eBPFは、システム性能を調べる用途以外にXDP(eXpress Data Path)と呼ばれるプ

                                                                    Linux eBPFトレーシング技術の概論とツール実装 - ゆううきブログ
                                                                  • X'masにDeepなPacket処理、いかがですか? - ainnoooのブログ

                                                                    慶應理工 Advent Calendar 2021の14日目の記事です。 昨日の記事はこちら nageler.hatenablog.com この記事ではeXpressなDataのPath、その名もXDP!!!!についてゆるゆると書いていきたいと思います XDPとは何者 雑に動かしてみて感じ取るXDP デバドラコードから感じ取るXDP 大変参考になる資料たち SecHack365 XDPとは何者 XDPはLinuxカーネルに実装されている技術でして、高速なパケット処理を実現する方法の1つとされています。 なぜ高速なのかと言いますと、XDPではNICのデバイスドライバの段階でパケットを処理するプログラムを動かすことが出来るのです。NICというのはNetwork Interface Cardのことでして、フレーム(パケット)を受信するハードウエアです。このハードウエアをOS側から制御するソフトウ

                                                                      X'masにDeepなPacket処理、いかがですか? - ainnoooのブログ
                                                                    • RustでeBPFを操れるAyaを触ってみた - Qiita

                                                                      はじめに LKML(Linux Kernel Mailing List)に Rust support パッチシリーズ v2 が最近流れましたね。Linux カーネルを Rust で直接触れるようになる日ももうすぐかなと、クリスマス以上に待ち遠しい限りです。その前に、Linux カーネルの勉強をし直さなくちゃ。 もうひとつ、カーネル向けの Rust の営みとして以前から注目していたのが、Rust で eBPF を操ることができる Aya というプロジェクトです。良い機会なので、ちょっとだけ触ってみました。 eBPF とは eBPF の元となった BPF は、その名前の由来である The BSD Packet Filter(Berkley Packet Filter とも呼ばれる)が示す通り、BSD 版 Unix に実装されたレジスタベースの仮想マシンによるパケットフィルタ機構です。安全かつ効

                                                                        RustでeBPFを操れるAyaを触ってみた - Qiita
                                                                      • 第695回 入門BPF CO-RE | gihyo.jp

                                                                        第694回ではポータブルなBPFバイナリを作成できる、BPF CO-REのビルド方法を紹介しました。今回はより実践的なコードを使って、いろいろなツールを作ってみましょう。 BPF CO-REの基本と事前準備 BPF CO-RE(Compile Once - Run Everywhere)については第694回でも言及しましたが、簡単に言うとeBPFとは「カーネルやプロセスの挙動を、それらを再コンパイルすることなく調べるためのツール」であり、BPF CO-REが「移植性のあるeBPFバイナリを作成するための仕組み」になります。 また、カーネル内部で動くBPFオブジェクトは、libbpfによってカーネルにロードされます。よってユーザーランド側のツールは、libbpfを通してBPFオブジェクトをカーネルに渡し、BPFオブジェクトが生成したデータを収集しなくてはなりません。 BPFオブジェクト自体は

                                                                          第695回 入門BPF CO-RE | gihyo.jp
                                                                        • RubyKaigi takeoutでRuby to BPF compilerの話をした話 - ローファイ日記

                                                                          Rubyアドベントカレンダー(カレンダー2)の2日目です。 qiita.com 今見たらカレンダー2も半分以上埋まってて嬉しい... Ruby is alive now!!! ということで、RubyKaigi takeout 2021の振り返りも兼ねて作ったものの話です。 rubykaigi.org Rucy: A Ruby Compiler github.com RucyはRubyのスクリプトをコンパイルして直接特定のフォーマットのバイナリを吐き出すツールです。今のところBPFのバイナリにのみ対応しています。 ちなみに "Ru"by "C"ompiler -> RuC -> Rucy という経緯で、Rucyという綴りがそれなりにRubyと空目する点含めて(?) 気に入った名付けです。 Rucyについて把握する前にBPFの説明からしないといけないのですが、要するにLinuxの機能の一つで、

                                                                            RubyKaigi takeoutでRuby to BPF compilerの話をした話 - ローファイ日記
                                                                          • 第694回 libbpfとclangでポータブルなBPF CO-REバイナリ作成 | gihyo.jp

                                                                            第688回と第690回では、カーネルのトレーシングツールとして注目されているeBPFを活用するためのツールとしてBCCを紹介しました。 また第692回ではBCC以外のeBPFを活用したツールの利用方法も紹介しています。 今回は一般的なコンパイラのようにバイナリを生成でき、移植性が高く、そして近い将来eBPFを使うための本流のひとつとなりそうなBPF CO-REについて紹介しましょう。 BPF CO-REの登場 BPF CO-RE(Compile Once - Run Everywhere)については第692回でも軽く紹介しました。改めてまとめると、次のような機能を実現する仕組みです。 BPFを利用したバイナリを実行環境とは異なる環境でビルドできる カーネルバージョン間の違いもある程度は吸収してくれる 実行バイナリのサイズはそれなりに小さくなる コンテナ内部などターゲットと異なるカーネルが動

                                                                              第694回 libbpfとclangでポータブルなBPF CO-REバイナリ作成 | gihyo.jp
                                                                            • BPF and async Rust

                                                                              With libbpf-rs, bindings to libbpf (canonical C BPF library), building BPF applications in Rust is easy. However, libbpf-rs doesn't work with async/await. Say, to send information from kernel with BPF over protocols like gRPC, you have to implement lots instead of using the existing async libraries. To address the above problem, I implemented libbpf-async, complementary to libbpf-rs, providing API

                                                                                BPF and async Rust
                                                                              • XDP入門

                                                                                こんにちは.閃光のハサウェイが配信開始されたので早速視聴しました.メッサーがいいですね. 前回もXDP関連の話題でしたが,今回はXDPに入門します. XDPを学習する際のロードマップやつまりどころの解消になればと思います. # 2023-12-30 加筆 本記事を公開して約 2 年が経過しました. この加筆で古くなってしまった情報を修正しています. 差分は このブログの Github の PR (opens new window) を見てください. この 2 年間で eBPF 及び XDP への注目はさらに高まったように感じます. 取得できる情報も充実してきました. 特に O'reilly より発売された 入門 eBPF (opens new window)(原書: Learning eBPF (opens new window)) は非常に充実した内容になっています. 日本語でこれらの情

                                                                                • 大規模Kafkaクラスターで起きたリクエスト遅延 どのように問題を特定して解決したか

                                                                                  2021年11月10日と11日の2日間、LINE株式会社が主催するエンジニア向け技術カンファレンス「LINE DEVELOPER DAY 2021」がオンラインで開催されました。そこで岡田遥来氏が、LINEで最もよく使われるミドルウェアの1つ「Kafka」クラスターのリクエスト遅延を、どのように解決したかについて紹介しました。後半は、実際どのように問題を特定して解決したかについて。前半はこちら。 TCP windowの概念について 岡田遥来氏:さて、このようにブローカーがSYN flood状態になって、一部のクライアントのhandshakeがSYN Cookiesを使ったフローにフォールバックしてしまっていたことがわかったわけですが、実はこのSYN Cookiesというのは、TCPスループットの悪化を引き起こすケースがあるということが知られています。これについて見るために、まずはTCP w

                                                                                    大規模Kafkaクラスターで起きたリクエスト遅延 どのように問題を特定して解決したか