回線品質測定メモ

ping

ping -c 60

として5数要約

iperf

iperf -s

iperf -c host -f k -t 60 -i 1

として,5数要約

fivenum.c

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int cmp(const void *k1, const void *k2)
{
  if (*((float *)k1) < *((float *)k2)) return -1;
  if (*((float *)k1) > *((float *)k2)) return  1;
                                       return  0;
}
 
void fivenum(int n, float *x)
{
  int i, j;
  float t, sum, ave, sd;
 
  qsort(x, n, sizeof(float), cmp);
  for(i = 0; i < 4; i++) {
    t = (n - 1.0) * i / 4.0; j = (int)t;
    printf("%g, ", x[j] + (x[j + 1] - x[j]) * (t - j));
  }
  printf("%g, ", x[n - 1]);
 
  sum = 0.0;
  for(i = 0; i < n; i++) sum += x[i];
  ave = sum / (float)n;
  sd = 0.0;
  for(i = 0; i < n; i++) sd += (x[i] - ave) * (x[i] - ave);
  sd = sqrt(sd / (float)(n - 1));
 
  printf("%d, %g, %g, %g\n",n,sum,ave,sd);
}
 
int main()
{
  int n;
  float *x;
 
  x = (float *)malloc(sizeof(float)*100);
 
  n = 0;
  while(scanf("%g",&x[n]) != EOF) n++;
  fivenum(n,x);
  return 0;
}

スクリプト

(date;echo ", ";date '+%s';echo ", ";ping -c 20 XXX.XXX.XXX.XXX | grep "^64" |
cut -d" " -f7| cut -c6-12 | fivenum) | tr -d "\n"

perlだと...

Statistics::Liteを持ってきて,

#!/usr/bin/perl
use Statistics::Lite qw(:all);
 
$time = localtime(time);
open(IN, 'ping -c 20 XXX.XXX.XXX.XXX | grep "^64" | cut -d" " -f7| cut -c6-12 |');
@data = ;
close(IN);
 
for ($i = 0; $i <= $#data; $i++) { $data[$i] = $data[$i] + 0; }
my %stats = statshash(@data);
 
print "$time, $stats{min}, $stats{max}, $stats{range}, $stats{sum}, $stats{count}, stats{mean}, $stats{median}, $stats{mode}, $stats{variance}, $stats{stddev}\n";

gnuplotスクリプト

set xdata time
set timefmt "%H:%M:%S" 
plot ["12:00":"19:00"] "data.dat" using 1:4:3:7:6 with candlesticks notitle,
"data.dat" using 1:5 title 'median' with linespoints pt 3 ps 0.3, "data.dat"
using 1:10 title 'mean' with points pt 3 ps 0.3
回線品質測定メモ.txt · 最終更新: 2010/02/12 01:25 by newacct
CC Attribution-Noncommercial-No Derivative Works 3.0 Unported
Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0