เหตุใดฉันจึงได้รับ 300-400 Mbit / s ในเครือข่าย 1,000 Mbit / s ของฉันเท่านั้น


17

การตั้งค่าของฉันเป็นเช่นนี้:

แล็ปท็อป <--> เราเตอร์ <--> เดสก์ท็อป

พวกเขาทั้งหมดสนับสนุนกิกะบิตอีเธอร์เน็ต ฉันใช้เกณฑ์มาตรฐาน TCP / IP 'iperf' บนแล็ปท็อปและเดสก์ท็อปและฉันไม่เคยได้รับปริมาณข้อมูลดิบมากกว่า 400 Mbit / s แล็ปท็อปเป็น Intel Core 2 Duo 2 GHz ที่ใช้ Windows XP เดสก์ท็อปคือ Intel Core 2 quad 2.4 GHz ที่ใช้ Windows 7 ฉันจะดูสิ่งใดเพื่อเพิ่มความเร็วเครือข่ายระหว่างพวกเขาได้สูงสุด ตั้งค่าซอฟต์แวร์หรือไม่ วิธีการทราบว่าสายเคเบิลของฉันไม่ตรงตามข้อกำหนดหรือไม่? จะทราบได้อย่างไรว่าตัวควบคุมกิกะบิตอีเธอร์เน็ตในอุปกรณ์ตัวใดตัวหนึ่งไม่สามารถใช้ความเร็วสูงสุดได้หรือไม่

คำตอบ:


11

1 Gbit / s เป็นค่าสูงสุดทางทฤษฎีของการเชื่อมต่อนี้

มีหลายสิ่งที่สามารถส่งผลกระทบต่อสิ่งนี้

คาดว่าจะได้รับประสิทธิภาพจาก NIC บนเครื่องของคุณเนื่องจากเป็นไปได้มากที่สุด (ตามรายละเอียดอุปกรณ์ "แล็ปท็อป" และ "เดสก์ท็อป") ที่ใช้อแด็ปเตอร์ที่ใช้โฮสต์ที่ใช้ CPU เพื่อประมวลผลทราฟฟิกเครือข่าย ดังนั้นความเร็วจะได้รับผลกระทบจาก CPU ที่ทำสิ่งอื่น ๆ (เช่นการรับข้อมูลจาก HDD ไปยังระบบย่อยเครือข่ายเป็นต้น)

นอกจากนี้ขึ้นอยู่กับว่า "เราเตอร์" คืออะไรมันอาจพยายามประมวลผลข้อมูลเมื่อส่งผ่านจากพอร์ต LAN ไปยังพอร์ต LAN ดังนั้นความเร็วในการประมวลผลอาจส่งผลต่อความเร็วในการถ่ายโอนข้อมูลโดยไม่คำนึงถึงความเร็วของพอร์ต เป็น

ถ้าฉันเป็นคุณการทดสอบครั้งต่อไปของฉันก็คือการทำให้ตัวเองเป็น 'สายเคเบิลแพตช์ครอสโอเวอร์' นานพอ 'CAT6 และต่อสายโน้ตบุ๊กเข้ากับพีซีโดยตรง (คุณอาจสามารถหลุดพ้นจากสายเคเบิลตรงผ่านได้เช่นกัน ข้ามวันเหล่านี้)

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


ดูen.wikipedia.org/wiki/…สำหรับสอง pinouts ที่เป็นไปได้สำหรับการสร้างสายเคเบิลแบบไขว้กิกะบิต
eleven81

ข้อมูลที่ดีอย่างแน่นอน ในกรณีนี้หากผู้ใช้ไม่ได้ใช้ในการทำสายเคเบิลและเป้าหมายคือการขจัดความล่าช้าที่อาจเกิดขึ้นจากนั้นเขาอาจจะดีกว่าที่ใช้สายเคเบิลที่ผลิตจากโรงงาน ไม่มีอะไรเลวร้ายยิ่งไปกว่านั้นแล้วเป็น crimp หลวม ;)
Ƭᴇcʜιᴇ007

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

@davr คุณจะประสบความสำเร็จได้ไหม?
ebrahim.mr

8

iperf ใช้ขนาดหน้าต่างที่เล็กมากโดยค่าเริ่มต้น

เพิ่มหน้าต่างหรือเรียกใช้ในโหมด UDP และมันจะทำให้การเชื่อมต่อ 1 Gbit / s อิ่มตัวอย่างง่ายดาย


ไม่คิดอย่างนั้นฉันจะลองดู
davr

