getNodeRecv.awk
上传用户:sy0851
上传日期:2014-07-16
资源大小:4k
文件大小:1k
源码类别:

网络

开发平台:

Unix_Linux

  1. # getData.awk
  2. BEGIN {
  3. if(step ==0)
  4. step = 10;
  5. base = 0;
  6. start = 0;
  7. bytes = 0;
  8. total_bytes = 0;
  9. max = 0;
  10. calc = 0;
  11. }
  12. $0 ~/^s.* AGT/ {
  13. if (base == 0 && $3 == ("_" src "_")) {
  14. base = $2;
  15. #开始统计的时间
  16. start = $2;
  17. #开始统计的标志位
  18. calc = 1;
  19. }
  20. }
  21. #处理接收数据的记录
  22. $0 ~/^r.* AGT/ && calc == 1{ 
  23. time = $2;
  24. #这个时间段结束,进入下一时间段
  25. if (time > base) {
  26. bw = bytes/(step * 1000.0);
  27.                 if (max < bw) max = bw;
  28.                 printf "%.9f %.9fn", base, bw >> outfile;
  29.                 base += step;
  30.                 bytes = 0;
  31.         }
  32. if ($3 == ("_" dst "_") && match($14,"." src ":") >=0 ) {
  33. #dst收到src发送的数据
  34. #增加总的数据接收量
  35. total_bytes += $8;
  36. #增加当前时段的数据接收量
  37. bytes += $8;
  38. }
  39. }
  40. END {
  41. if (total_bytes)
  42. #输出整个运行时间平均传输速率
  43. printf "# Avg B/w = %.3fKB/sn", ((total_bytes/1000.0)/(time-start)) >> outfile;
  44. else
  45. printf "Avg B/w = 0.0KB/sn";
  46. printf "# Max B/w = %.3fKB/sn", max >>outfile;
  47. }