最近straceとtcpdumpがお気に入り。
# strace -ff -tt -o strace -p `pidof mysqld`
-fでforkしたプロセスのシステムコールも拾う、とか書いてあるけれど、
派生したスレッドの情報も拾える(forkとpthreadの違い、メモリコピーするかどうかだけらしいし)
そのまま別のターミナルからmysqlクライアントを立ち上げると、
`Process 1883 attached' みたいなメッセージが上がる。
(スレッドキャッシュ利いてないときだけ。スレッドキャッシュがあればスレッド作らないから、これ出ない)
で、strace止めて、strace.1883ファイルを覗くと色々見られる。
23:55:49.196003 mmap2(NULL, 2097152, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x5cd00000
システムコールはmanpageキーワードと一緒に(mmap manpage、みたいに)
ググれば大体出てくるので、出てきた順に調べていけばなんとなく読める。
取り敢えず、このスレッドは2Mくらい初期状態で確保するのねメモリ。
あと、プロンプトが上がってread()で待ちになるまでは0.5秒くらいだった。
アタッチしてたから体感でもちょっと遅い感じがしたけど。
家の仮想マシン貧弱だしね。。
0 件のコメント :
コメントを投稿