Пропускная способность сети (Мбит / с) и дисковый ввод / вывод (МБ / с) с использованием Python (Linux / Windows) - PullRequest
0 голосов
/ 23 июня 2019

Как мы можем рассчитать текущую нагрузку / использование сети компьютера и дискового ввода-вывода с помощью Python 3? Текущая нагрузка может означать измерение текущего использования в течение 1 секунды.

Метрики систем Windows / Linux, которые меня больше всего интересуют, включают в себя

  1. Пропускная способность сети (в Мбит / с)
  2. Дисковый ввод / вывод (в МБ / с)

PS: исследовано psutil, но оно обеспечивает доступ только к показателям процессора и памяти, но не к сетевому и дисковому вводу-выводу.

Что-то подобное было достигнуто в DigitalOcean, как показано ниже на странице мониторинга показателей капель

enter image description here

Попытка расчета сетевого ввода-вывода

import psutil
import time
import os

interval = 1
t0 = time.time()
upload0 = psutil.net_io_counters().bytes_sent
download0 = psutil.net_io_counters().bytes_recv
time.sleep(interval)

t1 = time.time()
upload1 = psutil.net_io_counters().bytes_sent
download1 = psutil.net_io_counters().bytes_recv

upload = (upload1 - upload0) / (t1 - t0)
download = (download1 - download0) / (t1 - t0)

print('Upload (Mbps): ', round(upload/1000000, 3))
print('Download (Mbps): ', round(download/1000000, 3))

Сравнил результаты, представленные этим кодом, и он довольно сильно отличается от результатов, измеренных Speedtest.net.

Протестировано на Macbook Pro (OS X Mojave 10.14.5, общедоступный Wi-Fi, VPN)

Измеряется кодом: 9,382 Мбит / с Загрузить, 3,03 Мбит / с Загрузить

Измерено Speedtest: 53,05 Мбит / с, загрузка, 22,89 Мбит / с, загрузка

...