mirror of https://github.com/BOINC/boinc.git
*** empty log message ***
svn path=/trunk/boinc/; revision=1028
This commit is contained in:
parent
c851b36890
commit
58bd88b453
|
@ -0,0 +1,119 @@
|
|||
#! /bin/csh
|
||||
#
|
||||
# by jeffc
|
||||
#
|
||||
# Usage :
|
||||
# tcpstat [-t | -i interval] -w
|
||||
#
|
||||
# Options:
|
||||
# -t given current counter totals
|
||||
# -i interval sample at interval seconds and give counter rate
|
||||
# -w watch_mode
|
||||
# Default is -i 5
|
||||
#
|
||||
#
|
||||
|
||||
set usage = "usage: watch_tcp [-t | -i interval] -w"
|
||||
set get_current_totals = 0
|
||||
set get_current_rates = 1
|
||||
set interval = 5
|
||||
set watch_mode = 0
|
||||
set drop_limit = 3
|
||||
|
||||
while ($#argv)
|
||||
if ("$argv[1]" == "-t") then
|
||||
set get_current_totals = 1
|
||||
set get_current_rates = 0
|
||||
else if ("$argv[1]" == "-i") then
|
||||
set get_current_rates = 1
|
||||
set get_current_totals = 0
|
||||
shift
|
||||
set interval = $argv[1]
|
||||
else if ("$argv[1]" == "-w") then
|
||||
set watch_mode = 1
|
||||
endif
|
||||
|
||||
shift
|
||||
end
|
||||
|
||||
set now = `date '+%y:%m:%d:%H:%M:%S'`
|
||||
set TMPFILE = /tmp/tcpstat.tmp.${now}.$$
|
||||
set DFILE = /tmp/tcpstat.tmp.delta.${now}.$$
|
||||
set DROPFILE = /tmp/DROPS
|
||||
|
||||
if($get_current_totals) then
|
||||
netstat -i -s -P tcp | sed -g s/=/\ / > $TMPFILE
|
||||
|
||||
echo ""
|
||||
echo "handshake queue max " `/usr/sbin/ndd -get /dev/tcp tcp_conn_req_max_q0`
|
||||
echo "ESTABLISHED queue max " `/usr/sbin/ndd -get /dev/tcp tcp_conn_req_max_q`
|
||||
echo ""
|
||||
awk '{if($1 == "tcpOutDataSegs") print $1" "$2}' $TMPFILE
|
||||
awk '{if($3 == "tcpOutDataBytes") print $3" "$4}' $TMPFILE
|
||||
awk '{if($3 == "tcpPassiveOpens") print $3" "$4}' $TMPFILE
|
||||
awk '{if($1 == "tcpListenDrop") print $1" "$2}' $TMPFILE
|
||||
awk '{if($3 == "tcpListenDropQ0") print $3" "$4}' $TMPFILE
|
||||
awk '{if($1 == "tcpHalfOpenDrop") print $1" "$2}' $TMPFILE
|
||||
|
||||
\rm $TMPFILE
|
||||
|
||||
else
|
||||
|
||||
netstat -i -s -P tcp | sed -g s/=/\ / > $TMPFILE
|
||||
sleep $interval
|
||||
netstat -i -s -P tcp | sed -g s/=/\ / > $DFILE
|
||||
|
||||
set ODS = `awk '{if($1 == "tcpOutDataSegs") print $2}' $TMPFILE`
|
||||
set ODS5 = `awk '{if($1 == "tcpOutDataSegs") print $2}' $DFILE`
|
||||
set ODB = `awk '{if($3 == "tcpOutDataBytes") print $4}' $TMPFILE`
|
||||
set ODB5 = `awk '{if($3 == "tcpOutDataBytes") print $4}' $DFILE`
|
||||
set PO = `awk '{if($3 == "tcpPassiveOpens") print $4}' $TMPFILE`
|
||||
set PO5 = `awk '{if($3 == "tcpPassiveOpens") print $4}' $DFILE`
|
||||
set LD = `awk '{if($1 == "tcpListenDrop") print $2}' $TMPFILE`
|
||||
set LD5 = `awk '{if($1 == "tcpListenDrop") print $2}' $DFILE`
|
||||
set LDQ0 = `awk '{if($3 == "tcpListenDropQ0") print $4}' $TMPFILE`
|
||||
set LDQ05 = `awk '{if($3 == "tcpListenDropQ0") print $4}' $DFILE`
|
||||
set HOD = `awk '{if($1 == "tcpHalfOpenDrop") print $2}' $TMPFILE`
|
||||
set HOD5 = `awk '{if($1 == "tcpHalfOpenDrop") print $2}' $DFILE`
|
||||
|
||||
@ ODS_rate = ($ODS5 - $ODS) / $interval
|
||||
@ ODB_rate = ($ODB5 - $ODB) / $interval
|
||||
@ PO_rate = ($PO5 - $PO) / $interval
|
||||
@ LD_rate = ($LD5 - $LD) / $interval
|
||||
@ LDQ0_rate = ($LDQ05 - $LDQ0) / $interval
|
||||
@ HOD_rate = ($HOD5 - $HOD) / $interval
|
||||
|
||||
if($watch_mode) then
|
||||
echo INFO $now TCP Out B/s : $ODB_rate Listen drops/s : $LD_rate
|
||||
if($LD_rate) then
|
||||
if(-f $DROPFILE) then
|
||||
set drop_count = `cat $DROPFILE`
|
||||
@ drop_count++
|
||||
if($drop_count > $drop_limit) then
|
||||
echo CRITICAL $now TCP dropping connections for $drop_count checks
|
||||
endif
|
||||
echo $drop_count > $DROPFILE
|
||||
else
|
||||
echo 1 > $DROPFILE
|
||||
endif
|
||||
else
|
||||
if(-f $DROPFILE) then
|
||||
rm $DROPFILE
|
||||
endif
|
||||
else
|
||||
echo ""
|
||||
echo "handshake queue max " `/usr/sbin/ndd -get /dev/tcp tcp_conn_req_max_q0`
|
||||
echo "ESTABLISHED queue max " `/usr/sbin/ndd -get /dev/tcp tcp_conn_req_max_q`
|
||||
echo ""
|
||||
echo tcpOutDataSegs" "$ODS_rate per second
|
||||
echo tcpOutDataBytes" "$ODB_rate per second
|
||||
echo tcpPassiveOpens" "$PO_rate per second
|
||||
echo tcpListenDrop" "$LD_rate per second
|
||||
echo tcpListenDropQ0" "$LDQ0_rate per second
|
||||
echo tcpHalfOpenDrop" "$HOD_rate per second
|
||||
endif
|
||||
|
||||
\rm $TMPFILE
|
||||
\rm $DFILE
|
||||
endif
|
||||
|
Loading…
Reference in New Issue