#!/bin/bash # Please send fixes, extensions, etc back to harry.managalam@uci.edu. DELAY=NN REPEAT=NN DELAY=$1 REPEAT=$2 if [[ "xx$DELAY" == "xx" ]]; then DELAY=1; fi if [[ "xx$REPEAT" == "xx" ]]; then REPEAT=1000; fi echo echo "Without options, will report RDMA and TCP MBs on default port (ib0) for 1000 iters. 'rdma-tcp-stat DELAY REPEAT' will echo the BW REPEAT times with DELAY sec between reports." echo echo " RDMA TCP Xmit Rec Xmit Rec [MB/s]" COUNT=0; while [ "$COUNT" -lt "$REPEAT" ] ; do RBX=`perfquery -x | grep XmitData | cut -f2 -d: | sed -e 's/\.*//g'`; RBR=`perfquery -x | grep RcvData | cut -f2 -d: | sed -e 's/\.*//g'`; TBX=`cat /sys/class/net/ib0/statistics/rx_bytes`; TBR=`cat /sys/class/net/ib0/statistics/tx_bytes`; sleep $DELAY; RAX=`perfquery -x | grep XmitData | cut -f2 -d: | sed -e 's/\.*//g'`; RAR=`perfquery -x | grep RcvData | cut -f2 -d: | sed -e 's/\.*//g'`; TAX=`cat /sys/class/net/ib0/statistics/rx_bytes`; TAR=`cat /sys/class/net/ib0/statistics/tx_bytes`; XMIT_RDMABW=`echo "scale=4; ($RAX-$RBX)/262144/$DELAY" | bc`; RECV_RDMABW=`echo "scale=4; ($RAR-$RBR)/262144/$DELAY" | bc`; XMIT_TCPBW=`echo "scale=4; ($TAX-$TBX)/1048576/$DELAY" | bc`; RECV_TCPBW=`echo "scale=4; ($TAR-$TBR)/1048576/$DELAY" | bc`; printf "%8.2f %8.2f %8.2f %8.2f\n" $XMIT_RDMABW $RECV_RDMABW $XMIT_TCPBW $RECV_TCPBW ((COUNT++)) done