並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 180件

新着順 人気順

BPFの検索結果1 - 40 件 / 180件

  • 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
        • Linuxカーネルの新機能 XDP (eXpress Data Path) を触ってみる - yunazuno.log

          先日netdev 1.2に参加してみたところ,XDP(eXpress Data Path)の話題で持ち切りといった感じだった. というわけで,XDPについて一通り調べつつ,実際に触ってみた. XDPとは何か? 誤解を恐れずに一言で言うと,「Intel DPDKのような高速パケット処理基盤をLinuxカーネル自身が用意したもの」であると理解している.このスライドでは A programmable, high performance, specialized application, packet processor in the Linux networking data path と言っている. DPDKはユーザランドアプリケーションがNICを直接叩く(=カーネルのネットワークスタックをバイパスする)ことで高速処理を実現している.一方XDPは,カーネル内の最もNICドライバに近い場所でフッ

            Linuxカーネルの新機能 XDP (eXpress Data Path) を触ってみる - yunazuno.log
          • 「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
                          • パケットフィルターでトレーシング? Linuxで活用が進む「Berkeley Packet Filter(BPF)」とは何か (1/3):Berkeley Packet Filter(BPF)入門(1) - @IT

                            パケットフィルターでトレーシング? Linuxで活用が進む「Berkeley Packet Filter(BPF)」とは何か:Berkeley Packet Filter(BPF)入門(1)(1/3 ページ) Linuxにおける利用が急速に増えている「Berkeley Packet Filter(BPF)」について、基礎から応用まで幅広く紹介する連載。初回は、BPFの歴史や概要について。 Berkeley Packet Filter(BPF)とは 読者の皆さんは「Berkeley Packet Filter(BPF)」というものをご存じでしょうか? Berkeley Packet Filter(BPF)は、独自の命令セットを持つ仮想マシンの一つ。ざっくりと言ってしまえばBPFはユーザーランドからのコードをカーネル内で安全に実行するための枠組みです。 「Packet Filter」という名称

                              パケットフィルターでトレーシング? Linuxで活用が進む「Berkeley Packet Filter(BPF)」とは何か (1/3):Berkeley Packet Filter(BPF)入門(1) - @IT
                            • LinuxのBPF : (1) パケットフィルタ - 睡分不足

                              はじめに BPFの基礎 BPFの構造 BPFでのフィルタリング レジスタマシン LinuxでのBPF BPFを利用したパケットフィルタリング libpcapとBPF ここまでのまとめ 参考文献 その他参考URL はじめに BPFはBerkeley Packet Filterの略で,1993年に効率的なパケットフィルタリング手法として提案されました[1] *1. BPFの構成要素は大きく2つあって,一つがネットワークからパケットをキャプチャする部分,そしてもう一つがキャプチャした パケットをフィルタリングする部分です.BPFといった場合,後者のフィルタリング機構だけを指すことも多いです. FreeBSDなどのBSD系のOSでは/dev/bpf*という特別なデバイスがあって,このBPFを利用することができます.また, Linuxでもパケットフィルタリング(Linux Sokcet Filter

                                LinuxのBPF : (1) パケットフィルタ - 睡分不足
                              • 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
                                        • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

                                          はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

                                            はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
                                          • perf, ftraceのしくみ - 睡分不足

                                            Linuxのトレーサーであるperfやftraceのツールの使い方に関する情報は結構ありますが,構造に関してはあまり見つけられなかったため,ここに簡単に調べたことをまとめようかと思います.(ツールの使い方の説明はあんまりしないです.) この文章はLinux 4.15のソースに基づいています. 全体像 ftrace function trace tracepoint (static event) kprobe (dynamic event) その他のtracer trace-cmd perf PERF_TYPE_HARDWARE, HW_CACHE, RAW PERF_TYPE_SOFTWARE PERF_TYPE_TRACEPOINT PERF_TYPE_BREAKPOINT USDT (SDT Event) perf-tools perf ftrace straceとの比較 その他 pe

                                              perf, ftraceのしくみ - 睡分不足
                                            • 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 »

                                                    • eBPF の紹介 - Qiita

                                                      富士通の非公式Advent Calendar 2018 9日目 の記事です。記事の内容は個人の見解であり、所属する組織を代表するものではありません。 はじめに Linux kernel の比較的新しい機能である eBPF について簡単に調べてみたので、その概要と使い方を紹介します。 eBPF は extended Berkeley Packet Filter の略で、ざっくり言うと、ユーザ空間で作成したプログラムをカーネルに送り込んで、独自の命令セット を持つカーネル内部の仮想マシン(以下VM)上で実行できる機能です。名前の通り、eBPF は BPF(Berkeley Packet Filter)と呼ばれる古くからあるパケットフィルタの技術を拡張したもので、パケットフィルタに限らず OS 用途一般に使えるようになっています。 システムに危険を及ぼす可能性のあるコードは、事前のチェックで検出

                                                        eBPF の紹介 - Qiita
                                                      • 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)) は非常に充実した内容になっています. 日本語でこれらの情

                                                        • iptablesを置き換えるBPFをコンテナネットワークに使うCilium | Think IT(シンクイット)

                                                          iptablesの課題を解消し、高速で安全な通信を実現するCiliumとはなにか? KubeConでのプレゼンテーションをベースに解説する。 コンテナを用いたクラウドネイティブなシステムに移行しようとすると、従来の仮想マシンベースのシステムよりも粒度の細かいコンテナワークロードをオーケストレーションする必要がある。昨今Kubernetesが注目されているのは、そのためだ。その際にコンテナ間のネットワークをどのように構成するのか? は、インフラストラクチャーエンジニア、ネットワークエンジニア双方にとって頭が痛い問題である。特に多くのコンテナが連携するシステムであれば、コンテナ間のトラフィックを遅延なく通信させることが重要になる。 またIstioのように、サービスメッシュとしてPodの中にProxyをサイドカーモードで構成する場合、コンテナとProxyの間にも通信が発生し、ますますオーバーヘッ

                                                            iptablesを置き換えるBPFをコンテナネットワークに使うCilium | Think IT(シンクイット)
                                                          • Socket migration for SO_REUSEPORT (Part 1) - Kuniyuki Iwashima

                                                            TCP ソケットと `SO_REUSEPORT` オプションに関する問題を解決するために Linux カーネル v5.14 から取り込まれる予定のパッチセットについて 2 回に分けて解説します。 - https://lore.kernel.org/bpf/20210612123224.12525-1-kuniyu@amazon.co.jp/ - https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=1f26622b791b6a1b346d1dfd9d04450e20af0f41 Part 1 では `SO_REUSEPORT` オプション、カーネルの挙動と問題点、パッチセットの効果について解説し、 Part 2 ではカーネルの実装と修正方法、追加した eBPF の機能について解説します。 ##

                                                              Socket migration for SO_REUSEPORT (Part 1) - Kuniyuki Iwashima
                                                            • パケットキャプチャの実装方法 - Plan9日記

                                                              ネットワークアプリケーションの解析やデバッグなどにパケットキャプチャ(もしくはスニファ)は必須の機能で、UNIXであればtcpdump、snoop、wireshark*1、Plan 9であればsnoopyなどが存在する。パケットを横から盗み見するために、OSごとにいろんなアプローチを取っている。ある機能をどのように実装するかで、そのOSの設計哲学が透けて見えてくるかもしれない。ということで、今日はパケットキャプチャの実装方法について調べてみたい。 libpcap tcpdumpのパケットキャプチャ処理はlibpcapとして独立したライブラリになっていて、OS依存部分を隠蔽している。例えば、BSD系UNIXはBPF(Berkeley Packet Filter)、LinuxはPF_PACKETを利用してパケットキャプチャを実現している。より正確にはBPFはキャプチャとフィルタリングするのに対

                                                                パケットキャプチャの実装方法 - Plan9日記
                                                              • BPF Performance Tools: Linux System and Application Observability (book)

                                                                BPF Performance Tools: Linux System and Application Observability (book) 15 Jul 2019 BPF (eBPF) tracing is a superpower that can analyze everything, and I'll show you how in my upcoming book BPF Performance Tools: Linux System and Application Observability, coming soon from Addison Wesley. The book includes over 150 BPF observability tools that you can run to find performance wins and troubleshoot

                                                                • コンテナやコマンドなどのリソース単位で外部への意図しない通信をブロックする

                                                                  特定の外部ネットワークへの通信の制限にはファイアウォールなどを利用することが多いですが、コンテナや実行されたコマンド名などをもとに、通信を制御したいという需要が自分の中でありました。 具体的には GitHub Self-hosted runner のような CI / CD 環境で、依存パッケージに悪意あるコードが入り込んでしまうようなサプライチェーン攻撃などを検知・防御し、意図せずにクレデンシャルなどの秘匿すべき情報が外部に漏洩するのを防ぎたいと思っていました。 このようなサプライチェーン攻撃への対策は様々ですが、実行時に悪意のある動作を検出するものとして、GitLab が Falco をベースとした Package Hunter などがあります。このツールは依存パッケージなどをインストールする際に実行されるシステムコールなどを監視するものです。 検知するだけであれば Package Hu

                                                                    コンテナやコマンドなどのリソース単位で外部への意図しない通信をブロックする
                                                                  • 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を用いたトレーシングについて | さくらのナレッジ

                                                                      はじめに この記事では、Linuxカーネルに実装されているパケットフィルタであるeBPFを使ったトレーシングツール、具体的にはDTrace, SystemTap, bpftrace,bcc-toolsなどについて紹介させていただきます。この記事の目標を以下に示します。 DTraceやSystemTapを簡単に説明し、eBPFを用いたトレーシングのうれしいところをお伝えします。 bpftraceやbcc-toolsといったツールの簡単な使い方を紹介し、細かいツールを調べる上での足がかりになるようにします。 公式の資料がかなり充実していることをお伝えします。この記事で使っている画像はそこから使わせていただいています。 eBPF概説 eBPFは、Linuxカーネル3.15からBPF(Berkeley Packet Filter)の拡張仕様として導入されました。BPFはこれまでにもパケットフィルタ

                                                                        バグ調査やパフォーマンス改善に役立つ!eBPFを用いたトレーシングについて | さくらのナレッジ
                                                                      • [レポート] 「eBPFってなんだ?」というタイトルの New Relic のセッションを聴講しました #devio2022 | DevelopersIO

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

                                                                          [レポート] 「eBPFってなんだ?」というタイトルの New Relic のセッションを聴講しました #devio2022 | DevelopersIO
                                                                        • 詳説 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 エンジニアブログ
                                                                          • [CNDT2020]Linux Observability with BPF Performance Tools

                                                                            Admission Webhookで快適なSecret管理 / Berglas Secret Admission Webhook

                                                                              [CNDT2020]Linux Observability with BPF Performance Tools
                                                                            • 自作ロードバランサ開発

                                                                              概要 モバイル向け大規模サービスを運用する上で直面した問題を解決するため、ロードバランサの開発に取り組んでいる話をご紹介します。 最近徐々にユースケースが出始めたLinuxの高速パケット処理基盤 eXpress Data Path (XDP) を採用し、海外事業者における類似事例のアーキテクチャも参考にしつつ、高スループットかつDDoSに強いロードバランサを開発しています。 参考資料 本セッションの内容をより深くご理解頂く上で参考となる資料をご紹介します。 LINEのインフラ構成とその課題について LINEのインフラを運用して見えてきた課題 (JANOG39 発表資料) JANOG39登壇レポート「LINEのインフラを運用して見えてきた課題」 近年のロードバランサアーキテクチャについて ロードバランサのアーキテクチャいろいろ eXpress Data Path (XDP) について Lin

                                                                                自作ロードバランサ開発
                                                                              • DTrace for Linux 2016

                                                                                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 »

                                                                                • BPFを使ったLinuxにおけるトレーシングの基礎知識

                                                                                  BPFを使ったLinuxにおけるトレーシングの基礎知識:Berkeley Packet Filter(BPF)入門(8) Linuxにおける利用が急速に増えている「Berkeley Packet Filter(BPF)」について、基礎から応用まで幅広く紹介する連載。今回は、BPFを使ったLinuxにおけるトレーシングの基礎について。 Linuxにおける利用が急速に増えている「Berkeley Packet Filter(BPF)」について、基礎から応用まで幅広く紹介する連載「Berkeley Packet Filter(BPF)入門」。今回から数回にわたり、BPFの代表的な応用先の一つであるトレーシングに焦点を当て、その動作と利用方法を解説していこうと思います。今回はLinuxにおけるトレーシングの基礎を説明します。 トレーシングとは まず、そもそも「トレーシング」とは何でしょうか。字義的

                                                                                    BPFを使ったLinuxにおけるトレーシングの基礎知識