ping статистика

Когда ping отображает статистику, поле mdev является std-отклонением всех времен ping. Это среднее время (в мс) к среднему среднему avg .

Но из-за того, что времена ping сильно положительны, я не понимаю, как mdev может быть выше, чем в два раза больше значения 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 пять раз.

EDIT: необработанные данные: 1,91,2,83,4,41,1,83,2,98,2,18,2,15,1,68,2,30,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

One Solution collect form web for “ping статистика”

Последнее значение, помеченное как mdev под Linux и stddev под Solaris, вычисляется несколько иначе в зависимости от этих ОС.

Формула, используемая ping для Linux :

 sqrt(smean-mean²) 

в то время как тот, который используется в ping Solaris :

 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 
  • Как отключить ответ ping IPv6 в Linux без брандмауэра
  • -T возвращает команду ping
  • Почему разница между сетевыми адресами, указанными по имени хоста и ping?
  • ping работает, но не ssh?
  • Как я могу узнать, какой IP-адрес хоста доступен из другого?
  • Выполнить команду после каждой выходной строки из команды ping
  • не удается выполнить ping через туннельное устройство ssh
  • После того, как я ping ip, сетевые адаптеры потеряют свой ip
  • Как я могу вывести stdout и stderr и записать их в файл?
  • Wi-Fi подключен, но нет пинга (сужается до интерфейса Ethernet, каким-то образом мешающего функциям Wifi)
  • Отправить электронную почту без каких-либо настроек быстро?
  • Linux и Unix - лучшая ОС в мире.