วิธี จำกัด แบนด์วิดท์ของโปรแกรมบน Windows


85

มีเทคนิคใน Windows ที่สามารถ จำกัด แบนด์วิดท์ของกระบวนการทำงานอยู่หรือไม่?


3
มีรายชื่อทั้งหมดของการใช้งานที่นี่ที่สามารถทำเช่นนี้คือalternativeto.net/software/netbalancer
bgmCoder

การปรับปรุงใหม่ของ NetBalencers ไม่ได้ จำกัด โปรแกรมตามคำสั่งของพวกเขาการทดลองใช้เพียง 7 วันคุณสามารถ จำกัด ได้เพียง 3 โปรแกรมเท่านั้น (เมื่อตัดสินใจทำงาน) และมีค่าใช้จ่ายมากถึง 50 bucks สำหรับบริการเต็มรูปแบบ อย่าแม้แต่จะรำคาญ

คำตอบ:


21

ผมใช้Limiter สุทธิซึ่งมีรุ่นฟรีแต่โชคร้ายที่คุณจะต้องจ่ายสำหรับคุณสมบัติข้อ จำกัด

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

นอกจากคุณสมบัติที่เป็นเอกลักษณ์นี้แล้ว Netlimiter ยังมีชุดเครื่องมือทางสถิติอินเทอร์เน็ตที่ครอบคลุม ซึ่งรวมถึงการวัดปริมาณการใช้งานแบบเรียลไทม์และสถิติการรับส่งข้อมูลทางอินเทอร์เน็ตในระยะยาวต่อแอปพลิเคชัน


8
ไม่เวอร์ชัน lite / pro ที่อนุญาตการ จำกัด การรับส่งข้อมูลไม่ฟรี
demonkoryu

หนึ่งนี้ในทางตรงกันข้ามทำงานค่อนข้างดีใน Windows XP
GSerg

NetLimiter 4 ยังคงมีฟังก์ชั่นการ จำกัด และเป็นรุ่นฟรี แต่ จำกัด เวลา
Dan Atkinson

9

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

NetBalancer


ต่อหนึ่งในคำตอบด้านบนอื่น ๆ ในขณะที่ผมทดสอบออกNetBalancer มันทำงานได้ดีจริงๆ - และง่ายต่อการกำหนดค่า

NetBalancer มีให้ซื้อบนหน้าเว็บของพวกเขาในราคาประมาณ $ 50 รุ่นทดลอง / ฟรีช่วยให้คุณตรวจสอบการเชื่อมต่อ - แต่ไม่อนุญาตการควบคุมปริมาณ

Netlimiter


ทางเลือกคือNetlimiter มันมีช่วงเวลาทดลองใช้ฟรี - แต่เริ่มต้นที่ ~ $ 20 สำหรับรุ่น Lite หรือ ~ $ 30 สำหรับรุ่น Pro NetLimiter เป็นแอปพลิเคชัน Go-to ที่ทดสอบและทดลองแล้วสำหรับ SysAdmins จำนวนมาก

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

การใช้เราเตอร์ (พร้อมคำอธิบายว่าทำไมนี่จึงไม่ใช่วิธีการที่ดีสำหรับกรณีการใช้งานนี้)


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

รูปแบบเดียวที่ใกล้เคียงกับมีประโยชน์ในส่วนนี้คือหากแอปพลิเคชันสื่อสารเฉพาะผ่านช่องทางเฉพาะหรือประเภทการรับส่งข้อมูลที่เราเตอร์สามารถระบุได้อย่างง่ายดาย ตัวอย่างด้านล่างของการดาวน์โหลด Origin ของ EA:

Origin ใช้ Akamai ในปัจจุบัน โดยทั่วไปฉันตั้งค่าการดาวน์โหลด / อัปเดตอัตโนมัติเพื่อให้ทำงานได้ตลอดเวลา - แต่ฉันต้องการที่จะไม่ใช้ความจุของบรรทัดทั้งหมดในขณะที่ฉันกำลังยุ่งกับการทำสิ่งสำคัญอื่น ๆ แหล่งกำเนิดเกิดขึ้นเป็นอย่างมากที่ไม่ดีที่นี้ การเรียงลำดับของสิ่งที่ดังนั้นจึงไม่สนับสนุนกำหนดการดาวน์โหลดหรือดาวน์โหลดการควบคุมปริมาณ ปัจจุบันเดสก์ท็อปของฉันกำลังดาวน์โหลดเกมโดยใช้เซิร์ฟเวอร์ "a1750.d.akamai.net" เราเตอร์ MikroTik (ตัวอย่างของเราเตอร์อัจฉริยะ) สามารถรับทราบว่าชื่อ DNS นี้ถูกใช้ (จะอยู่ในแคช DNS ที่มีที่อยู่ IP) และสามารถกำหนดค่าชั่วคราวเพื่อเพิ่มที่อยู่ IP ของเซิร์ฟเวอร์ปลายทางในรายการ "ที่อยู่" " การรับส่งข้อมูลทั้งหมดไปยัง / จากรายการที่อยู่สามารถเพิ่มลงในคิวการควบคุมปริมาณดังนั้นเทคนิคการควบคุมปริมาณแอปพลิเคชันเดียว

วิธีการข้างต้นไร้เดียงสาอย่างไรก็ตาม EA สามารถที่ใดเวลาเปลี่ยนชื่อเซิร์ฟเวอร์โปรโตคอลที่ใช้หรือบริการอื่น ๆ ที่ไม่เกี่ยวข้องกับการใช้โครงสร้างพื้นฐานของ Akamai อาจจะผ่อนคันเร่งโดยไม่ได้ตั้งใจ ตอนนี้กฎใหม่ของฉันมันไร้ประโยชน์และเสีย


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

ถอนหายใจ ตอนนี้อยากรู้ว่าเมื่อมีการเปลี่ยนแปลง ฉันไม่ได้ติดตั้ง Origin ตั้งแต่ฉัน "รีเฟรช" เดสก์ท็อปเกมของฉันครั้งล่าสุด
zaTricky

2

นี่คือปริมาณที่ไม่ดีของฉัน:

มันไม่ได้ จำกัด แบนด์วิดท์ที่แน่นอนมันค่อนข้างจะหยุด / กลับสู่กระบวนการกินแบนด์วิดธ์และทำให้แบนด์วิดท์บางอย่างสำหรับการใช้งานอื่น ๆ และได้ฟรี!

คุณต้องการPsSuspend.exe (ฉันใส่ไฟล์นี้ลงใน C: \ tools \ sysinternals) และแบตช์ไฟล์ (เช่น) slow.bat:

@echo off
:START 
c:\tools\sysinternals\pssuspend.exe %1 >NUL: 2>&1
timeout /T 1 /NOBREAK >NUL:
c:\tools\sysinternals\pssuspend.exe -r %1 >NUL: 2>&1
timeout /T 1 /NOBREAK >NUL:
goto START

ตอนนี้เปิดบรรทัดคำสั่งในฐานะผู้ดูแลระบบและรันไฟล์แบตช์ด้วยโปรแกรม throttles เป็นพารามิเตอร์

slow.bat filetransfer.exe

(แทนที่ filetransfer.exe ด้วยชื่อโปรแกรมของคุณ)

หากคุณทำเสร็จแล้วกด CTRL-C และยกเลิกแบทช์

หากโปรแกรมยังคงทำงานอยู่ให้พิจารณาดำเนินการโปรแกรมต่อในกรณีที่คุณขัดจังหวะแบตช์ขณะที่โปรแกรมหยุดทำงาน:

c:\tools\sysinternals\pssuspend.exe -r filetransfer.exe

(แทนที่ filetransfer.exe ด้วยชื่อโปรแกรมของคุณ)


นี่ไม่ได้แก้ปัญหาจริงๆ เป็นการแก้ไขขั้นตอนเดียวคุณต้องทราบกระบวนการที่ใช้แบนด์วิดท์และคุณไม่ต้องใช้งานอย่างจริงจัง
Dan Atkinson

