- blogs:
- cles::blog
2020/09/20

DTrace で smb へのアクセスをリアルタイムに見る

ファイルサーバに使っている OmniOS の入ったマシン上で DTrace を使って smb へのアクセスをリアルタイムに見てみました。
OmniOS CE は元々は OpenSolaris なので DTrace が使えるので、こういうことはやろうと思えばすぐにできることは知っていたんですが、使われている言語がちょっと特殊なのでこれまで重い腰が上がらなかったんですよね。今回は [Dtrace SMB-related snippets] All things SMB #tags: smb, dtrace, io に掲載されている smb-read-write-lat-by-path.d を少し改造させてもらいました。
smb-read-write-lat-by-path-rt.d
dtrace -qn '
char m[string];
BEGIN {
m["smb_fsop_read"] = 0x52;
m["smb_fsop_write"] = 0x57;
}
::smb_fsop_read:entry,::smb_fsop_write:entry {
self->arg0 = args[0];
self->node = args[2];
self->t = timestamp;
}
::smb_fsop_read:return,::smb_fsop_write:return /self->arg0/ {
this->delta = timestamp - self->t;
this->a_family = self->arg0->session->ipaddr.a_family;
this->l_a_family = self->arg0->session->local_ipaddr.a_family;
this->addr = &self->arg0->session->ipaddr.au_addr.au_ipv4;
this->l_addr = &self->arg0->session->local_ipaddr.au_addr.au_ipv4;
printf("%Y\tsrc: %s\tdst: %s\t(%c) %s\t%d\n", walltimestamp, inet_ntop(this->a_family, this->addr), inet_ntop(this->l_a_family, this->l_addr), m[probefunc], stringof(self->node->vp->v_path), this->delta/1000);
self->arg0 = 0; self->t = 0; self->node = 0;
}
/* tick-1200sec { exit(0); } */
END {
}'
実際にこれを走らせたときのログはこんな感じ。
これでファイルサーバの負荷やレイテンシをリアルタイムに見ることができるようになりました。
2020 Sep 20 13:02:38 src: 192.168.1.1 dst: 192.168.100.100 (W) /path/to/file1 32
2020 Sep 20 13:02:38 src: 192.168.1.2 dst: 192.168.100.100 (W) /path/to/file2 31
2020 Sep 20 13:02:38 src: 192.168.1.2 dst: 192.168.100.100 (W) /path/to/file3 18
2020 Sep 20 13:02:38 src: 192.168.1.2 dst: 192.168.100.100 (W) /path/to/file4 11
2020 Sep 20 13:02:38 src: 192.168.1.4 dst: 192.168.100.100 (W) /path/to/file5 17
2020 Sep 20 13:02:40 src: 192.168.1.1 dst: 192.168.100.100 (W) /path/to/file6 20
2020 Sep 20 13:02:40 src: 192.168.1.3 dst: 192.168.100.100 (W) /path/to/file8 18
2020 Sep 20 13:02:40 src: 192.168.1.3 dst: 192.168.100.100 (W) /path/to/file9 10
2020 Sep 20 13:02:40 src: 192.168.1.3 dst: 192.168.100.100 (R) /path/to/file10 3
2020 Sep 20 13:02:40 src: 192.168.1.3 dst: 192.168.100.100 (R) /path/to/file11 4
2020 Sep 20 13:02:40 src: 192.168.1.3 dst: 192.168.100.100 (R) /path/to/file12 2
2020 Sep 20 13:02:40 src: 192.168.1.3 dst: 192.168.100.100 (R) /path/to/file13 6
2020 Sep 20 13:02:40 src: 192.168.1.3 dst: 192.168.100.100 (R) /path/to/file14 1
2020 Sep 20 13:02:40 src: 192.168.1.3 dst: 192.168.100.100 (R) /path/to/file15 5
2020 Sep 20 13:02:40 src: 192.168.1.3 dst: 192.168.100.100 (R) /path/to/file16 2
2020 Sep 20 13:02:40 src: 192.168.1.3 dst: 192.168.100.100 (R) /path/to/file17 3
2020 Sep 20 13:02:40 src: 192.168.1.3 dst: 192.168.100.100 (R) /path/to/file18 1
2020 Sep 20 13:02:40 src: 192.168.1.3 dst: 192.168.100.100 (R) /path/to/file19 3
2020 Sep 20 13:02:40 src: 192.168.1.3 dst: 192.168.100.100 (R) /path/to/file20 1
2020 Sep 20 13:02:40 src: 192.168.1.3 dst: 192.168.100.100 (R) /path/to/file21 5
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/11985
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . Windows 10 で勝手にログアウトされないようにする(6323)
2 . これが本物の「Amazon セキュリティ警告」(5093)
3 . リモートデスクトップで Alt + PrtSc と同じことをするには(4828)
4 . 「日次」は「にちじ」じゃない?(3840)
5 . RDP のプロトコルを TCP だけに変更する(3778)
2 . これが本物の「Amazon セキュリティ警告」(5093)
3 . リモートデスクトップで Alt + PrtSc と同じことをするには(4828)
4 . 「日次」は「にちじ」じゃない?(3840)
5 . RDP のプロトコルを TCP だけに変更する(3778)
cles::blogについて
Referrers