Gopi Desaboyina
2010-Jan-06 17:48 UTC
[dtrace-discuss] tcpListenDrop and DTrace to get PID and Port Number.
Gurus, I''ve strange issue with tcpListenDrop counter. it''s keep getting increased even after increasing tcp_conn_req_max_q size from 1k to 16k. is there anyway i can find out port nubmber and proc is which is incrementing this counter. I found another thread and got the below script but that shows me the pid which is not at all running. is it possible to get Port number also along with PID ? #!/usr/sbin/dtrace -s #pragma D option quiet fbt:ip:tcp_conn_request:entry { self->connp = (conn_t *)arg0; self->tcp = (tcp_t *)self->connp->conn_sqp; @backlog[self->tcp->tcp_cpid,self->tcp->tcp_conn_req_cnt_q,self->tcp->tcp_conn_req_max]=count(); printa("PID:%d \ttcp_conn_req_cnt_q/tcp_conn_req_max: %d/%d Number of times:%@d\n", at backlog); } Thanks for any help on this. -Gopi -- This message posted from opensolaris.org
Robert Milkowski
2010-Jan-07 00:15 UTC
[dtrace-discuss] tcpListenDrop and DTrace to get PID and Port Number.
On 06/01/2010 17:48, Gopi Desaboyina wrote:> Gurus, > I''ve strange issue with tcpListenDrop counter. it''s keep getting increased even after increasing tcp_conn_req_max_q size from 1k to 16k. is there anyway i can find out port nubmber and proc is which is incrementing this counter. I found another thread and got the below script but that shows me the pid which is not at all running. is it possible to get Port number also along with PID ? > > #!/usr/sbin/dtrace -s > #pragma D option quiet > fbt:ip:tcp_conn_request:entry > { > self->connp = (conn_t *)arg0; > self->tcp = (tcp_t *)self->connp->conn_sqp; > @backlog[self->tcp->tcp_cpid,self->tcp->tcp_conn_req_cnt_q,self->tcp->tcp_conn_req_max]=count(); > printa("PID:%d \ttcp_conn_req_cnt_q/tcp_conn_req_max: %d/%d Number of times:%@d\n", at backlog); > } > > Thanks for any help on this. > > -Gopi >maybe your application is specifying a low value of backlog in listen()? -- Robert Milkowski http://milek.blogspot.com
Gopi Desaboyina
2010-Jan-07 01:41 UTC
[dtrace-discuss] tcpListenDrop and DTrace to get PID and Port Number.
Rob. Thanks for your reply. I even read your blog on that oracle listener and even tried dtrace script you gave. which one is max que size in the o/p ? in the o/p most of the time i''m getting <exec name> <pid> <0> <2> etc. dtrace -n syscall::listen:entry''{trace(execname);trace(pid);trace(arg0);trace(arg1);} -- This message posted from opensolaris.org
Robert Milkowski
2010-Jan-07 04:29 UTC
[dtrace-discuss] tcpListenDrop and DTrace to get PID and Port Number.
On 07/01/2010 01:41, Gopi Desaboyina wrote:> Rob. Thanks for your reply. I even read your blog on that oracle listener and even tried dtrace script you gave. which one is max que size in the o/p ? in the o/p most of the time i''m getting<exec name> <pid> <0> <2> etc. > > dtrace -n syscall::listen:entry''{trace(execname);trace(pid);trace(arg0);trace(arg1);} >It means that your applications requested a backlog size of 2. So no matter what system wide limit you set you actual queue size is 2. Basically an application can set backlog to 0 which iirc means the maximum currently allowed size or it can set it to any other value as long as it is not bigger than the current system limit. What application is it? -- Robert Milkowski http://milek.blogspot.com