Score:2

โหลดบาลานซ์ผ่าน NIC เดียวเพื่อเอาชนะขีดจำกัดต่อการเชื่อมต่อ

ธง ru

ฉันมีการตั้งค่าแปลก ๆ ที่ ISP ให้การเชื่อมต่อที่รวดเร็วมาก (10 Gbps) แต่จำกัดการเชื่อมต่อแต่ละครั้งที่ 50 Mbps วิธีนี้ใช้ได้สำหรับแอปพลิเคชันแบบมัลติเธรดที่ฉันสามารถเพิ่มจำนวนเธรดได้ แต่ฉันต้องการแก้ปัญหานี้สำหรับแอปพลิเคชันแบบเธรดเดียวเช่นกันฉันใช้ Linux และนี่คือทราฟฟิก TCP ทั้งหมด (ต้องเป็น) - ฉันรู้สึกว่ามีวิธีที่ดีในการทำเช่นนี้โดยใช้ iptables แต่นี่เป็นวิธีที่ลึกเกินไป ฉันจำกัดการ์ด NIC หนึ่งใบบนอุปกรณ์ มีวิธีสร้างตัวโหลดบาลานเซอร์ที่สร้างการเชื่อมต่อหลายรายการผ่าน NIC เดียวกันแล้วปัดแพ็กเก็ตหรือไม่ (โดยพื้นฐานแล้วฉันทำสิ่งนี้ในซอฟต์แวร์สำหรับแอพแบบมัลติเธรดอยู่แล้ว .. แต่ต้องการทำในระดับระบบปฏิบัติการ)

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

https://en.wikipedia.org/wiki/Bandwidth-delay_product

Nonny Moose avatar
gb flag
พวกเขาบอกว่าทำไมพวกเขาถึงทำอย่างนั้น?
ru flag
นี่คือสภาพแวดล้อมแบบโฮสต์ - คุณสามารถเข้าถึงเซิร์ฟเวอร์ของคุณผ่านอินเทอร์เน็ตสาธารณะได้ในราคาค่อนข้างถูก แต่องค์กรของเราเลือกใช้ไฟเบอร์สีเข้ม เราจ่ายจริงสำหรับ 10 Gbps ดังนั้นฉันสามารถรับ 10 Gbps... ด้วยเธรด zillion ฉันคิดว่า ISP ไม่ทราบว่ามีกี่คนที่จะเลือกใช้ใยแก้วสีเข้ม ดังนั้นพวกเขาจึงเผื่อเวลาไว้มากจนเกินไป.. และตอนนี้พวกเขาต้องจำกัดความเร็วคนในแต่ละการเชื่อมต่อ (โดยไม่ละเมิดขีดจำกัดความเร็วรวมที่เราจ่ายไป .ที่อยู่ในสัญญา). ทั้งหมดนี้แพงมาก .. พยายามรับเงินของเราให้คุ้มค่า :)
Score:2
ธง ru

ฉันไม่คิดว่าจะมีจุด

แน่นอน คุณสามารถใช้ IP ต้นทางได้หลายรายการ (ไม่ว่าจะจากหลายโฮสต์ หลาย NIC หรือแม้กระทั่ง NIC เดียว) แต่ในทางกลับกัน คุณน่าจะ NAT ทั้งหมดเหล่านั้นไปยังที่อยู่ IPv4 สาธารณะที่คุณมี ดังนั้นจึงไม่แตกต่างจาก ข้างนอก. คุณสามารถใช้หลายเธรดได้เช่นกัน

แต่แน่นอนว่าคุณสามารถลองผูกที่อยู่ IP ต้นทางหลายรายการกับ NIC เดียวได้ ไม่มากก็น้อย

