Ich möchte die Netzwerklatenz für SNMP-GET-Anforderungen messen. Es gibt ein kostenloses Befehlszeilentool, mit time
dem Zeitstatistiken für verschiedene Befehle abgerufen werden können. Zum Beispiel kann es snmpget
folgendermaßen verwendet werden:
$ time snmpget -v 2c -c public 192.168.1.3 .1.3.6.1.2.1.2.2.1.10.2
IF-MIB::ifInOctets.2 = Counter32: 112857973
real 0m0.162s
user 0m0.069s
sys 0m0.005s
Laut Handbuch besteht die Statistik aus:
die verstrichene Echtzeit zwischen Aufruf und Kündigung,
die Benutzer-CPU-Zeit (die Summe der
Werte tms_utime und tms_cutime in einer Struktur tms, wie von
times (2) zurückgegeben),die System-CPU-Zeit (die Summe der
Werte tms_stime und tms_cstime in einer Struktur tms, wie von
times (2) zurückgegeben).
Wie Sie sehen, ermöglicht keine dieser Optionen die Messung der tatsächlichen Netzwerklatenzzeit (mit ausgeschlossenen anderen Statistiken zur Programmausführungszeit). Gibt es eine Möglichkeit dazu? Vielleicht nicht mit dem Zeitwerkzeug, sondern mit einigen Kernel-Hacks?
Ich wollte fragen, bevor ich anfange, mein eigenes Programm zu schreiben.
Danke, Piotr
quelle
-ttttt
kann auch nützlich sein - anstatt Mikrosekunden seit dem letzten Paket anzuzeigen, werden Mikrosekunden seit dem Beginn des Trace angezeigt.Versuchen Sie es mit Ping:
Aus dem Ping-Handbuch:
quelle
Führen Sie Ihr Programm aus und erfassen Sie in der Zwischenzeit den Netzwerkverkehr mit
tcpdump
oderwireshark
. Überprüfen Sie den Zeitpunkt der Anfrage und der Antwort und führen Sie eine einfache Subtraktion durch.quelle