Windows - Mål Ethernet Speed ​​Python

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at bygge Python modul, der overvåger og måler Ethernet-hastighed (modtag og send). Dette modul er en del af præstationsprogrammet.
Jeg søgte efter biblioteker, der gør det muligt, og det eneste bibliotek, jeg fandt, er Psutil med kommandoen: [3]


psutil.net\_io\_counters(pernic=True)


Udgangen til denne kommando er:


    '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)


Så jeg fik bare bytes beløb uden at vide noget om tidsinterval af kommandoen måling, så jeg kan ikke udtrække fra det hastigheden.


Hvilke biblioteker er relevante for min opgave? Hvordan kan jeg udvinde Ethernet-hastighed med python script?
Er der måske CMD-kommando, der forenkler opgaven?

Bedste reference


Med hastighed betyder du båndbredde . Du kan se den maksimale teoretiske BW med en simpel ifconfig. For at beregne den faktiske båndbredde i brug skal du ringe noget som net\_io\_counters flere gange og bruge output + tidsintervaller til at bestemme det. Der er ikke sådan noget som en 'speed gauge'. En enklere, men meget mindre præcis metode kunne være at beregne den gennemsnitlige anvendte båndbredde siden systemet blev startet (forudsat at du ikke lavede en 'hvis ned/op' imellem) ved at kombinere output fra net\_io\_counters og 'uptime'.


Endelig, for at få en ide om din faktiske maksimale båndbredde er den fælles metode at downloade en fil med en kendt størrelse og tid på download. Nu, selvfølgelig, i betragtning af hvordan netværk fungerer, vil du kun få et klart billede her, hvis uploadbåndbredden på den eksterne filserver er>=din lokale downloadbåndbredde, ellers downloades hastigheden af ​​fjernmaskine/netværk.