ru flag
ขอบคุณสำหรับการตอบกลับอย่างรวดเร็ว - ฉันจะพยายามสร้าง IP จำนวนมากบนโฮสต์ของฉัน (NIC เดียวกัน) จากนั้นใช้ iptables เพื่อปัดเศษให้กับพวกเขา .. จากนั้น NAT ออกที่ปลายอีกด้านหนึ่ง (ทั้งหมดในโฮสต์เดียวกัน) บางทีสิ่งนี้อาจทำให้ระบบคิดว่าเป็นการเชื่อมต่อที่แยกจากกัน ฉันไม่แน่ใจว่าพวกเขาติดตามได้อย่างไร .. แต่สามารถเป็นแหล่งที่มาเดียวกันและปลายทางเดียวกันได้ .. ตราบใดที่อยู่ในเธรดอื่น มันจะได้รับแบนด์วิธของตัวเอง!
Zac67 avatar
ru flag
เป็นไปได้ว่าการเชื่อมต่อหลายเธรด / ซ็อกเก็ตเป็นสิ่งที่คุณต้องการ การโยนที่อยู่ IP ที่แตกต่างกัน *ก่อน* NAT ไม่สามารถสร้างความแตกต่างได้จริงๆ (เว้นแต่จะต้องทำให้แอปพลิเคชันใช้ ECMP)
Score:1
ธง br

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

ในที่สุดคุณก็มีความต้องการทางธุรกิจที่ดูเหมือนว่าผู้ให้บริการของคุณจะไม่ตอบสนอง ดังนั้น เตรียมพร้อมที่จะจ่ายเพิ่มอีกเล็กน้อยเพื่อให้ได้สิ่งที่คุณต้องการ

ru flag
ขอบคุณมากสำหรับการตอบกลับอย่างรวดเร็ว - มันแปลกจริงๆ แน่นอน พวกเขากำลังติดตามการเชื่อมต่อแต่ละรายการแล้วจำกัด - แต่พวกเขาไม่สนใจว่าต้นทางและปลายทางจะเหมือนกันทั้งหมดหรือไม่ โค้ดแบบมัลติเธรดของฉันกำลังทำสิ่งเดียวกันแบบขนานอย่างแท้จริง (ต้นทางเดียวกัน ปลายทางเดียวกัน - ในกรณีนี้ผ่าน HTTPS แต่ลองใช้อย่างอื่นแล้วและมันก็ไม่สำคัญ) ฉันเดาว่าฉันสงสัยว่ามีวิธีที่จะแยกสิ่งนี้ออกเป็นระดับ OS หรือไม่เพื่อให้ทุกการเชื่อมต่อ TCP กลายเป็น .. พูด .. 50 รายการ .. ซึ่งต่างจากการต้องใช้เครื่องมือซอฟต์แวร์แต่ละชิ้นใหม่เพื่อทำสิ่งนี้ ภายใน
ru flag
กล่าวแตกต่างกัน .. มันไม่ได้อยู่บนพื้นฐานต่อ VM หรือต่อ vNIC ... มันเป็นพื้นฐานต่อการเชื่อมต่ออย่างแน่นอน ... ฉันแค่ไม่แน่ใจว่าสิ่งนี้ถูกติดตามอย่างไรและมีวิธีที่สวยงามในการ ไปไหนมาไหน : ) เรารับประกันความเร็วที่แน่นอน (มันเป็นไฟเบอร์เข้ม) .. ดูความคิดเห็นของฉันในโปสเตอร์อื่นๆ ด้านบน.. แต่พวกเขากำลังจำกัดความเร็วต่อการเชื่อมต่อของเรา ฉันคิดว่าเพื่อหลีกเลี่ยงความแออัด ฉันได้ทดสอบการตั้งค่าเดียวกันทุกประการกับ ISP อื่นซึ่งไม่จำกัดเธรด (เรามี ISP ที่ซ้ำซ้อน.. ศูนย์ข้อมูลที่ซ้ำซ้อน..ฯลฯ) และเร็วกว่า 50 เท่าต่อเธรด

โพสต์คำตอบ

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