1
หากคุณต้องการ "จำกัด แบนด์วิดท์ของกระบวนการทำงาน" (นั่นคือคำถาม) คุณรู้กระบวนการใช่ไหม และกระบวนการของฉันที่กินแบนด์วิดท์ทั้งหมดอัปโหลดเป็นพิเศษ (ทำให้อินเทอร์เน็ตของฉันไม่สามารถใช้งานได้) และอาจดาวน์โหลดด้วย "การควบคุมปริมาณของคนยากจน" ของฉันทำงาน: ฉันสามารถอัปโหลดและยังคงใช้อินเทอร์เน็ตได้ และใช่ - ไม่ใช่โซลูชันที่สมบูรณ์แบบ สำหรับคนยากจน - ไม่ซื้อซอฟต์แวร์บางอย่าง
bebbo

1
ฉันต้องเห็นด้วยกับ @ dan-atkinson NetBalancer เป็นตัวอย่างที่ดีที่รุ่นฟรีจะทำงานได้ดีอย่างสมบูรณ์ในกรณีการใช้งานเช่นเดียวกัน วิธีนี้ยังมีข้อ จำกัด : - ต้องมีขั้นตอนที่ยุ่งยาก / ทำเอง - ไม่มีวิธีใดที่จะระบุขีด จำกัด แบนด์วิดท์ที่ควรจะเป็น - วิธีนี้สามารถเปลี่ยนการใช้งานที่ไม่ต้องการ "เสถียร" ไปสู่ยอดเขาและรางที่ต้องการน้อยที่สุด - แอปพลิเคชันจะไม่ตอบสนอง /
ล้าหลัง

ความประหลาดใจในตัวฉันสงสัยว่านี่อาจเป็นวิธีที่ดีและราคาถูกในการทำสิ่งต่าง ๆ แต่ด้วยระยะเวลาที่น้อยกว่าเช่น 50ms ดังนั้นจะมีการระงับ / ไม่ไว้วางใจเป็นจำนวนมาก แต่ประสบการณ์อาจราบรื่นขึ้นฉันไม่รู้ว่าเวลาในการระงับแผนที่จะลดอัตราการอัพโหลดลงจริง ๆ แต่เป็นสิ่งที่ต้องทดลองกับ ...
pgr

1

คุณสามารถใช้ Windows Group Policy เพื่อ จำกัด แบนด์วิดท์ของกระบวนการใด ๆ ไปที่:

  • เมนูเริ่ม> เรียกใช้> gpedit.msc
  • การกำหนดค่าคอมพิวเตอร์ / ผู้ใช้ (เลือกอย่างใดอย่างหนึ่ง)> การตั้งค่า Windows> QoS ตามนโยบาย

คุณสามารถดูนโยบายปัจจุบันและสร้างนโยบายใหม่ได้ที่นี่

  • คลิกขวาที่ "นโยบาย QoS" หรือไปที่ "การกระทำ"> สร้างนโยบายใหม่ ...
  • จากนั้นทำตามตัวช่วยสร้างเพื่อสร้างนโยบายการควบคุมปริมาณใหม่

ตัวช่วยสร้างช่วยให้คุณสร้างนโยบายการแบนด์วิดท์แบบ throttle สำหรับ:

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

และนโยบายของคุณจะถูกกรองโดย:

  • โปรโตคอล TCP หรือ UDP
  • IP ต้นทาง / ปลายทาง
  • พอร์ตต้นทาง / ปลายทาง

คุณสามารถสร้างนโยบายเหล่านี้ใน Powershell ได้ด้วยการเรียกใช้:

New-NetQosPolicy -Name "FTP" -AppPathNameMatchCondition "ftp.exe" -ThrottleRateActionBitsPerSecond 1MB

แม้ว่าสิ่งนี้อาจต้องใช้สิทธิ์ผู้ดูแลระบบและมีข้อผิดพลาดที่นโยบายที่สร้างเช่นนี้จะไม่ปรากฏใน GUI

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