1
คุณจะไม่ทำให้อิ่มตัวด้วยฮาร์ดแวร์ระดับผู้บริโภค โดยทั่วไปแล้วซีพียูจะถูก จำกัด โดยบัส PCI หรือ PCI-Express นั่นคือ CPU ไม่สามารถย้ายข้อมูลจาก RAM ไปยังการ์ดเครือข่ายได้อย่างรวดเร็ว ฮาร์ดแวร์ระดับเซิร์ฟเวอร์ดูเหมือนจะทำได้ดีกว่า ฉันรู้ว่าฉันเป็นโปรแกรมเมอร์และฉันพยายามทำสิ่งนี้ การเข้าใกล้ แต่ตอนนี้ถูก จำกัด โดยฮาร์ดแวร์ของตัวเอง
Matt H

1
ใช้งานได้สำหรับฉันถูกกระแทกหัวของฉันเป็นเวลาหนึ่งชั่วโมงพยายามที่จะคิดออกว่าทำไม iperf ของ Windows ให้ฉัน 250mbit / วินาทีและ Ubuntu บูตในเครื่องเดียวกันให้ฉัน 925mbit / วินาที ปรากฎ iperf บน windows ค่าเริ่มต้นเป็นขนาดหน้าต่าง 8k tcp และขนาดหน้าต่าง 88k บน linux
Omry

@ Omry, iperf บน windows เป็นสุนัขจากหลายมุมมอง ฉันเลิกและเรียกใช้ iperf เป็นส่วนใหญ่ภายใต้ linux แล้วเท่านั้น
Mike Pennington

4

Jeff Atwood มีการวิเคราะห์ที่ดีว่าทำไมปริมาณการใช้งานเครือข่ายกิกะบิตในโลกแห่งความเป็นจริงจึงใกล้เคียงกับการคำนวณของเขา 30MB / s (ใหญ่ 'B' ไม่น้อย 'b')

... คุณไม่ควรคาดหวังการปรับขนาดที่สมบูรณ์แบบที่เราประสบความสำเร็จในการเปลี่ยนจาก 10baseT เป็น 100baseT คุณจะได้รับเพียงเศษเสี้ยวของการปรับปรุงแบนด์วิดท์สิบเท่าที่คุณคาดหวัง


เครื่องมือ "pcattcp" ที่เขาใช้คือชิ้นส่วนของอึ เน็ตบุ๊กลินุกซ์ 900mhz ของฉัน (ซึ่งน่าจะเร็วเท่ากับเครื่องของเขาเมื่อปี 2548) ทำ 300MB / s ผ่านลูปแบ็ค
user23307

ใช่ iperf ให้ประสิทธิภาพที่ดีขึ้นอย่างเห็นได้ชัดกว่าลูปแบ็คมากกว่า pcattcp ฉันจะติด iperf เพื่อทำการทดสอบในตอนนี้เว้นแต่ฉันจะได้ยินสิ่งที่ดีกว่า
davr

1
นอกจากนี้ฉันได้รับสูงกว่า 240mbit ของเขาแล้วและบทความนั้นอายุ 5 ปีดังนั้นฉันจึงไม่เกี่ยวข้องอีกต่อไปเพราะฉันคิดว่าเทคโนโลยีควรมีความก้าวหน้าอย่างมากตั้งแต่นั้นมา
davr

ด้วยการพิจารณาว่าอินเตอร์เฟสลูปแบ็คเป็นเสมือนจริง (ไม่มีอะไรแม้แต่ถูกถ่ายโอนไปยังการ์ดเครือข่าย) คุณคาดหวังประสิทธิภาพที่ดีขึ้นมาก (โดยทั่วไปแล้วจะดำเนินการประมวลผลและไม่ได้สัมผัส HDD) ฉันได้รับ 8.09 Gbits / s (1035Mbytes / s) ผ่านอินเทอร์เฟซวนรอบ
Matt H

3

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


การเพิ่มขึ้นนั้นไม่น่าจะเกิดขึ้นสำหรับแอพพลิเคชั่นส่วนใหญ่ ทั้งหมดนี้จะทำคือหมายถึงน้อยกว่าค่าใช้จ่ายโปรโตคอล TCP หรือ UDP ต่อแพ็คเก็ต นอกจากนี้เพื่อผลลัพธ์ที่ดีที่สุดสวิตช์ / เราเตอร์ของคุณควรสนับสนุนเฟรมขนาดใหญ่ ฉันสงสัยว่าเขาจะ
Matt H

