มีเทคนิคใน Windows ที่สามารถ จำกัด แบนด์วิดท์ของกระบวนการทำงานอยู่หรือไม่?
มีเทคนิคใน Windows ที่สามารถ จำกัด แบนด์วิดท์ของกระบวนการทำงานอยู่หรือไม่?
คำตอบ:
ผมใช้Limiter สุทธิซึ่งมีรุ่นฟรีแต่โชคร้ายที่คุณจะต้องจ่ายสำหรับคุณสมบัติข้อ จำกัด
NetLimiter เป็นเครื่องมือควบคุมและตรวจสอบปริมาณข้อมูลบนอินเทอร์เน็ตที่ออกแบบมาสำหรับ Windows คุณสามารถใช้ NetLimiter เพื่อตั้งค่าขีด จำกัด อัตราการดาวน์โหลด / อัพโหลดสำหรับแอพพลิเคชั่นหรือแม้แต่การเชื่อมต่อเดียวและตรวจสอบปริมาณการใช้งานอินเทอร์เน็ตของพวกเขา
นอกจากคุณสมบัติที่เป็นเอกลักษณ์นี้แล้ว Netlimiter ยังมีชุดเครื่องมือทางสถิติอินเทอร์เน็ตที่ครอบคลุม ซึ่งรวมถึงการวัดปริมาณการใช้งานแบบเรียลไทม์และสถิติการรับส่งข้อมูลทางอินเทอร์เน็ตในระยะยาวต่อแอปพลิเคชัน
มีเหตุผลที่ดีที่จะดู "เราเตอร์ที่หันหน้าเข้าหาอินเทอร์เน็ต" สำหรับการจัดการเครือข่ายโดยรวม - อย่างไรก็ตามเนื่องจากคำถามดั้งเดิมนั้นมีความเฉพาะเจาะจงและผู้ใช้อาจเป็นคอมพิวเตอร์เพียงเครื่องเดียวในเครือข่ายซึ่งเป็นเรื่องรอง
ต่อหนึ่งในคำตอบด้านบนอื่น ๆ ในขณะที่ผมทดสอบออกNetBalancer มันทำงานได้ดีจริงๆ - และง่ายต่อการกำหนดค่า
NetBalancer มีให้ซื้อบนหน้าเว็บของพวกเขาในราคาประมาณ $ 50 รุ่นทดลอง / ฟรีช่วยให้คุณตรวจสอบการเชื่อมต่อ - แต่ไม่อนุญาตการควบคุมปริมาณ
ทางเลือกคือ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 อาจจะผ่อนคันเร่งโดยไม่ได้ตั้งใจ ตอนนี้กฎใหม่ของฉันมันไร้ประโยชน์และเสีย
นี่คือปริมาณที่ไม่ดีของฉัน:
มันไม่ได้ จำกัด แบนด์วิดท์ที่แน่นอนมันค่อนข้างจะหยุด / กลับสู่กระบวนการกินแบนด์วิดธ์และทำให้แบนด์วิดท์บางอย่างสำหรับการใช้งานอื่น ๆ และได้ฟรี!
คุณต้องการ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 ด้วยชื่อโปรแกรมของคุณ)
คุณสามารถใช้ Windows Group Policy เพื่อ จำกัด แบนด์วิดท์ของกระบวนการใด ๆ ไปที่:
คุณสามารถดูนโยบายปัจจุบันและสร้างนโยบายใหม่ได้ที่นี่
ตัวช่วยสร้างช่วยให้คุณสร้างนโยบายการแบนด์วิดท์แบบ throttle สำหรับ:
และนโยบายของคุณจะถูกกรองโดย:
คุณสามารถสร้างนโยบายเหล่านี้ใน Powershell ได้ด้วยการเรียกใช้:
New-NetQosPolicy -Name "FTP" -AppPathNameMatchCondition "ftp.exe" -ThrottleRateActionBitsPerSecond 1MB
แม้ว่าสิ่งนี้อาจต้องใช้สิทธิ์ผู้ดูแลระบบและมีข้อผิดพลาดที่นโยบายที่สร้างเช่นนี้จะไม่ปรากฏใน GUI