มีวิธีการจำลองเวลาแฝงสูงหรือไม่


11

นี่คือคำตอบที่ดีมากเกี่ยวกับวิธีการ จำกัด แบนด์วิดธ์

ตอนนี้แบนด์วิดธ์ไม่ได้เป็นความกังวลหลักของฉัน - ความล่าช้าคือ

จะเกิดอะไรขึ้นถ้าฉันใส่สองสามร้อยกิโลเมตรระหว่างแอพพลิเคชันเซิร์ฟเวอร์ของฉันกับเซิร์ฟเวอร์ฐานข้อมูล

ฉันกำลังมองหาความเป็นไปได้ที่จะจำลองความล่าช้าที่คาดไว้สำหรับทุกแพ็กเก็ต IP

คำตอบ:


14

netemคุณสามารถทำได้โดยใช้ จากหน้าแรกของพวกเขา :

การจำลองเครือข่ายบริเวณกว้างเกิดความล่าช้า

นี่เป็นตัวอย่างที่ง่ายที่สุดเพียงเพิ่มการหน่วงเวลาจำนวนคงที่ให้กับแพ็คเก็ตทั้งหมดที่ออกจากอีเทอร์เน็ตท้องถิ่น

# tc qdisc add dev eth0 root netem delay 100ms

ตอนนี้การทดสอบ ping อย่างง่าย ๆ เพื่อโฮสต์บนเครือข่ายท้องถิ่นควรแสดงการเพิ่มขึ้น 100 มิลลิวินาที ความล่าช้าถูก จำกัด โดยความละเอียดสัญญาณนาฬิกาของเคอร์เนล (Hz) ในระบบส่วนใหญ่ 2.4 นาฬิการะบบจะทำงานที่ 100 Hz ซึ่งจะทำให้การหน่วงเวลาเพิ่มขึ้น 10 ms บน 2.6 ค่าเป็นพารามิเตอร์การกำหนดค่าจาก 1,000 ถึง 100 Hz

ตัวอย่างในภายหลังเพียงแค่เปลี่ยนพารามิเตอร์โดยไม่ต้องโหลด qdisc

เครือข่ายบริเวณกว้างจริงแสดงความแปรปรวนดังนั้นจึงเป็นไปได้ที่จะเพิ่มการเปลี่ยนแปลงแบบสุ่ม

# tc qdisc change dev eth0 root netem delay 100ms 10ms

สิ่งนี้ทำให้การหน่วงเวลาเพิ่มเพิ่มเป็น 100 ± 10 ms รูปแบบความล่าช้าของเครือข่ายไม่ได้สุ่มอย่างแท้จริงดังนั้นเพื่อเลียนแบบว่ามีค่าความสัมพันธ์เช่นกัน

# tc qdisc change dev eth0 root netem delay 100ms 10ms 25%

สิ่งนี้ทำให้การหน่วงเวลาเพิ่มเป็น 100 ± 10 ms ด้วยองค์ประกอบแบบสุ่มถัดไปซึ่งขึ้นอยู่กับ 25% ในช่วงสุดท้าย นี่ไม่ใช่ความสัมพันธ์ทางสถิติที่แท้จริง แต่เป็นการประมาณ

การกระจายความล่าช้า

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

# tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal

ตารางจริง (ปกติ, pareto, paretonormal) ถูกสร้างขึ้นเป็นส่วนหนึ่งของการรวบรวม iproute2 และวางไว้ใน / usr / lib / tc; ดังนั้นจึงเป็นไปได้ด้วยความพยายามในการสร้างการกระจายของคุณเองตามข้อมูลการทดลอง


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