เรามีลิงก์อินเทอร์เน็ตความเร็ว 1Gbps (ขึ้น/ลง) ที่ทำงาน และฉันสังเกตว่าประสิทธิภาพแย่มากเมื่อสื่อสารกับเซิร์ฟเวอร์ของเราในระบบคลาวด์ ฉันหมายถึงแย่มาก จาก 1,000Mbps ทางทฤษฎี เราได้รับสูงสุด 30Mbps หลังจากเซสชันการวินิจฉัยที่ยาวนาน เราพบว่าเรามีปัญหาด้านประสิทธิภาพเครือข่ายเมื่อรับข้อมูลจากเครื่อง Windows Server ของเรา น่าแปลกที่เราได้รับความเร็วที่ค่อนข้างดีเมื่อเซิร์ฟเวอร์เป็น Linux VM (ฉันต้องทำการปรับเปลี่ยนเล็กน้อยเพื่อให้มีหน้าต่างความแออัดของ TCP ที่ใหญ่ขึ้น – การเปลี่ยนแปลงที่แน่นอนตามรายการด้านล่าง)
ในระหว่างขั้นตอนการตรวจสอบ ฉันได้ลบองค์ประกอบต่างๆ ออกมากขึ้นเรื่อยๆ เพื่อลดปัญหาให้เหลือรูปแบบที่เรียบง่ายที่สุด แล็ปท็อปทดสอบของฉันเชื่อมต่อโดยตรงกับโมเด็มแล้ว โดยไม่มีซอฟต์แวร์ใดๆ ที่อาจรบกวนการทำงานของเครือข่าย เหมือนกันกับ VM ทดสอบของฉันในระบบคลาวด์ (ผู้ให้บริการ 3 อันดับแรก) ฉันใช้ iperf เพื่อเปรียบเทียบความเร็วในการถ่ายโอน เนื่องจากฉันลบไฟร์วอลล์ออกจากสมการ ผลลัพธ์จึงแตกต่างออกไปมาก และเราได้รับความเร็วเป็นร้อย Mbps แต่ฉันก็ยังไม่เข้าใจสิ่งต่อไปนี้:
Linux VM ในระบบคลาวด์ส่งข้อมูลไปยังแล็ปท็อป : ฉันได้รับค่าเฉลี่ย 640Mbps จาก 60 วินาทีในการทดสอบครั้งล่าสุด (วินาทีต่ำสุดในการทดสอบนี้คือ 530Mbps)
Windows VM ในระบบคลาวด์ส่งข้อมูลไปยังแล็ปท็อป : บางครั้งเริ่มต้นที่ 400Mbps และอาจถึง 500Mbps ในช่วงระยะเวลาสั้นๆ แต่ประมาณ 90% เริ่มต้นที่ประมาณ 60Mbps ในวินาทีที่ 1 จากนั้นลดลงเหลือ 30Mbps จากนั้นจะค่อยๆ ปีน หากฉันปล่อยให้การทดสอบดำเนินไป 60 วินาที ความเร็วจะถึงประมาณ 400Mbps หลังจากผ่านไป 20 วินาทีขึ้นไป แต่ความเร็วในการถ่ายโอนจะเสถียรน้อยกว่า Linux มาก (โดยรวมแล้วดูเหมือนว่าจะช้ากว่าเช่นกัน แต่ก็ยากที่จะประเมินในตอนนี้ ).
ข้อมูลเพิ่มเติม
- แล็ปท็อป (ไคลเอนต์ในการถ่ายโอนข้อมูล) เป็นพีซีที่ใช้ Windows
- เมื่อแล็ปท็อปทำหน้าที่เป็นเซิร์ฟเวอร์ (อัปโหลด) ความเร็วก็ดีไม่ว่าการกำหนดค่าจะเป็นเช่นไร (ปลายทางอาจเป็น Linux, Windows, ไฟร์วอลล์ธุรกิจที่ใช้อยู่ก็ไม่เปลี่ยนแปลงอะไรเช่นกัน)
- ฉันได้เล่นกับการตั้งค่าของ Windows VM (อะแดปเตอร์และ TCP) ด้วยวิธีทั้งหมดเท่าที่จะจินตนาการได้โดยไม่ส่งผลกระทบต่อปัญหา สิ่งเดียวที่ได้รับจากการเชื่อมต่อแล็ปท็อปโดยตรงกับโมเด็มในที่ทำงาน (จากนั้นฉันจะเปลี่ยนจากประมาณ 10Mbps เป็น 30-400Mbps ขึ้นอยู่กับประเภทของการทดสอบ)
- ฉันใช้ iperf3 เพื่อสร้างเกณฑ์มาตรฐานทั้งหมด (ผลลัพธ์บางส่วนแสดงอยู่ด้านล่าง)
- เมื่อสร้าง Windows Server VM ฉันใช้ระบบปฏิบัติการเริ่มต้นที่ผู้ให้บริการระบบคลาวด์นำเสนอ ดังนั้นจึงไม่มีการกำหนดค่าที่แปลกใหม่
- Ping ระหว่างสำนักงานของเราและเซิร์ฟเวอร์ของเราอยู่ที่ประมาณ 28 มิลลิวินาที
- ขณะที่ฉันเชื่อมต่อกับไฟร์วอลล์ เราได้ทำการทดสอบกับเพื่อนร่วมงานที่มีการเชื่อมต่อทางธุรกิจกับผู้ให้บริการอินเทอร์เน็ตรายเดียวกัน (ความเร็วเท่ากับที่เรามีในสำนักงาน) ปิงจากแล็ปท็อปของฉันไปยัง Windows VM ที่บ้านของเขาอยู่ระหว่าง 2 ถึง 3 มิลลิวินาที ปริมาณงาน (VM ของเขาทำหน้าที่เป็นเซิร์ฟเวอร์) อยู่ที่ประมาณ 120 Mbps การทดสอบเดียวกันกับ VM ในระบบคลาวด์ (28ms ping) คือ 10 Mbps
- ฉันต้องตั้งค่าพารามิเตอร์หน้าต่างขนาดใหญ่เมื่อใช้ iperf จาก Windows OS เพื่อให้แบนด์วิดท์สูงสุด (-w 5M) แต่ไม่จำเป็นจาก Linux
ความประทับใจของฉันคือมีปัญหากับการปรับขนาดหน้าต่างความแออัดของ Windows Server การจับภาพ Wireshark แสดงหน้าต่าง TCP ขนาดใหญ่ที่ไม่ได้ใช้ แต่ฉันไม่ทราบวิธีแก้ไขปัญหาหรือตรวจสอบเพิ่มเติม ณ จุดนี้
ฉันได้รวมการทดสอบบางอย่างที่ฉันทำไว้ด้านล่าง แต่ฉันสามารถให้เพิ่มเติมได้หากจำเป็น
## IPERF (Linux VM ในระบบคลาวด์ส่งข้อมูลไปยังแล็ปท็อปที่สำนักงาน)
superuser@testnr5linux:~$ iperf3 -c xx.xx.xx.xx -w 5M -t 60
กำลังเชื่อมต่อกับโฮสต์ xx.xx.xx.xx พอร์ต 5201
[ 5] ท้องถิ่น 10.4.0.4 พอร์ต 47268 เชื่อมต่อกับ xx.xx.xx.xx พอร์ต 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 วินาที 76.2 เมกะไบต์ 640 เมกะไบต์/วินาที 343 2.54 เมกะไบต์
[ 5] 1.00-2.00 วินาที 80.0 เมกะไบต์ 671 เมกะไบต์/วินาที 53 1.88 เมกะไบต์
[ 5] 2.00-3.00 วินาที 73.8 เมกะไบต์ 619 เมกะไบต์/วินาที 0 1.98 เมกะไบต์
[ 5] 3.00-4.00 วินาที 77.5 เมกะไบต์ 650 เมกะไบต์/วินาที 0 2.06 เมกะไบต์
[ 5] 4.00-5.00 วินาที 80.0 เมกะไบต์ 671 เมกะไบต์/วินาที 0 2.11 เมกะไบต์
(อีก 55 วินาทีเฉลี่ย 640Mbps)
## ตัวอย่างความเร็วที่ดีจาก cloud VM (Windows) ตามด้วยการเริ่มต้นที่ช้าเป็นเวลานาน
C:\Users\superuser>iperf3.exe -c xx.xx.xx.xx -w 5M
กำลังเชื่อมต่อกับโฮสต์ xx.xx.xx.xx พอร์ต 5201
[ 4] ท้องถิ่น 10.3.0.4 พอร์ต 51988 เชื่อมต่อกับ xx.xx.xx.xx พอร์ต 5201
[ ID] แบนด์วิดธ์การถ่ายโอนช่วงเวลา
[ 4] 0.00-1.00 วินาที 17.4 เมกะไบต์ 145 เมกะบิต/วินาที
[ 4] 1.00-2.00 วินาที 28.9 เมกะไบต์ 243 เมกะบิต/วินาที
[ 4] 2.00-3.00 วินาที 53.1 เมกะไบต์ 446 เมกะบิต/วินาที
[ 4] 3.00-4.00 วินาที 54.0 เมกะไบต์ 453 เมกะบิต/วินาที
[ 4] 4.00-5.00 วินาที 54.0 เมกะไบต์ 452 เมกะบิต/วินาที
[ 4] 5.00-6.00 วินาที 54.9 เมกะไบต์ 461 เมกะบิต/วินาที
[ 4] 6.00-7.00 วินาที 55.5 เมกะไบต์ 465 เมกะบิต/วินาที
[ 4] 7.00-8.00 วินาที 56.2 เมกะไบต์ 471 เมกะบิต/วินาที
[ 4] 8.00-9.00 วินาที 58.2 เมกะไบต์ 490 เมกะบิต/วินาที
[ 4] 9.00-10.00 วินาที 60.5 เมกะไบต์ 508 เมกะบิต/วินาที
- - - - - - - - - - - - - - - - - - - - - - - -
[ ID] แบนด์วิดธ์การถ่ายโอนช่วงเวลา
[ 4] 0.00-10.00 วินาที ผู้ส่ง 493 เมกะไบต์ 413 เมกะบิต/วินาที
[ 4] 0.00-10.00 วินาที ตัวรับ 490 เมกะไบต์ 411 เมกะบิต/วินาที
เสร็จสิ้น
C:\Users\superuser>iperf3.exe -c xx.xx.xx.xx -w 5M
กำลังเชื่อมต่อกับโฮสต์ xx.xx.xx.xx พอร์ต 5201
[ 4] ท้องถิ่น 10.3.0.4 พอร์ต 51996 เชื่อมต่อกับ xx.xx.xx.xx พอร์ต 5201
[ ID] แบนด์วิดธ์การถ่ายโอนช่วงเวลา
[ 4] 0.00-1.01 วินาที 7.12 เมกะไบต์ 59.0 เมกะบิต/วินาที
[ 4] 1.01-2.01 วินาที 3.25 เมกะไบต์ 27.4 เมกะบิต/วินาที
[ 4] 2.01-3.00 วินาที 4.00 เมกะไบต์ 33.8 เมกะบิต/วินาที
[ 4] 3.00-4.00 วินาที 5.00 เมกะไบต์ 41.9 เมกะบิต/วินาที
[ 4] 4.00-5.01 วินาที 5.88 เมกะไบต์ 49.0 เมกะบิต/วินาที
[ 4] 5.01-6.00 วินาที 6.62 เมกะไบต์ 56.0 เมกะบิต/วินาที
[ 4] 6.00-7.00 วินาที 7.50 เมกะไบต์ 62.9 เมกะบิต/วินาที
[ 4] 7.00-8.01 วินาที 8.62 เมกะไบต์ 71.8 เมกะบิต/วินาที
[ 4] 8.01-9.00 วินาที 9.38 เมกะไบต์ 79.5 เมกะบิต/วินาที
[ 4] 9.00-10.01 วินาที 10.4 เมกะไบต์ 86.3 เมกะบิต/วินาที
- - - - - - - - - - - - - - - - - - - - - - - -
[ ID] แบนด์วิดธ์การถ่ายโอนช่วงเวลา
[ 4] 0.00-10.01 วินาที 67.8 เมกะไบต์ ผู้ส่ง 56.8 เมกะบิต/วินาที
[ 4] 0.00-10.01 วินาที 63.1 MBytes 52.9 Mbits/วินาที ตัวรับ
## การเปลี่ยนแปลงที่ฉันต้องทำกับ /etc/sysctl.conf เพื่อเพิ่ม CWND
# อนุญาตให้ทดสอบกับบัฟเฟอร์สูงสุด 64MB
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
# เพิ่มขีด จำกัด บัฟเฟอร์ TCP อัตโนมัติของ Linux เป็น 32MB
net.ipv4.tcp_rmem = 4096 87380 33554432
net.ipv4.tcp_wmem = 4096 65536 33554432
หมายเหตุ - ดูเหมือนว่าฉันต้องการอย่างน้อย 10 ชื่อเสียงในการโพสต์ภาพ แต่นี่คือลิงค์.. https://i.stack.imgur.com/IXhnS.png
https://i.stack.imgur.com/UyPYL.png