ローファイ日記

出てくるコード片、ぼくが書いたものは断りがない場合 MIT License としています http://udzura.mit-license.org/

2019-10-01から1ヶ月間の記事一覧

11月はたくさん喋りますという話

消費税... うっ... なんというか、普通に忙しくブログを書けていなかった。あとリングフィット買いました。 11月、1回のワークショップと2回の登壇を予定しています。

何もツールがなくてもコンテナの中のTCP通信の状態を見たい

完全に消費税に負けた... 今日も小ネタです。 一般に、以下のようなことを調べる時 netstat や ss などのツールは便利です。 あるポートがリッスンされているか知りたい あるコネクションに実際に通信があるか知りたい MySQLサーバなど外部プロセス/サーバに…

社内生活発表会でeBPF(bpftrace)の話をした

「カーネル謎機能を活用したパフォーマンスとの戦い」と題してPepabo Tech Fridayで発表していた。ペパボテックフライデーとは下記です。 tech.pepabo.com しかし、割と生々しい社内のプロジェクトの計測値を出しているので、資料は公開しません...(入社し…

Nginxをbpftraceで追いかける

このブログは、昨日の分です。だめですかね... カーネルトレーシングシリーズです。今日は、Nginxを、追ってみます。 まず、 uprobe が見えるnginxバイナリを用意する 大抵の場合、パッケージのnginxバイナリはシンボルがstripされていて、uprobeが見えない…

名前付きパイプの使い方の小ネタ

まだまだ消費増税に対抗するため、無理やりネタを紡ぎ出す。 named pipe、「名前付きパイプ」の簡単な使い方を残しておく。 プロセス間通信 プロセスの間でなにかしらのデータのやり取りをすることをプロセス間通信(Inter Process Communication)と呼ぶ。…

Haconiwaの起動〜execve、起動〜listenまでの時間をトレースできるようにした

昨日は普通にブログを忘れていた...。増税に負けてしまった...。 気を取り直して今日。 github.com hacoboot_sampler というツールをリポジトリに同梱した(名前は...)。 # 第一引数は、コンテナの init のコマンドを推奨 $ sudo bpftrace misc/hacoboot_sa…

rbenv環境で「今使われている本物の」rubyバイナリを当てる

小ネタです。

POSIX Timer で純粋に時間を測る

man7.org sevp.sigev_notify を SIGEV_NONE にし、なおかつ非常に先の時間を expiration に指定すれば、その時間までの残り時間を timer_gettime(2) で取得できる。 あとは引き算をすればOK。「非常に先の時間」以上の時間を計測できないことになるが、 10億…

Haconiwaのprobeを少し整理した

github.com 今までタイムスタンプを clock_gettime でとっていたけど、そのタイムスタンプはカーネル側でつけてくれるような気がしたので外した。それよりも、同じコンテナ管理プロセスでのイベントかどうかを見分けたいので、hpidという数字を発行すること…

eBPF でイベントが起こったプロセスの cgroup IDを取るには

bpftrace には cgroup という変数があって、イベントが起こったプロセスの cgroup ID(後述しますが、?な数字です)を取得できます。 $ bpftrace -e 'uretprobe:/bin/bash:readline { printf("input(%d@%d) = %s\n", pid, cgroup, str(retval)); }' Attachi…

Linux上のRubyのUSDT

Rubyは 2.0 から --enable-dtrace オプションでコンパイルが可能になったんですが、 magazine.rubyist.net 一方で現代のLinuxとしてはこれらのトレースポイントは USDT としてトレースできます。今日はその手順など。

mruby-mrbgems-template を cli tool 化した

一般にパッケージを作る場合テンプレートジェネレーターがあると便利です。mrubyも例外でなく、mrubyでmgemを作る場合は mruby-mrbgem-template が定番です。 github.com 実は今まで以下のような手順でmgemを作っていました。DSLを残せるのはいいのですが、C…

自分のためのカーネルトレーシング、その2 - コンテナにUSDTを仕込む話

消費税増税に対抗し、10月はなるべく毎日営業日はブログを書こうと思います。 udzura.hatenablog.jp これのシリーズです。はてブが伸びなくても書いていく。消費税増税に対抗するのが目的ではてブは目的ではないから。