並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 298件

新着順 人気順

eBPFの検索結果1 - 40 件 / 298件

eBPFに関するエントリは298件あります。 linuxkernelBPF などが関連タグです。 人気エントリには 『WebAssemblyのWeb以外のことぜんぶ話す』などがあります。
  • WebAssemblyのWeb以外のことぜんぶ話す

    Kernel/Vm探検隊 online part2. 発表動画: https://youtu.be/brrm328XItM?t=8221

      WebAssemblyのWeb以外のことぜんぶ話す
    • 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のブログ
      • eBPFを使った自動テストツール「Keploy」がすごい

        この記事はKeployのバージョンv2.0.0-alpha53 を前提に執筆しております。 Keployとは KeployはeBPFを利用して取得できるWebアプリケーションの通信に関するトレース情報を元に、テストとそのテストの実行時に利用するスタブサーバーを生成することができるツールとなります。 公式サイトのトップには以下のようなスローガンが掲げられています。 2 minutes to 90% test coverage! テストに苦労した経験のある方は興味を惹かれるのではないでしょうか。 現在まだアルファ段階のプロジェクトですが、GitHubスター数は2683(2024/01/04現在)、CNCF Landscape にも掲載されているなど、一定の注目を集め始めているOSSです。 開発主体はプロダクトと同名のKeployというインド発のスタートアップで、去年GoogleによるインドのA

          eBPFを使った自動テストツール「Keploy」がすごい
        • 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 Performance

              static, benchmarking, tuning: sar, perf-tools, bcc/BPF: bpftrace, BPF book: Images license: creative commons Attribution-ShareAlike 4.0. This page links to various Linux performance material I've created, including the tools maps on the right. These use a large font size to suit slide decks. You can also print them out for your office wall. They show: Linux observability tools, Linux static perfor

              • 「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にもオープンソースで実装へ
                    • WebAssemblyはJVMやeBPFのリバイバルではない WasmがWeb以外でもアツい理由

                      Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。佐伯氏は、WebAssemblyのWebの外の応用について発表しました。全2回。前半は、Wasmがアツい理由とデザインゴールについて。 今回のテーマは「Kernel/VM的WebAssembly入門」 佐伯学哉氏(以下、佐伯):佐伯が『WebAssemblyのWeb以外のこと全部話す』というタイトルで発表します。 まず、WebAssemblyとは何ぞや? という一般的な話なのですが、「Wikipedia」からの引用によれば、「Webブラウザーのクライアントサイドスクリプトとして動作する低水準言語である。ブラウザー上でバイナリフォーマットのかたちで実行可能であることを特徴とする」とあります。 実際の応用例としては、WebでGoogle Meetの背景ぼかしに使われていた

                        WebAssemblyはJVMやeBPFのリバイバルではない WasmがWeb以外でもアツい理由
                      • 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」がオープンソースで公開
                        • なぜ Zig の採用を検討しているのか

                          かなり雑に書いてるので、雑に読んでください。 Bun が Zig で開発されていることを知り、そこから Zig を調べてみています。 調べていくと自分が求めていた言語っぽいというのがあり、社外では学生に QUIC や TLS 1.3 を Zig で OSS を開発してもらうお仕事を出したり、社内では実際に採用に向けて調査を進めています。 そもそもの目的自分の会社では Erlang VM を利用した製品をメインに利用しています。ただ Erlang VM 遅いんです。少なくとも暗号処理であれば Rust の方が 2 倍ほど速いです。Erlang VM 自体 JIT を採用したり、いろいろ頑張ってくれているのですが劇的な高速化というのは今すぐには難しいのが現実です。 そこで NIFs (Native Implemented Functions) を使って頑張るという戦略があります。早い話が Er

                          • 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」を結成
                              • Linuxコンテナの仕組み / eBPF & Container Study in Fukuoka

                                「eBPF & コンテナ情報交換会 @ 福岡」の発表資料です。 参考となる情報にはPDF中からリンクをしていますが、資料中のリンクは Speaker Deck 上ではクリックできないので PDF をダウンロードしてご覧ください。 デモの動画は https://asciinema.org/a/BbYcyk5vaFXk5RbOXWStDvj2Y です。

                                  Linuxコンテナの仕組み / eBPF & Container Study in Fukuoka
                                • 今年読んだ技術書籍(2019年)

                                  今年読んだ技術書籍やレポートなどをざっくりまとめてる.Infrastructure Engineer・Platfomerとして日々の業務に直結するものから1年くらいかけてやっていきたいと思っていることなどを中心に. Kubernetes 業務ではメインにKubernetesを使っているのでKubernetesに関わる書籍は発売されれば大体目を通すようにしている. 今年発売されたので良かったのはProgramming Kubernetes.この本はCRDやOperatorによってKubernetes nativeなアプリケーションを構築することにフォーカスしている.昨年のJapanContainerDaysでのMicroservices Platform on Kubernetes at Mercariでも話したようにKubernetesを使う大きな理由の1つはその拡張性にある.Kubebu

                                  • gRPCが遅すぎる?eBPFでカーネル内で動かす!

                                    gRPCの高速化への飽くなき追求(具体的な目標や目的なし)を続けてきましたが、まだ、遅すぎる!今回は、安全にLinuxカーネルに機能を追加できるeBPFという仕組みを使って、カーネル内で動作するgRPCサーバを実装しました。その結果、前回実装したRust版よりも2倍高速になりました! eBPFで安全なユーザコード実行eBPFを使えば、システムコール、パケットの受信など、カーネルで発生する様々なイベントに対して、私たちユーザが実装したコードを、カーネル内部で実行することができます。同じようにカーネルに機能を追加できるカーネルモジュールと違って、eBPFは、データ破壊など、システムの安定性に深刻な影響を与える危険なコードの実行を防ぐことができます。 eBPFで検索すると、たくさんの日本語の情報が見つかるXDPは、ネットワークインターフェイスのドライバのパケット受信時に、ユーザコードを実行する仕

                                      gRPCが遅すぎる?eBPFでカーネル内で動かす!
                                    • システムコールを速く漏れなくフックする方法 | IIJ Engineers Blog

                                      ptrace、Syscall User Dispatch:カーネルが提供している ptrace や Syscall User Dispatch のような機能は、ユーザ空間でシステムコールのフックを実装するために利用できます。ですが、これらを利用すると、元のユーザ空間プログラム内部でのシステムコール呼び出しのコストが大きくなり、結果として、性能が大きく劣化してしまいます。(要件1を満たせない) eBPF :eBPF のようなカーネル内の関数へフックを適用できる仕組みもありますが、eBPF は XDP のような場合を除くと、基本的にカーネルの挙動を変更するためには利用できないため、カーネル機能をユーザ空間でエミュレートする、といった用途には適していません。(要件5を満たせない) ライブラリ関数の置き換え:標準ライブラリ(libc 等)は、沢山のシステムコールのラッパーライブラリ関数を実装してお

                                        システムコールを速く漏れなくフックする方法 | IIJ Engineers Blog
                                      • 【ブクマ推奨】Rust、Go言語、コンテナ技術、PHP…言語系LT動画8本公開🎉 — TechFeed Conference「後夜祭」(5)

                                        「TechFeed Conference 2022後夜祭」第5弾!今回からはプログラミング言語のLTが中心!Rust、Go言語、コンテナ技術、PHPに関するLT動画を8本公開です! こんにちは、TechFeed CEOの白石です。 2022年5月14日に開催された「エンジニアの祭典」TechFeed Conference 2022は、「日本を代表するテックエキスパート50名による大LT大会」という前代未聞の取り組みとして、大盛況のうちに幕を閉じました。 ですが、TechFeed Conferenceはまだまだ終わりません! 本イベントは、エキスパートの貴重な知見を一人でも多くの方々に届けるべく、企画当初から 「全セッション、永久保存版」 を掲げて、アーカイブ化にも全力を尽くすと誓っておりました。 本日より6/10までの間、「TechFeed Conference 2022後夜祭」を開催しま

                                          【ブクマ推奨】Rust、Go言語、コンテナ技術、PHP…言語系LT動画8本公開🎉 — TechFeed Conference「後夜祭」(5)
                                        • Linuxカーネルを拡張する「eBPF」のWindows対応を進めるマイクロソフト。eBPFの代表的なアプリ「Cilium」をWindowsへ移植

                                          Linuxカーネルを拡張する「eBPF」のWindows対応を進めるマイクロソフト。eBPFの代表的なアプリ「Cilium」をWindowsへ移植 eBPF(Extended Berkeley Packet Filter)はクラウドネイティブ関連で最も注目されている技術の1つです。 CiliumやCalicoといったCNI(Container Network Interface)のためのプロジェクトでeBPFが採用され、昨年10月にはKubeCon+CloudNative Non NA 2021と同時に「Cloud Native eBPF Day North America」が開催されています。 eBPFとはLinuxカーネルを書き換えることなくその内部の機能をフックし、フック先でサンドボックス化されたプログラムを実行することにより、カーネルをプログラマブルに機能拡張できる機能です。これに

                                            Linuxカーネルを拡張する「eBPF」のWindows対応を進めるマイクロソフト。eBPFの代表的なアプリ「Cilium」をWindowsへ移植
                                          • eBPFプログラムを手軽にコーディング、ビルドし、コンテナ形式にパッケージングしてシェアできる「Bumblebee」オープンソースで登場

                                            eBPFプログラムを手軽にコーディング、ビルドし、コンテナ形式にパッケージングしてシェアできる「Bumblebee」オープンソースで登場 Linuxカーネルのソースコードを変更することなく、カーネルの持つさまざまな機能をフックすることでカーネルに対してプラグインのように機能拡張を実現する技術「eBPF」が、昨年から急速に注目されはじめています。 参考:Google、Facebook、マイクロソフトらが、OSカーネルをプログラマブルに拡張できる「eBPF」の開発と発展を目指す「eBPF Foundation」を結成 そのeBPFを手軽にコーディング、ビルドし、コンテナ形式にパッケージングしてシェアできるツール「Bumblebee」がオープンソースで公開されました。 開発しているのは、APIゲートウェイのGloo EdgeやサービスメッシュのGloo Meshなどの製品を展開しているSolo.

                                              eBPFプログラムを手軽にコーディング、ビルドし、コンテナ形式にパッケージングしてシェアできる「Bumblebee」オープンソースで登場
                                            • eBPFでDockerの--passwordで入力したパスワードを盗む | κeenのHappy Hacκing Blog

                                              κeenです。以前の記事の続きで、 /proc を監視するのではなくeBPFで取得してみます。ついでにRustのコードをeBPFで動かせるライブラリのayaも使ってみます。 以前の記事では /proc 以下の監視をビジーループで回すという力技で新しく作られたプロセスを補足していました。これだとCPU使用率が上がって美しくありませんし、何より原理的には見逃しもありえてしまいます。そこでカーネルの機能を使って全てのプロセスの作成を監視して低CPU使用率かつ捕捉率100%の実装を目指します。 eBPFとは? なんかLinuxカーネルでユーザの書いたコード動かせるやつです。私は説明できるほど詳しくないので適当にググって下さい。 1つやっかいな点として、独自のバイナリを動かすのでカーネル内で動かすコードはコンパイラがeBPFに対応したものでないといけません。また、カーネル内で動かすコードをユーザラン

                                                eBPFでDockerの--passwordで入力したパスワードを盗む | κeenのHappy Hacκing Blog
                                              • 2022年に注目したいCloudNative関連技術 | gihyo.jp

                                                あけましておめでとうございます。サイバーエージェントの青山真也(@amsy810)です。今年の新春企画では、2022年にも動向を見ていきたいと思っている、2021年のCloudNative関連のトピックを紹介します。項目としてはeBPF、WebAssembly(Wasm⁠)⁠、複数Kubernetesクラスタの管理・連携、CNCF Technical Advisory Groups(TAGs)によるWhitepaperを取り上げていきます。 eBPF eBPFは、カーネルのソースコードの変更なしに任意のプログラムをカーネルに組み込み、カーネル空間で任意の処理を実行するための仕組みです。CNCFのプロジェクトでは、Cilium・Calico・Falco・Pixieなどで利用されています。 CloudNative領域でのeBPFは、ネットワーク関連での利用が一番活発です。eBPFを利用したCN

                                                  2022年に注目したいCloudNative関連技術 | gihyo.jp
                                                • 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 | サイボウズエンジニアのブログ
                                                                  • Istio、サイドカーパターンを不要にする「Ambient Service Mesh」機能をメインブランチに統合、正式な機能へ

                                                                    Istioは、サービスメッシュを実現する新たな仕組みとして試験的に開発していた「Ambient Service Mesh」をメインブランチに統合し、正式な機能として組み込んで行く方針であることを発表しました。 現在のIstioは、各サービス(≒KubenetesのPod)ごとにプロキシを配置し、サービス間のネットワークをプロキシ経由で構成することによってサービスメッシュを構築しています。これによりサービス間の通信のトラフィックコントロール、暗号化、可観測性(オブザーバビリティ)などの機能が実現されるわけです。 この仕組みは、サービスの隣にプロキシを配置することから、「サイドカー」パターンなどと呼ばれています。 しかしPodごとにサイドカーをデプロイする必要があるため、これにかかる手間やリソースの消費が課題でした。 eBPFを用いたサイドカーフリーなCiliumへ注目が集まる そうした中で最

                                                                      Istio、サイドカーパターンを不要にする「Ambient Service Mesh」機能をメインブランチに統合、正式な機能へ
                                                                    • 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)) は非常に充実した内容になっています. 日本語でこれらの情

                                                                            • 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
                                                                              • ipftrace2で始めるLinuxネットワークスタック探訪 - Qiita

                                                                                皆さんはLinuxネットワークスタックの問題にあたってしまった時、あるいは単なる興味でLinuxネットワークスタックの中を調べたいと思い立った時、どのようにして調査を進めますか?カーネルのソースコードに printk を仕込んでカーネルを再コンパイルするでしょうか?もしくは最初からソースコードを読むという強い方もいらっしゃるかもしれません。どちらの方法もなかなかの茨の道です。おそらく、ほとんどの方は最終的にftrace やbpftraceなどのDynamic Tracingツールを使って、カーネルの動作を実際に動かしながら見るという方法に至ると思います。 この記事では ipftrace2 というDynamic Tracingツールの基本的な使い方をサンプルとともに紹介します。ipftrace2はネットワークスタック、特にパケット処理の部分をトレーシングをすることに特化した作りになっており、

                                                                                  ipftrace2で始めるLinuxネットワークスタック探訪 - Qiita
                                                                                • コンテナやコマンドなどのリソース単位で外部への意図しない通信をブロックする

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

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

                                                                                  新着記事