# 2021年/春分(後) Linuxのリモート開発環境、eBPF Summit 2020、Dtrace論文、本の中の世界
Created: March 29, 2021 10:38 PM
Research: transtracer
Tags: ebpf, fukaborifm, go-conntracer-bpf, misreadingchat, textafm, 本の中の世界
Week: March 28, 2021 → April 4, 2021
身の回りがずいぶんと春めいてきて、桜のみごろのピークが訪れていた。近所の堀川に、スロープを降りていくと、川のほとりに整備されたこじんまりした散歩道があることに最近気がついた。散歩道には、桜の木がちらほらとみえるので、毎日のように昼と夜に散歩していた。
# Research
![[go-conntracer-bpf]]
![[Linuxのリモート開発環境]]
## BPF Performance Tools輪読会
6.2.5 Event Statistics and Tracingから.
perf statでカウントがとれる.
perf scriptはじめてしった.
perf schedもはじめてしった.CPUスケジュール解析に特化したサブコマンド.dump-and-post-processスタイル.
perf sched timehist
8コア1秒で1.9 Mbyteでコストがかかる.
代わりにBPFを使おう.runqlat,runqlen.
著者のperf-tools collectionではftraceを結構つかってる.カーネルが用意するカウンタを使ってるだけ.
# Clips
![[BPF for storage]]
## ![[eBPF Summit 2020 Day1]]
## 社内の技術研究部
ソフトウェア設計とドキュメンテーションのツールを紹介してもらった.
- GoのDIツール [https://github.com/google/wire](https://github.com/google/wire)
- Go with Open API.YAMLでAPI定義をコードジェネレータ [https://github.com/deepmap/oapi-codegen](https://github.com/deepmap/oapi-codegen)
- TypeScript with Open API [https://github.com/Himenon/openapi-typescript-code-generator](https://github.com/Himenon/openapi-typescript-code-generator)
- Docusaurus: Markdownでドキュメントとブログを記述・SPAを生成 [https://docusaurus.io/](https://docusaurus.io/)
- tbls: RDBのテーブルのドキュメントを自動生成 [https://github.com/k1LoW/tbls](https://github.com/k1LoW/tbls)
## [texta.fm](https://anchor.fm/textafm) #5
[5. Accelerate by texta.fm](https://anchor.fm/textafm/episodes/5--Accelerate-ethnjo)
最近知ったtexta.fm.最新エピソードは書籍"Accelerate"の話.邦訳本は「LeanとDevOpsの科学」.邦訳本が出版された瞬間買ったんだけど,積ん読したままだった.ずいぶんと学術的な内容になっているようで,学術的見地にたって,ソフトウェアデリバリーのプラクティクスと組織パフォーマンスの因果関係が明らかにされたことが貢献となっているらしい.これまではソフトウェアデリバリーの話はエモい話(おそらく主観的という意味)にならざるを得なかったけど,これからはこの本を土台として議論できていく.t_wadaさんとyasaichiさんのとても熱量のあるトークになっていて,これは読まなければという気持ちになった.まずは付録Aから読むとよいらしい.
Martin Flowerがこの書籍の存在を肯定しながらも、調査対象の母集団の偏りについて言及しており、今後様々な組織でこの調査結果を追認するような結果がでてくることを期待すると述べている。
[My Foreword to Accelerate](https://martinfowler.com/articles/accelerate-foreword.html)
## [fukabori.fm](http://fukabori.fm) MLOpsの話
[37. MLOpsとは?どのようにMLOpsを実装しているか? w/ kenta_sato3](https://fukabori.fm/episode/37)
Machine Learning: The High Interest Credit Card of Technical Debtより、2014年 GoogleのMLシステムでモデルの開発よりもデータの収集とか前処理などのほうが複雑で技術的負債となっていた。2017年 Google 下田さん MLOps 勉強会。2018年ごろから広がってきた。Google Cloud NEXT 18でMLOpsとはなにかの話があり、発表者の同僚とこの言葉を作ったとのこと。
[Machine Learning: The High Interest Credit Card of Technical Debt - Google Research](https://research.google/pubs/pub43146/)
[MLOpsの各社の定義まとめ - Qiita](https://qiita.com/arrowKato/items/0e664a1a9f3bfb6a0403)
## Known knowns, Known unknowns, Unknown unknownsの出典
[[Systems Performance 2nd Edition]]ndを読んでいたら、Prefaceにかかれていた。覚えておこう。
***“There are known knowns; there are things we know we know. We also know there are known
unknowns; that is to say we know there are some things we do not know. But there are also
unknown unknowns—there are things we do not know we don’t know.”***
**—U.S. Secretary of Defense Donald Rumsfeld, February 12, 2002**
Secretary of Defenseは国防長官。
## [misreading.chat](http://misreading.chat) DTrace論文
[#83: Dynamic Instrumentation of Production Systems](https://misreading.chat/2020/10/08/83-dynamic-instrumentation-of-production-systems/)
Dtraceの論文があったの知らなかった。USENIX ATC'04。
Dtraceは元はSolarisで実装されていて、今ではFreeBSDのメインラインに入っているはず。Linuxの実装もあるけど、メインラインには結局はいらなかった。中身は、eBPFとよく似ていて、kprobe/uprobe/tracepointのように、カーネルやユーザプログラムにプローブを仕込める仕組みがあって、カーネル内の確立されたVM上で計測コードを実行できる。eBPFとの大きな違いは、networkingの機能が(おそらく)ないことと、ユーザプログラムとデータを受け渡しをするためのmapsのようなデータ構造が(おそらく)ないこと。eBPFというよりbpftrace相当といえる。
![[本の中の世界]]