จำกัด การใช้แบนด์วิดท์อินเทอร์เน็ตของเชลล์เฉพาะ


21

ฉันต้องการอัปเดต linux ของฉันในเชลล์หนึ่ง แต่โดยค่าเริ่มต้น wget หรือ axel ใน updater ใช้แบนด์วิดท์ทั้งหมด

ฉันจะ จำกัด ความเร็วในกระสุนนี้ได้อย่างไร?

ฉันต้องการเชลล์อื่น ๆ เพื่อให้มีการแบ่งปันที่ยุติธรรมและ จำกัด ทุกอย่างในเชลล์นั้น - เหมือนกับ proxy!

ฉันใช้ Zsh และ Arch Linux

คำถามนี้มุ่งเน้นไปที่การแก้ปัญหาทั้งกระบวนการหรือทั่วทั้งเซสชัน ดูวิธี จำกัด แบนด์วิดท์เครือข่าย สำหรับโซลูชันทั้งระบบหรือคอนเทนเนอร์ทั่วบน Linux

คำตอบ:


22

มีลักษณะที่หยด userspace แบนด์วิดธ์ Shaper เพียงแค่เริ่มเชลล์ของคุณด้วยหยดและระบุความเร็วเช่น:

trickle -d 100 zsh

ซึ่งพยายาม จำกัด ความเร็วในการดาวน์โหลดไว้ที่ 100KB / s สำหรับโปรแกรมทั้งหมดที่เปิดตัวภายในเชลล์นี้

เนื่องจากหยดใช้LD_PRELOADสิ่งนี้จะไม่ทำงานกับโปรแกรมที่เชื่อมโยงแบบสแตติก แต่นี่ไม่ใช่ปัญหาสำหรับโปรแกรมส่วนใหญ่


โปรดทราบว่ามันถูก จำกัด ไว้ที่ SOCK_STREAMS ซ็อกเก็ตดังนั้นจะไม่ส่งผลกระทบต่อการรับส่งข้อมูลของ UDP
Stéphane Chazelas

5

http://lartc.org/wondershaper/

มันอยู่ในที่เก็บ Ubuntu / Debian ซึ่งอาจเป็นที่อื่น ๆ เช่นกัน มัน จำกัด ไม่เพียงแค่เปลือกหอยเดียว แต่รวมถึงเครื่องทั้งหมด ไม่เคยลองด้วยตัวเอง


2

หน้าคนสำหรับการwgetให้ข้อมูลต่อไปนี้:

 --limit-rate=amount

จำกัด ความเร็วในการดาวน์โหลดเป็นจำนวนไบต์ต่อวินาที จำนวนอาจถูกแสดงเป็นไบต์กิโลไบต์ด้วยส่วนต่อท้าย k หรือเมกะไบต์ด้วยส่วนต่อท้าย m ตัวอย่างเช่น --limit-rate = 20k จะ จำกัด อัตราการดึงข้อมูลไว้ที่ 20KB / s สิ่งนี้มีประโยชน์เมื่อด้วยเหตุผลใดก็ตามคุณไม่ต้องการให้ Wget ใช้แบนด์วิดท์ที่มีอยู่ทั้งหมด


อัปเดตคำถาม: ฉันต้องการแอปพลิเคชั่นทั้งหมดที่มี จำกัด ไม่เพียงแค่ wget
Mohammad Efazati

@Efazati: ขออภัยฉันไม่ทราบวิธีการตั้งค่าทั่วไป ฉันใช้มันเพื่อ wget และ apt-get เท่านั้น
Marco Daniel

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