RDS 负载均衡

远程桌面服务 RDS · 第 7 篇 · 适用于 Windows Server 2019 / 2022 / 2025

📑 目录

  1. 负载均衡概述
  2. 配置负载均衡
  3. 会话负载分发
  4. 健康检查配置
  5. 常见问题

1. 负载均衡概述

RDS 负载均衡 通过配置 RDS01 服务器的并发会话限制和负载权重,将用户连接请求合理分配到不同的会话实例,优化服务器资源利用并确保服务质量。

负载均衡策略

策略说明适用场景
最少连接数新连接分发到当前会话数最少的会话通用(推荐)
权重分配按服务器配置分配连接比例不同性能服务器
顺序轮询依次分发到下一台服务器会话数相近

2. 配置负载均衡

1

在 RDS01 服务器配置 RDS01 负载平衡权重:打开服务器管理器 → "远程桌面服务" → 右键"会话集合" → "添加 RD 会话主机服务器"

2

点击"浏览"在 AD 中查找目标服务器(如 RDSH02)→ 添加到列表 → 选择集合 ProductionPool

3

打开RD 连接代理配置(在管理工具中)→ 双击"集合属性" → 在"负载平衡"选项卡选择"最少连接数"

4

调整会话超时设置:设置"断开连接的会话超过以下时间后重新分发"为 60 分钟

5

点击"确定"完成配置。新用户连接时,RDS01 根据负载均衡算法自动分配到合适的会话

PowerShell - 配置负载均衡
# 配置负载均衡(多服务器模式)
Add-RDServer -ConnectionBroker "RDS01.iehang.cn" `
    -SessionHost "RDSH02.iehang.cn" `
    -Role "RDS-RD-Session-Host"

# 配置负载均衡算法
Set-RDSessionCollectionConfiguration -CollectionName "ProductionPool" `
    -LoadBalancing "LeastConnections"

# 查看集合中的服务器
Get-RDSessionHost -CollectionName "ProductionPool" |
    Select-Object SessionHost, CurrentSessionCount, Status

3. 会话负载分发

1

在 RDS01 服务器打开服务器管理器 → "远程桌面服务" → 选择集合 ProductionPool → 点击"会话"选项卡

2

查看 RDS01 的当前会话数量和用户列表,确认连接是否均匀分布

3

若需要强制重新平衡:右键集合 → "重新平衡会话" → 确认操作(已在连接的用户不会被中断)

4

对于不同优先级的用户组,在 RDS01 上设置权重:右键 RDS01 服务器 → "属性" → 在"负载平衡权重"中输入 1-100 的数值(值越大接收越多连接)

PowerShell - 重新平衡会话
# 查看 RDS01 会话数量
Get-RDSessionHost -CollectionName "ProductionPool" |
    Select-Object SessionHost, CurrentSessionCount, MaxSessionLimit

# 强制重新平衡(不影响已连接用户)
Update-Monitor -CollectionName "ProductionPool" -Mode "Rebalance"

4. 健康检查配置

PowerShell - 健康检查脚本
# 健康检查函数
function Test-RDSHealth {
    $rdshServers = "RDS01.iehang.cn", "RDSH02.iehang.cn"
    $result = @()
    foreach ($server in $rdshServers) {
        $cpu = (Get-Counter -Counter "\Processor(_Total)\% Processor Time" -ComputerName $server -MaxSamples 1).CounterSamples.CookedValue
        $sessions = (Get-RDSession -ConnectionBroker "RDS01.iehang.cn" -HostServer $server).Count
        [PSCustomObject]@{
            Server = $server
            CPU = $cpu
            Sessions = $sessions
            Healthy = ($cpu -lt 80 -and $sessions -lt 50)
        }}
    }
    $result
}
Test-RDSHealth

5. 常见问题

Q1:用户被分发到已满载的会话

检查"最少连接数"策略是否生效,确认 RDS01 的"最大连接数"设置一致。如有单台异常满载,可临时将其从集合中移除。

Q2:如何监控 RDS01 性能

使用性能监视器(perfmon.msc)添加 Remote Desktop Services 相关计数器,或使用 PowerShell 的 Get-Counter 命令实时监控。