การแบ่งปันทรัพยากรอย่างยุติธรรมใน Windows Server Remote Desktop Services (RDS)

/th/images/cpu-fair-sharing-on-windows-server-rds.png

ปัญหาทั่วไปเกี่ยวกับเทอร์มินัลเซิร์ฟเวอร์ที่โฮสต์ผู้ใช้หลายรายคือผู้ใช้รายเดียวสามารถเริ่มกระบวนการที่ใช้ทรัพยากรจำนวนมากได้ ซึ่งส่งผลเสียต่อประสิทธิภาพการทำงานของเซสชันของผู้ใช้รายอื่น ตัวอย่างเช่น หากผู้ใช้รายหนึ่งเริ่มกระบวนการที่ใช้ CPU ของโฮสต์มากกว่า 90% ผู้ใช้รายอื่นจะไม่สามารถทำงานได้ตามปกติ

เพื่อป้องกันสถานการณ์ดังกล่าว Windows Server ที่มีบทบาท Remote Desktop Services (RDSH) รวมถึง Windows 10/11 Enterprise multi-session จะรองรับฟีเจอร์ Dynamic Fair Share Scheduling (DFSS) DFSS กระจายทรัพยากรการประมวลผลเซิร์ฟเวอร์ที่มีอยู่แบบไดนามิกอย่างยุติธรรมระหว่างเซสชันผู้ใช้ ทำให้มั่นใจได้ว่าไม่มีเซสชันใดที่สามารถผูกขาด CPU ดิสก์ หรือทรัพยากรเครือข่ายได้ จึงรักษาประสิทธิภาพที่สมดุลสำหรับผู้ใช้ทั้งหมด DFSS สามารถจัดการการใช้ทรัพยากรการประมวลผลโฮสต์ต่อไปนี้:

  • CPU Fair Share – ใช้เพื่อกระจายเวลา CPU ที่มีอยู่แบบไดนามิกระหว่างเซสชัน (โดยพิจารณาทั้งจำนวนเซสชันที่ใช้งานอยู่และการใช้เวลา CPU ของแต่ละเซสชัน) วิธีนี้จะช่วยป้องกันสถานการณ์ที่ผู้ใช้รายเดียวผูกขาด CPU บนโฮสต์ RDS โดยการรันกระบวนการที่หนักหน่วง

  • Disk Fair Share – ช่วยให้แบนด์วิดธ์การจัดเก็บข้อมูลที่มีอยู่สำหรับการดำเนินการ I/O สามารถกระจายไปยังผู้ใช้ได้

  • Network Fair Share – อนุญาตให้แบนด์วิธอินเทอร์เฟซเครือข่ายที่มีอยู่สามารถกระจายระหว่างเซสชันโดยใช้กลไกแบบ Round-robin

DFFS ไม่ได้ควบคุมการกระจาย RAM และไม่ได้ใช้สำหรับการจัดสรรหน่วยความจำระหว่างเซสชันของผู้ใช้

DFSS เปิดตัวครั้งแรกใน Windows Server 2008 R2 เมื่อเริ่มแรกพร้อมใช้งานสำหรับการกำหนดเวลาทรัพยากร CPU เท่านั้น ตั้งแต่ Windows Server 2012 เป็นต้นไป Fair Share Scheduling ได้ขยายออกไปนอกเหนือจาก CPU เพื่อรวมปริมาณงานของเครือข่ายแบบไดนามิกและการปรับสมดุล I/O ของดิสก์

/th/images/cpu-fair-sharing-on-windows-server-rds.png

คุณลักษณะ Fair Share ถูกเปิดใช้งานบน Windows Server 2016 และเวอร์ชันที่ใหม่กว่าเมื่อมีการติดตั้งบทบาทโฮสต์เซสชันเดสก์ท็อประยะไกล (RDSH) การปรับสมดุลโหลดที่เหมาะสมในบริการเดสก์ท็อประยะไกลจะใช้ตามค่าเริ่มต้นกับทรัพยากร CPU เท่านั้น คุณสมบัติ CPU Fair Share จะกระจายเวลา CPU ที่มีอยู่แบบไดนามิกอย่างสม่ำเสมอระหว่างเซสชันผู้ใช้ หากผู้ใช้ใช้รอบ CPU มากเกินไป DFSS จะลดทรัพยากร CPU ที่จัดสรรให้กับผู้ใช้นั้นโดยอัตโนมัติ ทำให้พลังการประมวลผลสำหรับผู้ใช้รายอื่นเพิ่มขึ้น

เรียกใช้คำสั่ง PowerShell เพื่อตรวจสอบว่า DFSS เปิดใช้งานอยู่หรือไม่:

(gwmi win32\_terminalservicesetting-N "root\cimv2\terminalservices").enabledfss

