この日誌の更新が滞ってしまった。日単位でページを切ると細切れになりすぎて、あとで見返しづらいと感じたので、毎日少しずつ書いていって、1週間単位で記録してみる。
# Transtracerの研究
ジャーナル化に向けて、年末から手法の改良を進めている。
[yuuki/go-conntracer-bpf](https://github.com/yuuki/go-conntracer-bpf)
eBPFを利用して、TCP/UDP接続イベントをカーネル内で集約し、集約されたイベントをユーザランドで受信するためのライブラリとして実装しつつある。だいたい動くようになったので、あとは評価実験の準備を進めている。tools以下にconntopというCLIを用意していて、基本的にはconntopを叩いて、動作を確認している。
[Low-level advice for systems research](https://lalith.in/2020/09/27/Low-Level-Advice-For-Systems-Research/)
昨年のACM/IFIP Middleware'20のDoctorialセッションの講演をみてから、テストや実験インフラストラクチャの自動化をちゃんとやろうと思うようになった。`Automate your experiments like a maniac` と書かれていて、Gitのコミットごとに各環境のメタデータを収集しつつ、実験が自動で実行され、結果のレポートが保存される話があった。ここまでやるのかとさえ思うほど、実験が自動化されている。
実験用の負荷環境を作成するために、connperfと呼んでいる負荷生成ツールを作った。パラメータ、具体的にはconnections per secを思い通りにする。wrk + nginxでKeepalive offにすればrequests per secは理屈上connections per secと同じになるはずなのだが、うまくできなかった。
[yuuki/connperf](https://github.com/yuuki/connperf)
さらに、トレースの負荷を実験するには、2つのVM間で、connperfを指定したパラメータで起動しつつ、トレースプログラムを走らせて、トレースプログラムのCPU負荷を計測しないといけない。パラメータはそれなりにあるのと、プログラムを変更したときや実験のミスが発覚したときに、また再実験しないといけないので、一回コマンドを打ったら、全ての操作を自動で実行できるようにしておきたい。
そこで、次のshawk-experimentsに自動化のためのコードをまとめている。
[yuuki/shawk-experiments](https://github.com/yuuki/shawk-experiments)
マイクロベンチマークはどうしようかな。BPFのレイテンシは計測できそうだけど、CPU負荷がなぜ削減したかを直接計測するのはすこし難しいかも知れない。カーネル・ユーザ間のイベント転送部分だけのCPU負荷を計測するなんてできるのだろうか。そこのイベント転送数の変化とCPU負荷の変化が対応していることを示せばいいかな。
興がのってしまって、もともと考えていたジャーナル提出の予定を大幅に超過しているので、そろそろ論文の修正に入りたい。
# 思索コーナー
### ![[科学と技術、そしてエンジニアリング]]
# 徒然コーナー
## ![[分散システムに対する誤謬]]
## 複雑適応系とネットワーク
ネットワークを複雑適応系としてみなす話.4年前ぐらいに,分散システムを一般システム理論で捉える妄想をしていたことがあって,あまり日本語でそういう話はみかけないので興味深い.
[ネットワーク・エンジニアリングから学ぶこと − システム理論の見地から - Qiita](https://qiita.com/mkohno/items/0c02ef8f76415208bd4e)
[システム理論の続き - 宣言的ネットワーキング - Qiita](https://qiita.com/mkohno/items/ac83cf461632fbf4d862)
## Go 1.16
Go 1.16のリリース 🎉
[The Go Blog](https://blog.golang.org/go1.6)
すぐ使いそうなのは、go:embedとsignal.NotifyContext。
## ![[Fireworq 2021年振り返り]]
### エッジ
[https://twitter.com/two2mi/status/1362024607373385729](https://twitter.com/two2mi/status/1362024607373385729)
## Rust
[https://twitter.com/yuuk1t/status/1360482285850533890](https://twitter.com/yuuk1t/status/1360482285850533890)
## TUI grep
[https://twitter.com/yuuk1t/status/1361856682607800320](https://twitter.com/yuuk1t/status/1361856682607800320)
エッジコンピューティングはまだ現実の基盤やアプリがあまりないこともあって、問題設定が難しく、2年前に検討を進めてから、一旦白紙にしている。
それでも、たまにこういう反応をいただくと、励みになる。
AWSのWavelengthを検証されているとのこと。