การวัดเวลาในการตอบสนองของเครือข่าย (Linux)


8

ฉันต้องการวัดเวลาแฝงของเครือข่ายสำหรับคำขอ 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 ใน struct tms ตามที่ส่งคืนโดย
    เวลา (2))

  • เวลา CPU ของระบบ (ผลรวมของค่า
    tms_stime และ tms_cstime ใน struct tms ตามที่ส่งคืนโดย
    เวลา (2))

อย่างที่คุณเห็นไม่มีตัวเลือกเหล่านี้ในการวัดเวลาแฝงของเครือข่ายจริง (ยกเว้นสถิติเวลาดำเนินการโปรแกรมอื่น ๆ ) มีวิธีการทำเช่นนั้น? อาจไม่ได้ใช้เครื่องมือเวลา แต่มีเคอร์เนลบางแฮ็ก

ฉันต้องการถามก่อนที่ฉันจะเริ่มเขียนโปรแกรมของฉันเอง

ขอบคุณ Piotr

คำตอบ:


5

การตั้งค่าสถานะtcpdump(8)ของโปรแกรม-tttอาจเป็นสิ่งที่คุณต้องการ:

00:00:00.000031 IP haig.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 1.0.168.192.in-addr.arpa. (42)
00:00:01.897031 IP haig.45240 > stackoverflow.com.www: Flags [F.], seq 866615166, ack 62506321, win 123, options [nop,nop,TS val 6026371 ecr 419296939], length 0
00:00:00.000030 IP haig.45242 > stackoverflow.com.www: Flags [F.], seq 853537650, ack 61102072, win 123, options [nop,nop,TS val 6026371 ecr 419296939], length 0
00:00:00.000019 IP haig.45243 > stackoverflow.com.www: Flags [F.], seq 863535366, ack 62086489, win 123, options [nop,nop,TS val 6026371 ecr 419296939], length 0

การประทับเวลาที่จุดเริ่มต้นของบรรทัดแสดงเวลาเป็นไมโครวินาทีนับตั้งแต่แพ็กเก็ตก่อนหน้า โดยการให้จำนวน-tบรรทัดคำสั่งต่างกันคุณสามารถรับเวลาสัมบูรณ์เวลาที่สัมพันธ์กันตั้งแต่แพ็กเก็ตแรกหรือเวลาที่สัมพันธ์กันระหว่างแพ็กเก็ต

ฉันเพิ่งแสดง mdns แบบสุ่มและการเข้าชมเว็บเพราะนั่นคือสิ่งที่หาได้ง่ายในระบบของฉัน คุณสามารถกรองได้อย่างง่ายดายสำหรับการจราจร SNMP กับtcpdump(8)จะได้รับเพียงแพ็คเก็ตที่คุณกำลังสนใจในการ. (ซึ่งจะเป็นความคิดที่ดีเป็นทุ่มตลาดเข้าชมทั้งหมดจากระบบไม่ว่างสามารถสร้างขนาดใหญ่โหลด.)


-tttttยังมีประโยชน์ - แทนที่จะแสดง microseconds ตั้งแต่แพ็กเก็ตล่าสุดมันแสดง microseconds ตั้งแต่เริ่มต้นของการติดตาม
Alex D

8

ลอง ping:

$ ping -U 192.168.1.3

จากคู่มือ ping:

-U พิมพ์เวลาแฝงผู้ใช้ต่อผู้ใช้เต็มรูปแบบ(พฤติกรรมเก่า) โดยทั่วไปแล้ว ping จะพิมพ์เวลาไปกลับของเครือข่ายซึ่งอาจแตกต่างกันไปตามความล้มเหลวของ DNS


ขอบคุณสำหรับคำตอบ แต่ฉันต้องการวัดความล่าช้าเฉพาะสำหรับ SNMP ได้รับคำขอ

5

เรียกใช้โปรแกรมที่คุณและขณะเดียวกันจับเครือข่ายการจราจรด้วยหรือtcpdump wiresharkตรวจสอบเวลาของคำขอและคำตอบและทำการลบอย่างง่าย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.