ping
統計が表示されると、このフィールドはmdev
すべてのping時間の標準偏差です。ミリ秒単位の平均時間ですavg
。
ただし、ping時間は厳密に正であるため、この場合と同様に、mdev
値がどのように2倍以上になるかはわかりません。avg
私のping時間は次のとおりです。
[...]
64 bytes from 192.168.1.1: icmp_seq=76 ttl=128 time=1.95 ms
^C
--- 192.168.1.1 ping statistics ---
76 packets transmitted, 76 received, 0% packet loss, time 75097ms
rtt min/avg/max/mdev = 1.617/13.289/468.557/66.726 ms
mdev
5番はどこですかavg
?
編集:オリジナルデータ:1.91、2.83、4.41、1.83、2.98、2.18、2.15、1.68、2.30、2.04、1.64、1.98,1.69,1.88,1.91,1.83,1.70,2.00,2.8.2 ,1.91,1.84,2.04,2.05,2.10,2.19,2.22,1.94,2.13,1.98,2.08,1.62,3.29,2.17,1.99,2.38,2.55,2.16,1.2.9,9 2.12 ,2.18,1.61,2.08,1.90,2.17,3.01,1.84,2.12,20.9,362,2.07,2.31,2.42,2.05,2.47,2.55,2.13,2.56,2.03,3.3.3 。 50,1.82,2.45,1.95
答え1
最後の値(mdev
Linuxとstddev
Solarisの下でラベル付けされています)は、そのオペレーティングシステムによってわずかに異なります。
使用された式はLinux ping例:
sqrt(smean-mean²)
そして使用ソラリスフラット例:
sqrt((smean-mean²)*received/received-1)
smean
は、二乗平均rtt
、値mean
の平均rtt
、received
受信された回答の数です。
awk
以下は、データを取得して値を計算する方法を示す小さなプログラムです。
echo "1.91 2.83 4.41 1.83 2.98 2.18 2.15 1.68 2.30 2.04 1.64 1.98 1.69 1.88
1.91 1.83 1.70 2.00 2.03 1.89 2.36 2.12 2.07 1.91 1.84 2.04 2.05 2.10 2.19
2.22 1.94 2.13 1.98 2.08 1.62 3.29 2.17 1.99 2.38 2.55 2.16 1.90 1.92 1.90
2.89 2.04 2.05 2.12 2.18 1.61 2.08 1.90 2.17 3.01 1.84 2.12 20.9 362 2.07
2.31 2.42 2.05 2.47 2.55 2.13 2.56 2.07 468 2.33 2.32 1.93 1.87 2.50 1.82
2.45 1.95" | awk '
function abs(v) {return v < 0 ? -v : v}
BEGIN {
min=0x7fffffff;
}
{
for(i=0;i<NF;i++) {
received++
v=$i
min=v<min?v:min;
max=v>max?v:max;
sum+=v
sum2+=v*v
}
}
END {
mean=sum/received
smean=sum2/received
printf("received=%d, min=%f, avg=%f, max=%f\n",received,min,sum/received,max)
printf("Linux ping mdev: %f\n", sqrt(smean-(mean*mean)))
printf("Solaris ping stddev: %f\n", sqrt(((smean-(mean*mean))*received)/(received-1)))
}
'
出力はテストと一致します。
received=76, min=1.610000, avg=13.294211, max=468.000000
Linux ping mdev: 66.632781
Solaris ping stddev: 67.075529