利用awk程序分析跟踪文件,从而对吞吐量进行分析。
下面的程序功能是测量CBR的吞吐量,这里所说的吞吐量是指的评价吞吐量。
BEGIN {
init=0;
i=0;
}
{
action = $1;
time = $2;
from = $3;
to = $4;
type = $5;
pktsize = $6;
flow_id = $8;
src = $9;
dst = $10;
seq_no = $11;
packet_id = $12;
if(action=="r" && from==2 && to==3 && flow_id==2) {
pkt_byte_sum[i+1]=pkt_byte_sum[i]+ pktsize;
if(init==0) {
start_time = time;
init = 1;
}
end_time[i] = time;
i = i+1;
}
}
END {
#为了画图好看,把第一条记录的吞吐量设为0,以表示传输开始
printf("%.2f\t%.2f\n", end_time[0], 0);
for(j=1 ; j<i ; j++){
#单位为kbps
th = pkt_byte_sum[j] / (end_time[j] - start_time)*8/1000;
printf("%.2f\t%.2f\n", end_time[j], th);
}
#为了画图好看,把最后一条记录的吞吐量再设为0,以表示传输结束
printf("%.2f\t%.2f\n", end_time[i-1], 0);
}
awk文件执行方法($为shell的提示符号):
$ awk-f measure-throughput.awk out.tr
若是要把执行结果存到文件中(即把结果存到cbr_throughput文件中),命令如下:
$ awk-f measure-throughput.awk out.tr > cbr_throughput
执行结果:
0.14 0.00
0.15 1000.00
0.15 1000.00
0.16 1000.00
……