Я хотів би виміряти затримку мережі для запиту SNMP GET. Існує безкоштовний інструмент командного рядка, за допомогою time
якого можна знайти статистику хронології для різних команд. Наприклад, з ним можна використовувати snmpget
наступним чином:
$ 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
Згідно з посібником, статистика складається з:
минулий реальний час між викликом та припиненням,
час CPU користувача (сума значень
tms_utime та tms_cutime у структурі tms, повернених
часом (2)),час системного процесора (сума значень
tms_stime та tms_cstime у структурі tms, повернута
часом (2)).
Як бачите, жоден із цих параметрів не дозволяє виміряти реальний час затримки в мережі (за винятком інших статистичних показників часу виконання програми). Чи можна це зробити? Можливо, не використовується інструмент часу, а скоріше деякі злами ядра?
Мені хотілося запитати, перш ніж я почну писати власну програму.
Спасибі, Пьотр
-ttttt
може також бути корисним - замість того, щоб відображати мікросекунди з останнього пакету, він показує мікросекунди з початку трасування.