สำหรับผลลัพธ์ใด ๆสวิตช์ของคุณต้องรองรับเฟรมขนาดใหญ่ ไม่มีวิธีสำหรับอุปกรณ์ L2 เท่านั้นที่จะส่งข้อผิดพลาด ICMP 'Packet ใหญ่เกินไป' กลับไปเพื่อบอกเครื่องของคุณว่าต้องใช้ขนาดแพ็คเก็ตที่เล็กกว่า
cpt_fink

1

คุณว่าคุณใช้เราเตอร์หรือไม่? นั่นคือเราเตอร์นอกชั้นวางสินค้าสำหรับผู้บริโภค (ไม่ใช่สวิตช์) หรือไม่

ฉันจะบอกว่าเป็นไปได้มากที่คอขวดของคุณ หากต้องการตรวจสอบสิ่งนี้ให้เสียบแล็ปท็อปเข้ากับเดสก์ท็อปโดยตรง ตั้งค่าแล็ปท็อปและเดสก์ท็อปของคุณให้ใช้ที่อยู่ IP แบบคงที่เช่น 192.168.1.10 (แล็ปท็อป), 192.168.1.11 (เดสก์ท็อป)

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

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

หากคุณเห็นการเพิ่มขึ้นอย่างเห็นได้ชัดเราเตอร์ของคุณคือผู้ร้าย บางตัวมีสวิตช์ที่ด้านหลังส่วนอื่น ๆ สามารถกำหนดเส้นทางระหว่างพอร์ตได้ เราเตอร์เหล่านี้จำนวนมากเป็นนักแสดงที่น่ากลัว หากคุณพบว่านี่เป็นปัญหาจากนั้นถ้าฉันเป็นคุณฉันจะอัพเกรดเราเตอร์ (ซึ่งอาจเป็นเรื่องปกติสำหรับการใช้อินเทอร์เน็ต) หรือไปซื้อสวิตช์ GigE ด้วยตัวคุณเอง เสียบแล็ปท็อปและเดสก์ท็อปของคุณเข้ากับสวิตช์ ด้วยวิธีนี้พวกเขาจะข้ามเราเตอร์เพื่อพูดคุยกัน

ตรวจสอบให้แน่ใจว่าคุณเปลี่ยนแล็ปท็อปและเดสก์ท็อปของคุณกลับเป็น DHCP เมื่อเสร็จสิ้นการทดสอบ

เพื่อให้ความคิดแก่คุณคุณควรเข้าใจว่า 650Mbit / s ขึ้นไป iperf ไม่ได้ใช้ฮาร์ดไดรฟ์เว้นแต่คุณจะแจ้งให้ทราบ ดังนั้นมันคือหน่วยความจำต่อหน่วยความจำหรือทดสอบเครือข่ายจริงๆ

อีกด้านหนึ่งของคอขวดคือความเร็วที่ CPU ของคุณสามารถถ่ายโอนข้อมูลจากหน่วยความจำไปยังการ์ดเครือข่ายได้ เครือข่ายที่ใช้ PCI Express ดูเหมือนว่าทำงานได้ดีขึ้น ฉันคิดว่าแล็ปท็อปมักจะถูกสร้างขึ้นค่อนข้างถูกในทุกวันนี้ดังนั้นหากคุณไม่เห็นอะไรมากไปกว่านี้ก็อาจเป็นปัญหาคอขวดอื่น ๆ

นอกจากนี้สวิตช์ระดับผู้บริโภคยังสามารถรองรับการสลับ 1GB ระหว่างสองพอร์ตในขณะที่สวิตช์ที่มีการจัดการระดับไฮเอนด์สามารถสลับที่ความเร็วสายไฟในทุกพอร์ตพร้อมกัน นั่นเป็นส่วนหนึ่งของเหตุผลที่พวกเขาเสียค่าใช้จ่ายมากขึ้น


1

เราได้ทำการทดสอบหลายครั้งและมันล้วงลงไปในระบบปฏิบัติการ

หากเราไปจาก Ubuntu 11.04 ถึง Ubuntu 11.04 (เหมือนกับ CentOS สำหรับเครื่อง Linux) ความเร็วในการรับส่งข้อมูลจะอยู่ที่ ~ 938-941 MBits / s ถ้าเราไปจาก Windows 7 x64 SP1 Ultimate กับ Ubuntu 11.04 มันจะแตกต่างจาก ~ 440-475 MBits / s หากเราย้ายจาก Windows 2008 R2SP1 x64 ไปยัง Ubuntu 11.04 ความเร็วจะวัดได้ ~ 435-635 MBits / s

