измерить скорость Ethernet питона - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь построить модуль Python, который будет отслеживать и измерять скорость Ethernet (получать и отправлять). Этот модуль является частью программы производительности. Я искал библиотеки, которые делают это возможным, и единственная библиотека, которую я нашел, это Psutil с командой:

psutil.net_io_counters(pernic=True)

Вывод этой команды:

    'Ethernet 5': snetio(bytes_sent=211080874L, bytes_recv=929895370L, packets_sent=667031L, packets_recv=2757846L, errin=0L, errout=0L, dropin=0L, dropout=0L),
 'Loopback Pseudo-Interface 1': snetio(bytes_sent=0L, bytes_recv=0L, packets_sent=0L, packets_recv=0L, errin=0L, errout=0L, dropin=0L, dropout=0L),
 'isatap.replay.local': snetio(bytes_sent=0L, bytes_recv=0L, packets_sent=0L, packets_recv=0L, errin=0L, errout=0L, dropin=0L, dropout=0L)

Итак, я получил только количество байтов, ничего не зная об интервале времени измерения команды, поэтому я не могу извлечь из него скорость.

Какие библиотеки имеют отношение к моей задаче? Как я могу извлечь скорость Ethernet с помощью сценария Python? Может быть, есть команда CMD, которая упростит задачу?

1 Ответ

0 голосов
/ 30 апреля 2018

Под скоростью вы подразумеваете пропускную способность . Вы можете увидеть максимальный теоретический BW с помощью простого ifconfig. Чтобы вычислить фактическую используемую полосу пропускания, вам нужно будет несколько раз вызвать что-то вроде net_io_counters и использовать для этого интервалы output + time. Там нет такого понятия, как «датчик скорости». Более простым, но гораздо менее точным методом может быть вычисление средней используемой полосы пропускания с момента запуска системы (при условии, что вы не делали промежуточное «если вниз / вверх») путем объединения выходных данных net_io_counters и «uptime».

Наконец, чтобы получить представление о вашей фактической максимальной пропускной способности, распространенным методом является загрузка файла с известным размером и временем загрузки. Теперь, конечно, учитывая то, как работают сети, вы получите четкое представление здесь, только если пропускная способность загрузки удаленного файлового сервера> = = ваша локальная пропускная способность загрузки, в противном случае скорость загрузки будет ограничена удаленной машиной / сетью.

...