/th/images/check-the-status-of-dynamic-fair-share-scheduling.png

1 – เปิดใช้งาน DFSS แล้ว

0 – ปิดการใช้งาน

ตัวเลือกนโยบายกลุ่มแยกต่างหากที่เรียกว่าปิดการตั้งเวลา CPU ของ Fair Share นั้นพร้อมใช้งานเพื่อเปิดหรือปิดการจัดสรรทรัพยากร CPU อย่างยุติธรรมบนโฮสต์ RDS (การกำหนดค่าคอมพิวเตอร์-> เทมเพลตการดูแลระบบ-> ส่วนประกอบของ Windows-> บริการเดสก์ท็อประยะไกล-> โฮสต์เซสชันเดสก์ท็อประยะไกล-> การเชื่อมต่อ) /th/images/gpo-option-turn-off-fair-share-cpu-scheduling.png

ตามค่าเริ่มต้น Windows Server RDS และ Windows Enterprise เวอร์ชันหลายเซสชันจะเปิดใช้งาน CPU Fair Share ในขณะที่ Dynamic Disk Fair Share และ Dynamic Network Fair Share ถูกปิดใช้งาน เว้นแต่ผู้ดูแลระบบจะเปิดใช้งานด้วยตนเอง ตรวจสอบค่าของพารามิเตอร์รีจิสทรี EnableCpuQuota เพื่อยืนยัน:

รับ-Itemproperty-Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System\"-ชื่อ EnableCpuQuota

/th/images/enablecpuquota-fair-share-cpu-scheduling-is-en.png

และค่าพารามิเตอร์ EnableFairShare คือ 0 (ปิดใช้งาน) สำหรับดิสก์และเครือข่าย (ไม่มีพารามิเตอร์ GPO แยกต่างหากสำหรับพวกเขา):

` รับ-ItemProperty-Path “HKLM:\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk"-ชื่อ EnableFairShare

รับ-ItemProperty-Path “HKLM:\SYSTEM\CurrentControlSet\Services\TSFairShare\NetFS"-ชื่อ EnableFairShare `

/th/images/enablefairshare-registry-option-on-windows-serve.png

รับค่าของทั้งสามตัวเลือก:

รับ-WmiObject-คลาส win32\_terminalservicesetting-Namespace root\cimv2\terminalservices | FL EnableDFSS, EnableDiskFSS, EnableNetworkFSS

/th/images/check-if-fairshare-of-resources-in-rd-session-host.png

คุณสามารถเปิดใช้งาน Fairy Sharing สำหรับเครือข่ายและดิสก์ผ่านทาง Registry ได้โดยการเปลี่ยนค่าของคีย์ ‘EnableFairShare’ เป็น คุณสามารถเปิดใช้งาน Fairy Sharing สำหรับเครือข่ายและดิสก์ผ่านทาง Registry ได้โดยการเปลี่ยนค่าของคีย์ ‘EnableFairShare’ เป็น 1

หรือใช้คำสั่ง PowerShell ต่อไปนี้:

เปิดใช้งานการตั้งเวลา CPU ของ Fair Share:

` $temp=(gwmi win32_terminalservicesetting-N “root\cimv2\terminalservices”)

$temp.enableDFSS=1

$temp.put() `

เปิดใช้งานส่วนแบ่งไดนามิกดิสก์แฟร์:

` $temp=(gwmi win32_terminalservicesetting-N “root\cimv2\terminalservices”)

$temp.enableDiskFSS=1

$temp.put() `

เปิดใช้งาน Network Fair แบ่งปัน:

` $temp=(gwmi win32_terminalservicesetting-N “root\cimv2\terminalservices”)

$temp.enableNetworkFSS=1

$temp.put() `

ดังนั้น หากต้องการปิดใช้งานคุณลักษณะ DFSS แต่ละรายการ ให้เปลี่ยนค่าเป็น 0

ในบางสถานการณ์ ขอแนะนำให้ปิดใช้งาน Dynamic Fair Share Scheduling หากส่งผลกระทบอย่างมีนัยสำคัญต่อประสิทธิภาพของแอปผู้ใช้บนโฮสต์ RDS แม้ว่า DFSS จะช่วยให้แน่ใจว่ามีการกระจายทรัพยากรอย่างยุติธรรม เช่น CPU, ดิสก์ และแบนด์วิธเครือข่ายระหว่างผู้ใช้ แต่ปริมาณงานบางอย่างอาจประสบกับการควบคุมปริมาณ ส่งผลให้ประสิทธิภาพของแอปลดลง

*️⃣ ลิงค์ที่มา:

Windows 10/11 Enterprise หลายเซสชัน มีการติดตั้งบทบาทโฮสต์เซสชันเดสก์ท็อประยะไกล (RDSH)