อย่างที่คุณเห็นเครื่องที่ใช้ลีนุกซ์ใช้ประโยชน์จากลิงค์กิกะบิตอย่างเต็มที่เมื่อเทียบกับ Windows ขณะนี้เรากำลังตรวจสอบการตั้งค่าใน Windows ซึ่งจะทำให้ปริมาณงานเท่ากันกับ Linux บนฮาร์ดแวร์เดียวกัน ข้อ จำกัด ของฮาร์ดไดรฟ์ไม่ใช่ปัจจัยเนื่องจากมีอยู่ในหน่วยความจำ สำหรับการบันทึกเครื่องที่เราใช้มีไดรฟ์ 7200 RPM พร้อม SATA 3.0 ทั้ง Ubuntu 11.04 (หรือฐาน Linux) และ Windows เกินความเร็วทางทฤษฎีของลิงค์ SATA เหล่านั้น


ขอบคุณสำหรับข้อมูลโปรดอัปเดตคำตอบของคุณถ้าคุณพบว่าการตั้งค่าใด ๆ ที่มีผลต่อความเร็วในหน้าต่าง
davr

นี่ทำให้ฉันสงสัยว่า iperf ไม่ใช่ส่วนเดียวของ Windows ที่ใช้ค่าเริ่มต้นเป็นขนาดแพ็คเก็ตที่เล็กกว่า Linux ดูsuperuser.com/a/95587/16966
matt wilkie

0

ความเร็วในการถ่ายโอนนั้นดีพอ ๆ กับจุดอ่อนที่สุดในโซ่ อาจไม่ใช่ความเร็วเครือข่าย แต่ความเร็วในการเขียน / อ่านของฮาร์ดไดรฟ์ของคุณ

คุณสามารถดาวน์โหลดซอฟต์แวร์RamDiskและสร้าง RamDisk บนคอมพิวเตอร์ทั้งสองเครื่อง วางไฟล์ขนาดที่เหมาะสมไว้ด้านในและทำการถ่ายโอนผ่านเครือข่ายระหว่าง RamDisks นี่จะแสดงความเร็วที่แท้จริงของเครือข่ายของคุณซึ่งจะไม่เกิดขึ้นกับความเร็วฮาร์ดไดรฟ์ของคุณ


2
นั่นเป็นเหตุผลที่ฉันพูดถึง 'iperf' แต่ฉันคิดว่ามันไม่ใช่เรื่องธรรมดาของเครื่องมือ โดยทั่วไปจะทำการทดสอบความเร็วเครือข่ายโดยตรงโดยไม่ต้องอ่าน / เขียนข้อมูลลงในฮาร์ดไดรฟ์ดังนั้นจึงไม่ใช่ปัญหาคอขวด ฉันตระหนักดีว่า HDD อาจเป็นปัญหาคอขวดในการใช้งานจริง
davr

0

ไม่ใช่คำตอบสำหรับคำถามของคุณโดยตรง แต่เมื่อเร็ว ๆ นี้เราได้ผลลัพธ์ดังต่อไปนี้iperfระหว่างกล่อง Linux สองกล่อง (8 คอร์, 2.66 GHz แต่ละกล่อง):

------------------------------------------------------------
Client connecting to 192.168.74.15, TCP port 5001
TCP window size:  192 KByte (default)
------------------------------------------------------------
[  3] local 192.168.74.25 port 54016 connected with 192.168.74.15 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.10 GBytes   941 Mbits/sec

กับ MTU = 1500 (เช่นไม่ได้ใช้เฟรมขนาดใหญ่) ที่ควรให้คุณทราบว่าการทำงานเป็นไปได้ในหลักการอะไร

การ์ดเครือข่าย (เอาต์พุต lspci) คือ:

82571EB Gigabit Ethernet Controller

ทั้งสองด้าน.

คุณอาจต้องการตรวจสอบโหลด CPU บนเซิร์ฟเวอร์และโดยเฉพาะอย่างยิ่งในฝั่งไคลเอ็นต์และดูว่าใกล้ถึง 100% แล้วหรือยัง แม้ว่าฉันต้องบอกว่าในระบบของเราแกนกลางที่คึกคักที่สุดคือ 80% (83%) ที่ว่างบนฝั่งผู้รับ (ผู้ส่ง) ในขณะที่อีก 7 คนดูเหมือนจะว่าง 100% (ตรวจสอบด้วยmpstat)

