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 命令实时监控。