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

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

1 – เปิดใช้งาน DFSS แล้ว
0 – ปิดการใช้งาน
ตัวเลือกนโยบายกลุ่มแยกต่างหากที่เรียกว่าปิดการตั้งเวลา CPU ของ Fair Share นั้นพร้อมใช้งานเพื่อเปิดหรือปิดการจัดสรรทรัพยากร CPU อย่างยุติธรรมบนโฮสต์ RDS (การกำหนดค่าคอมพิวเตอร์-> เทมเพลตการดูแลระบบ-> ส่วนประกอบของ Windows-> บริการเดสก์ท็อประยะไกล-> โฮสต์เซสชันเดสก์ท็อประยะไกล-> การเชื่อมต่อ) 
ตามค่าเริ่มต้น 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

และค่าพารามิเตอร์ EnableFairShare คือ 0 (ปิดใช้งาน) สำหรับดิสก์และเครือข่าย (ไม่มีพารามิเตอร์ GPO แยกต่างหากสำหรับพวกเขา):
` รับ-ItemProperty-Path “HKLM:\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk"-ชื่อ EnableFairShare
รับ-ItemProperty-Path “HKLM:\SYSTEM\CurrentControlSet\Services\TSFairShare\NetFS"-ชื่อ EnableFairShare `

รับค่าของทั้งสามตัวเลือก:
รับ-WmiObject-คลาส win32\_terminalservicesetting-Namespace root\cimv2\terminalservices | FL EnableDFSS, EnableDiskFSS, EnableNetworkFSS

คุณสามารถเปิดใช้งาน 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)