このブログは、昨日の分です。だめですかね...
カーネルトレーシングシリーズです。今日は、Nginxを、追ってみます。
まず、 uprobe が見えるnginxバイナリを用意する
大抵の場合、パッケージのnginxバイナリはシンボルがstripされていて、uprobeが見えない。 nginx-build などで自分でビルドする。
トレーシングの都合上、 --with-debug
でビルドするといいらしい( ngx_request_t *
などがトレーサから見えるようになる)。
$ nginx-build -d src/nginx-build -v 1.15.12 \ --with-debug
uprobeは以下の通り確認できる。
$ sudo bpftrace -l 'uprobe:/usr/local/nginx/sbin/nginx' | head uprobe:/usr/local/nginx/sbin/nginx:deregister_tm_clones uprobe:/usr/local/nginx/sbin/nginx:register_tm_clones uprobe:/usr/local/nginx/sbin/nginx:__do_global_dtors_aux uprobe:/usr/local/nginx/sbin/nginx:frame_dummy uprobe:/usr/local/nginx/sbin/nginx:ngx_load_module uprobe:/usr/local/nginx/sbin/nginx:ngx_unload_module uprobe:/usr/local/nginx/sbin/nginx:ngx_set_env uprobe:/usr/local/nginx/sbin/nginx:ngx_set_cpu_affinity uprobe:/usr/local/nginx/sbin/nginx:ngx_set_priority uprobe:/usr/local/nginx/sbin/nginx:ngx_set_worker_processes