สิ่งนี้กำลังทำงานiperfโดยไม่มี-uตัวเลือกนั่นคือใช้ TCP


ฉันคิดว่าคุณควรจะได้รับ> 500 หรือ 600 mbits / s บนฮาร์ดแวร์เดสก์ท็อปอายุ 1 - 2 ปี
Matt H

-4

davr ซึ่งแตกต่างจากช่องสัญญาณไฟเบอร์และเทคโนโลยีที่คล้ายคลึงกันซึ่งใช้โครงร่างการจัดสรรแบนด์วิดท์ที่ซับซ้อนอีเธอร์เน็ตเป็นโปรโตคอล 'ฟังและเบลอ' อีเธอร์เน็ตจะรับฟังก่อนหากมีใครกำลังส่งสัญญาณอยู่หากเป็นเช่นนั้นให้รอถ้าไม่ส่ง ปัญหาคือว่าถ้าสองคนหรือมากกว่าที่ประสงค์จะฟังกำลังฟังในเวลาเดียวกันพวกเขาก็จะส่งในเวลาเดียวกันเช่นกัน! สิ่งนี้จะทำให้เกิดการชนและส่งสัญญาณซ้ำ สวิตช์แฟนซีกำจัดสิ่งนี้ได้มากมาย แต่ไม่ใช่ทั้งหมด

ด้วยอีเธอร์เน็ตคุณควรคาดหวังเห็นแบนด์วิดท์ประมาณ 30-40 เปอร์เซ็นต์ (ดูเหมือนว่าคุณจะได้รับสิ่งนี้.. ฉันอาจผิดใน # แน่นอนขึ้นอยู่กับคุณภาพของสวิตช์และอื่น ๆ ) ก่อนที่จะเกิดการชนจำนวนมากด้วยเทคโนโลยีผ้า ประมาณ 80% อีเธอร์เน็ตราคาถูกช่องไฟเบอร์ไม่ได้ . . ฉันไม่แน่ใจว่าอีเธอร์เน็ต 4G ทำอะไรได้บ้าง . . มันอาจมี 'ผ้า' มากขึ้นเช่นโทโพโลยีเครือข่ายที่คล้ายกับ Fibre Channel และเพื่อน ๆ นี่คือการทำให้ใหญ่เกินไป แต่ถูกต้องเป็นหลัก


2
ใช่ฉันไม่ได้ใช้ 'ใบ้' ฮับ ฉันคิดว่าคนส่วนใหญ่ในทุกวันนี้จะใช้สวิตช์หรือเราเตอร์อัจฉริยะที่จัดการอุปกรณ์เชื่อมต่อโดยตรงซึ่งกันและกัน การทดสอบของฉันเกี่ยวข้องกับอุปกรณ์เพียงสองชิ้นที่เชื่อมต่อกับเราเตอร์เครื่องเดียวดังนั้นการชนจะไม่เกิดปัญหาในกรณีของฉันโดยเฉพาะ
davr

davr - แก้ตัวขณะที่ฉันเล่นทนายของปีศาจอยู่ครู่หนึ่ง . . อะไรทำให้ทั้งสองโฮสต์ไม่พยายามพูดในเวลาเดียวกัน นอกจากนี้คุณไม่ได้กล่าวถึงชนิดของข้อมูลที่ถูกส่ง . . มันเกือบจะเป็น TCP แบบพิเศษหรือมีการสตรีมข้อมูลจำนวนมาก (เสียงวิดีโอและอื่น ๆ )? คอมพิวเตอร์ทั้งสองสตรีมข้อมูลพร้อมกันหรือมีความสัมพันธ์กับไคลเอนต์ / เซิร์ฟเวอร์ที่แบ่งเขตอย่างแม่นยำมากขึ้นหรือไม่
TheEruditeTroglodyte

2
ฉันใช้โปรแกรมการเปรียบเทียบ TCP / IP พิเศษที่มีคอมพิวเตอร์เครื่องเดียวเท่านั้นที่ส่งและฟังอื่น ๆ แต่ถึงกระนั้นอีเธอร์เน็ตก็เป็นเพล็กซ์เต็มรูปแบบ ... หากคุณมีเพียงสองเครื่องพวกเขาทั้งสองสามารถส่งและรับแบนด์วิดธ์เต็มรูปแบบซึ่งกันและกันในเวลาเดียวกัน
davr
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.