Рассчитать скорость загрузки / выгрузки с помощью ping

Можно переопределить mro класса с метаклассом

>>> class A(object):
...     def a_method(self):
...         print("A")
... 
>>> class B(object):
...     def b_method(self):
...         print("B")
... 
>>> class MROMagicMeta(type):
...     def mro(cls):
...         return (cls, B, object)
... 
>>> class C(A, metaclass=MROMagicMeta):
...     def c_method(self):
...         print("C")
... 
>>> cls = C()
>>> cls.c_method()
C
>>> cls.a_method()
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
AttributeError: 'C' object has no attribute 'a_method'
>>> cls.b_method()
B
>>> type(cls).__bases__
(<class '__main__.A'>,)
>>> type(cls).__mro__
(<class '__main__.C'>, <class '__main__.B'>, <class 'object'>)

, Он, вероятно, скрыт на серьезном основании.:)

25
задан Hulk 1 January 2011 в 20:14
поделиться

2 ответа

Я использовал ping для расчета пропускной способности в локальной сети. Я думаю, что это так же точно, как и другие средства измерения пропускной способности (например, загрузка большого файла). Вы также можете использовать его для подключения к Интернету, если у вас есть симметричная связь с Интернетом (т.е. не adsl).

Вот как я это делаю: у меня есть гигабитная локальная сеть Ethernet, и я хочу измерить скорость между моим компьютером и хостом в серверной комнате. Мой MTU 1500, поэтому я использую размер пакета 1472. Просто случайно я использую 83,333 пакета в этом тесте (около 1 гигабита). Затем:

sudo ping -f -c 83333 -s 1472 192.168.3.103

в конце результата я получаю: min / avg / max / stddev = туда-обратно = 0.174 / 0.219 /2,078/0,020 мс

, так что в среднем для отправки 1500 байт и получения 1500 байт требуется 0,219 мс, то есть 24 кб. 24 кб / 0,219 мс = 110 Мб / с

Если вы хотите использовать это для сервера в Интернете, вам нужно уменьшить размер пакета до 1464 (для MTU 1492), сбросьте -f и уменьшите счет, чтобы закончить не заняло много времени.

p.s. Я думаю, что это должно идти к суперпользователю, а не к stackoverflow.

25
ответ дан 28 November 2019 в 20:51
поделиться

Пинг - это один пакет, отправленный по сети через ICMP. Обычно один пакет в секунду отправляется на эхо-запрос удаленной машины, и маршрут может отличаться от TCP и UDP, обычно используемых для передачи данных; удаленные машины могут отказаться отвечать на запросы ping. Таким образом, измерение пропускной способности сети с помощью запросов ping ненадежно и, вероятно, бесполезно.

2
ответ дан 28 November 2019 в 20:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: