Slide 27
Slide 27 text
結果: ring書き込みで失敗しまくっていた
処理開始とRing書き込みの差から
失敗がすごい多い😇
●
eBPFの処理開始(取得対象): 116,395,873
●
ring書き込み完了: 5,205,544
●
Goの読み出し: 5,205,544
●
Go側での定期的な空き容量チェック: 全て失敗
○
●
読み込めた値は同じになってる
失敗1,024回に1回を確認して約5万回すべて失敗した
仮説: eBPF側はRingBufferを埋め切ることは成功してそう。
だとしたらGo側のReaderが空きの位置を返してあげれば、書き込み成功も増やせるのでは?
●
=> その仮説を調べるため、次にGo側のCPUプロファイラを見てみる
eBPF: Writer
空きがなければ書けない
ring: 有限の領域
読了位置で再利用する
Go: Reader
読み進めて空きを戻す
読了したという情報を返すのが遅いと書き込み側にも影響するのではないか?
27