並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 20 件 / 20件

新着順 人気順

BPFの検索結果1 - 20 件 / 20件

  • BPF Performance Toolsを読んだ感想 - go_vargoのブログ

    BPF Performance Toolsを読んだので、感想ブログです。 先に感想を言っておくと「最高」でした。 BPF Performance Toolsとは? NetflixでKernel・パフォーマンスにかかわるチューニング・アーキテクチャを専門にしているBrendan Greggさんが書いた本です。BPFのiovisorというTracing分野の第一人者でもあります。 www.brendangregg.com 2019年12月に発売したばかりなので、BPFの分野では最新の本でしょう。他の著書に有名な本として(日本語版の)「詳解システム・パフォーマンス」があります。 BPF Performance Toolsは「詳解システム・パフォーマンス」第二弾と言えるかもしれません。ちなみにページ数は880Pあり、Kindleで表示される読み終わるための平均的な時間は「27時間30分」で、大作R

      BPF Performance Toolsを読んだ感想 - go_vargoのブログ
    • 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トレーシング技術の概論とツール実装 - ゆううきブログ
      • 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」がクラウドネイティブを超強力にする。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基調講演から
          • RustでLinuxカーネルの機能を拡張しよう!

            Linuxカーネルの機能を安全に拡張できるeBPFのコードはC言語で実装する必要があると知り、がっかりしているクラウドネイティブ 世代の皆様に朗報です。実は、Rustで、eBPFのコードを実装することができます。今更、C言語(クラウドネイティブ ではない感じ)を学ぶ必要はありません! eBPFとプログラミング言語eBPFを活用するソフトウェアは、カーネルスペースで動作するeBPFバイトコードと、eBPFバイトコードを制御するユーザスペースのアプリケーションから構成されます。後者は、Go、Python、Rustなど様々なプログラミング言語で実装することができますが、前者は、制限のあるC言語で実装する必要があります。 eBPFの構成Rust用eBPFライブラリRustでeBPFを扱う一般的な方法は、libbpf-rsライブラリです。これは、C言語でユーザスペースのアプリケーションを実装するため

              RustでLinuxカーネルの機能を拡張しよう!
            • WindowsがまたLinuxを取り込む。マイクロソフト、Linuxカーネルが備える拡張機能「eBPF」互換機能をWindowsにもオープンソースで実装へ

              マイクロソフトは、Linuxカーネルが備えている拡張機能である「eBPF」の互換機能を、Windows 10とWindows Server 2016以降で実現するオープンソース「eBPF for Windows」を発表しました。 カーネルのコードを書き換えずに機能を拡張できるeBPF eBPFとは、Linuxカーネルを変更することなく、カーネルの持つさまざまな機能をフックすることにより、カーネルに対してある種の機能拡張を実現するものです。下記は、eBPFのWebサイトにある説明を引用したもの。 eBPF is a revolutionary technology that can run sandboxed programs in the Linux kernel without changing kernel source code or loading kernel modules.

                WindowsがまたLinuxを取り込む。マイクロソフト、Linuxカーネルが備える拡張機能「eBPF」互換機能をWindowsにもオープンソースで実装へ
              • 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」がオープンソースで公開
                • BPFを利用し、Linuxカーネルのパラメータを継続的に自動チューニングする「bpftune」。オラクルがオープンソースで公開

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

                    BPFを利用し、Linuxカーネルのパラメータを継続的に自動チューニングする「bpftune」。オラクルがオープンソースで公開
                  • Google、Facebook、マイクロソフトらが、OSカーネルをプログラマブルに拡張できる「eBPF」の開発と発展を目指す「eBPF Foundation」を結成

                    Google、Facebook、マイクロソフトらが、OSカーネルをプログラマブルに拡張できる「eBPF」の開発と発展を目指す「eBPF Foundation」を結成 eBPFとは、Linuxカーネルのコードを変更することなく、カーネルの持つさまざまな機能をフックすることでカーネルに対してある種の機能拡張を実現する技術です。 このeBPFの開発促進や発展を目指す「eBPF Foundation」が、Linux Foundation傘下で発足しました。発足メンバーはGoogle、Facebook、マイクロソフト、Netflix、Isovalentの5社。 一般にOSカーネルの機能の変更や拡張を行うには、カーネルのソースコードを書き換え、再コンバイルしなければなりません。そのため、例えばカーネル内のネットワーク関連の機能を拡張してプロトコルやセキュリティを追加したいと思っても、その実現には手間が

                      Google、Facebook、マイクロソフトらが、OSカーネルをプログラマブルに拡張できる「eBPF」の開発と発展を目指す「eBPF Foundation」を結成
                    • 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
                      • TCP-BPF: Linuxはマイクロカーネルの夢を見るか|oraccha

                        eBPFでcommit logを調べてみるといろいろと面白そうなものが出てくるな。例えば、TCP-BPF [netdev 2.2]。TCPコネクションのパラメータをBPFで操作できる。さらに最近(バージョン5.5以降)では、輻輳制御もeBPFで実装できるようになっているようだ。eBPFによりカーネルからどんどん機能を追い出してLinuxはマイクロカーネル化するのだという鼻息荒い発表も見かけるが(「eBPF - Rethinking the Linux Kernel」[QCon2020])、正直これが正しい方向性なのかよくわからない。面白いけど。 eBPFを使っているわけではないが、輻輳制御をユーザレベルで実装するという研究はいくつかある(「Restructuring Endpoint Congestion Control」 [SIGCOMM2018]、「Deploying Safe Use

                          TCP-BPF: Linuxはマイクロカーネルの夢を見るか|oraccha
                        • NginxでのeBPFとSO_REUSEPORTを使ったQUICコネクション受信処理

                          はじめに2021年7月12日にNgnixブログに掲載された記事 “Our Roadmap for QUIC and HTTP/3 Support in NGINX” では、QUICとHTTP/3機能を2021年末にはメインラインへマージする計画が言及されています。現在のHTTP3/QUIC対応Nginxは、専用の開発ブランチ (nginx-quic)で開発が進められていますが、常に最新のリリース (7月26日時点で1.21.1)を取り込んでおり、HTTP3/QUIC以外の最新機能も利用可能です。筆者も、昨年から開発ブランチの動作を試しており、HTTP3/QUICでの大きな負荷をかけても良好なパフォーマンスを示しています。 さて、Nginxブログで言及されたHTTP3/QUICに関する機能の一つとして、“eBPFを使ったマルチプロセスアーキテクチャ” という項目がありました。QUIC特有の仕

                            NginxでのeBPFとSO_REUSEPORTを使ったQUICコネクション受信処理
                          • BPF Performance Tools (Book)

                            Recent posts: 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 Mar 2022 » Why Don't You Use ... 26 Sep 2021 » The Speed of Time 06 Sep 2021 »

                            • きっと明日から役立つeBPFのしくみ

                              第15回カーネル/VM探検隊での発表. eBPFのローダの仕組みやVerifierの仕組みなどについて1つのeBPFプログラムを題材に掘り下げます.

                                きっと明日から役立つeBPFのしくみ
                              • 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トレーシングのツール実装に必要な知識の体系化と動機
                                • eBPF - The Future of Networking & Security

                                  Nov 10, 2020eBPF - The Future of Networking & Security Today is an exciting day for the Cilium community: Isovalent, the company behind Cilium, is announcing its $29M Series A financing round backed by Andreessen Horowitz, Google, and Cisco. This is a perfect occasion to take a deeper look into where eBPF-based networking is coming from and to understand what the excitement is all about. Two weeks

                                    eBPF - The Future of Networking & Security
                                  • 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カーネルトレース入門
                                    • bpftraceを使ってバイナリの謎の性能劣化を突き止めろ - Cybozu Inside Out | サイボウズエンジニアのブログ

                                      サイボウズ社内ではC++で開発している製品があります。 未知のバッファオーバーランなどの脆弱性への対策として、重要なコンポーネントについてはプロダクション環境で利用しているバイナリでも AddressSanitizer を有効にしてビルドしています。 その製品で利用しているコンパイラをgcc5.3.0からgcc7.5.0に更新したところ性能劣化が発生しました。 製品コードとは別の部分が原因のため、根本原因の追跡が難しそうです。perf,bpftraceを使って性能劣化を追いかけてみましょう。 本記事で利用しているAddressSanitizer, bpftrace, perfコマンドはネット上に良質な記事がありますので、使い方などの解説は今回は省略させていただきます。 gcc7.5.0において、性能劣化が発生する再現コードとして次のようなものを用意しました。 #include <strin

                                        bpftraceを使ってバイナリの謎の性能劣化を突き止めろ - Cybozu Inside Out | サイボウズエンジニアのブログ
                                      • bpftraceによるGoアプリケーションのトレース|hayajo

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

                                          bpftraceによるGoアプリケーションのトレース|hayajo
                                        • BPF: A New Type of Software

                                          Recent posts: 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 Mar 2022 » Why Don't You Use ... 26 Sep 2021 » The Speed of Time 06 Sep 2021 »

                                          1