ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

LTE MLB负载均衡实战指南:从PRB利用率到CIO参数调优

LTE MLB负载均衡实战指南:从PRB利用率到CIO参数调优 简介LTE移动性负载均衡MLB功能详解文档面向LTE网络优化工程师与通信专业学习者系统讲解如何通过将高负载小区的用户迁移至低负载小区实现异频或异系统间的负载均衡提升网络资源利用率。文档详细介绍了MLB的三个核心阶段触发模式包括基于PRB利用率与同步态用户数的触发条件、目标小区选择候选邻区的筛选原则、负载信息交互、交互邻区与盲邻区识别以及负载均衡的执行过程并结合热点区域、大型活动等应用场景分析帮助读者掌握从原理到落地的完整链路。资源为单份PDF文件大小1.3MB内容结构清晰适合需要深入理解LTE MLB机制或进行网络优化实践的工程师参考。目前已有46人学习浏览具有实用参考价值。1. 把移动负载均衡和服务器负载均衡分开看提到“LTE MLB 负载均衡”第一反应容易把 nginx 的等开销负载均衡搬过来连接数平均分摊谁空闲把请求甩给谁。但 LTE 侧的 MLBMobility Load Balancing移动负载均衡是另一套逻辑不管新用户怎么进只管把高负载小区里已接入的用户用切换推给周边空闲小区。为什么是推不是分因为 LTE 没有集中式调度器基站之间只能靠 X2 接口协商负荷再靠切换一个杠杆搬人。翻完“ltemlb负载均衡功能介绍.pdf”这类文档多半明白框架却调不出效果门限、滞回、乒乓这些细节文档不给。这篇把负载衡量、A3/CIO 原理、参数落地和外场验证串成一条能复现的路径适合无线网优、OAM 系统和网优工具开发的人。2. LTE MLB 负载均衡的衡量体系PRB、CCE 与 A3/CIO2.1 为什么负载不能只看用户数等开销负载均衡按连接数分发前提是每个请求消耗的后端资源近似相等。无线侧恰恰没有这个前提。一个在线浏览用户可能只占几个资源块一个视频用户可能占几十个一个低速率重传用户占的资源可能比视频还多。所以 LTE MLB 的负载衡量单位从一开始就不能是“用户数”而是无线资源利用率核心是 PDSCH/PUSCH 的物理资源块PRB利用率辅以 PDCCH 的 CCE 利用率和硬件负荷。为什么 CCE 也要看当小区里全是小包业务例如大量即时消息和语音承载PRB 利用率可能只有三成PDCCH 的 CCE 却已经用完新用户连调度资格都排不上。这时高负荷的原因在控制信道不在业务信道。只按 PRB 判断负载会把这类小区永远漏掉。所以成熟实现里的“综合负荷”是一个多维度计算起码要覆盖业务信道和控制信道两个维度。下面这个表是配置 MLB 之前先要过一遍的衡量维度后面第 3 章的所有门限都从这张表出发。指标反映问题局限PDSCH 利用率下行用户面资源占用只看均值容易漏掉瞬间拥塞要看子帧级分布PUSCH 利用率上行用户面资源占用上行高和下行高要分开处理触发条件不同PDCCH/CCE 利用率控制信道调度压力小包和语音多时先爆PRB 利用率反而不高RRC 连接数在线用户规模与资源占用关联弱只能做辅助判断硬件/回传负荷基带、背板、传输多数现网不瓶颈但影响“综合负荷”评分提示不同厂商的“综合负荷”公式差别很大有的取 PDSCH 和 PUSCH 的最大值有的按权重相加。调参数前先确认该公式是否包含 CCE否则会出现“业务信道一直没超门限控制信道却拥塞”的盲区。判断高负荷还需要一个滞回逻辑避免任何瞬时尖峰都触发负载均衡切换。下面的代码是现网常见的高负荷判定模式连续 N 个周期超过门限才认为进入 MLB 流程。# 高负荷评估连续 N 个周期超过门限才返回 True def is_high_load(pdsch_samples, threshold70, n3): cnt 0 for v in pdsch_samples: if v threshold: cnt 1 if cnt n: return True else: cnt 0 return False这段代码说明了一个关键参数n 就是滞回周期。如果 n1任何 1 秒的瞬时尖峰都会触发 MLB 流程产生大量不必要的切换现网一般要求连续 3~5 个周期超过门限才触发。代码里的 threshold 对应后台参数里的高负荷门限后文会在参数表中给出建议值。2.2 CIO 与 A3 事件MLB 的唯一杠杆LTE 的切换由 UE 测量事件触发。MLB 最常用的手段是临时修改小区个体偏移CIO让 UE 的 A3 事件提前或延后。A3 事件的条件可以写成邻区测量值 邻区偏置 - 滞回大于服务小区测量值 服务小区偏置 事件偏置。其中邻区偏置Ocn就是每个邻区关系上的 CIO。MLB 调大高负荷小区向目标邻区的 CIO相当于告诉所有 UE“目标小区变得更好”于是一批 UE 会提前上报 A3源小区顺势把用户切过去。执行路径通常是这样一段闭环源小区按评估周期统计本小区的 PRB 和相关负荷指标连续 MlbHoldCnt 个周期超过高负荷门限。源小区通过 X2 接口向邻区发起负荷查询拿回目标小区的当前负荷按低负荷优先排序候选集。对排序靠前的目标小区调整 CIO步长一般从 0.5dB 开始等效于临时改变切换边界。满足 A3 条件的 UE 上报测量报告源小区执行切换切换原因标记为“reduced load in serving cell”。切换完成后评估源小区负荷是否回落回落后延时恢复 CIO防止方向性偏置影响普通移动性用户。整个过程有两个容易忽略的点。第一MLB 切换对 UE 完全透明前台测试软件里看不到直接提示因为 UE 只是报了普通 A3基站侧知道原因即可。第二CIO 是小区级参数影响的是所有要在这两个小区间切换的用户不区分业务和优先级所以调 CIO 必须配上恢复定时器不能长期把边界“掰弯”。注意有些实现里 MLB 调整的不是 CIO而是直接对一批 UE 下发专属偏置等效于“按用户级 CIO”。这种方案定位更准但给外场验证增加了难度因为普通切片工具看不到这个专属偏置。2.3 同频、异频、异系统的 MLB 回退策略同频 MLB 最简单现有 A3 测控直接可用。异频场景要先解决一个前置条件UE 看不到异频邻区就永远不会上报目标小区的事件。要让 UE 启动异频测量要么配置基于 A5 的测量触发要么配置周期 GAP 模式。没有异频测量配置MLB 的候选集里即使有低负荷异频小区也切不过去。这是异频 MLB 调不动时排在第一位的检查点。异系统场景LTE 向 WCDMA 或 GSM 回退一般只作为最后的容量出口常用于 LTE 无线路由器/CPE 这类固定接入设备的业务迁移。异系统切换依赖测量和系统间负荷同步流程更重触发条件也更保守。判断是否允许异系统参与 MLB要看目标系统是否也有拥塞风险否则只是把容量压力搬到另一个制式里。这三个场景决定了一个原则MLB 的候选集不是“信号最好的邻居”而是“信号可测、负荷可控、邻区关系允许”的邻居。外场看到目标选不出来先查异频测量配置和 X2 负荷上报状态比反复调门限有效得多。3. LTE MLB 负载均衡的参数落地与最小实验环境3.1 开启前必须冻结的参数清单网管界面的字段名各家有差异但一个能落地的负载均衡功能至少包含以下参数且每个参数都有自己的作用边界。先把清单冻结再动命令避免改了 A 却不知道 B 被联动影响。参数名示意含义起始建议调整经验MlbSwitch功能总开关区分上行/下行先开下行上下行拥塞场景分开开便于定位MlbPeriod负荷评估周期10s平峰期改 5s 可加快收敛但增加 X2 信令HighPrbThd高负荷门限70%视频/大包集中的小区可放 75%减少误触发LowPrbThd低负荷门限35%至少低于高门限 20 个百分点否则回弹无法区分MaxTgtLoad目标小区最大允许负荷60%目标超过该门限就不能再作为切出目标CivStepCIO 调整步长0.5dB乒乓多就降到 0.3dB收敛太慢升到 1dBRestoreTimer偏置恢复时间30~60s过长会让全小区用户长时间处于“假偏移”状态MlbHoldCnt连续高负荷周期数3小包网络可设 2避免高优先级用户感知时延抖动这张表里的高门限和低门限构成一组滞回75% 触发、35% 恢复中间这 40 个百分点就是防抖区间。如果没有这个区间负荷在 60%~70% 之间波动时功能会在“触发”和“恢复”之间反复横跳产生无效切换和大量异常话单。3.2 典型配置命令开关、门限与滞回下面是一组实验室开启 MLB 的示意命令。各厂商网管命令体系不同参数名对应的是前面表格里的通用概念用于把功能打开并验证参数联动关系。# ---- 开启 MLB 功能只做下行负载均衡 ---- SET MLB: LocalCellId1, MlbSwitchDOWNLINK_ONLY, MlbPeriod10, HighPrbThd70, LowPrbThd35, MaxTgtLoad60; # ---- 设置 CIO 步长、恢复时间与滞回周期 ---- SET MLB_PARAM: LocalCellId1, CivStep0.5, RestoreTimer30, MlbHoldCnt3; # ---- 异频邻区允许参与负载均衡并配置测量间隙 ---- SET MLB_NEIGH: LocalCellId1, NcTypeINTER_FREQ, MlbAllowedON, MeasGapGAP_PATTERN_1;第一条命令先开下行负载均衡因为外场测试的下行吞吐指标最直观。MlbPeriod10 表示每 10 秒统计一次 PDSCH 和 PUSCH 采样值实验室可以调到 5 秒加快观察现网需要考虑 X2 信令开销。HighPrbThd70 与 LowPrbThd35 的间隔是设计过的触发后要等负荷回到 35% 以下才恢复偏置避免在边界反复触发。第二条命令里的 CivStep0.5 表示每次调整 0.5dB。这个步长直接决定切换边界移动速度步长过大一批 UE 在同一时间点上报 A3可能形成突发切换步长过小收敛过程会被拉长。RestoreTimer30 秒是为了给切换后的 RRC 重建和用户面数据保序留出时间过短会和 UE 的周期性测量报告互相刺激产生来回切。3.3 实验室验证与外场选点的几个原则实验室里要跑通功能至少需要两个小区、一条 X2 链路、一台 UE 模拟器或双 UE。常见做法是用模拟器每 5 秒增加一组承载把小区 PDSCH 利用率压到 80% 以上再逐步释放承载制造 70% 上下的边界条件观察是否触发切出。只压到 60% 是不够的因为高门限在 70%功能根本没有进入高负荷判定区间。外场测试则不同难的不是造负荷而是选点。有条件的话先找一对同覆盖、一个超忙一个空闲的邻区用 RSRP 和 SINR 差值确认两小区边界不存在“弱覆盖假忙”——那种由低 SINR 重传堆积出来的高 PRB 利用率切到邻区也一样差MLB 只是把重传搬了个地方。LTE 无线路由器/CPE 是外场测试里最容易制造假象的设备。它们位置固定、信号好、不移动会持续占用小区资源MLB 切走后CPE 又因为驻留规则快速回到原小区互切计数异常好看真实容量却没有变化。做功能验收前先确认测试 UE 是真实移动终端并记录 IMSI/TAC便于后台把 CPE 数据从统计样本中剔除。4. LTE MLB 负载均衡的验证方法X2 消息、切换原因与外场判别4.1 从 X2 信令看负荷协商是否工作MLB 的前提是邻区间能交换负荷。X2 接口上承载负荷交换的是 Resource Status 系列消息部分厂商网管抓包中显示为 LOAD INFORMATION 或负载报告。抓 X2 口数据过滤出这些消息能看到每个小区周期性上报自己的 PRB 利用率这是评估阶段的关键证据。# 从 X2 抓包文件里粗筛负荷协商消息字段名随版本变化先用报文关键词过滤 tshark -r x2_mlb.pcap -Y sctp frame contains \RESOURCE STATUS\ tshark -r x2_mlb.pcap -Y sctp frame contains \LOAD INFORMATION\这两条命令分别在抓包里找 RESOURCE STATUS 和 LOAD INFORMATION 两类容器。看到周期性出现的消息说明负荷协商链路是通的然后对比消息里带出的 PRB 利用率与话统里的 PDSCH 利用率两者一致说明口径正确。如果话统显示高负荷但 X2 消息里的负荷始终很低先确认统计口径是“容量比例”还是“绝对 PRB 数”单位不同会直接导致功能判断失效。4.2 用切换原因区分负载均衡切换和移动性切换负载均衡切换的切换原因会和普通移动性切换区分开标准协议里有一个明确取值常显示为 reduced load in serving cell。把切换记录按原因分组统计是判断功能动作频率最快的方法。-- 从话统库统计某小区一段时间内的负载均衡切换次数 SELECT COUNT(*) AS total_ho, SUM(CASE WHEN cause reduced load in serving cell THEN 1 ELSE 0 END) AS mlb_ho, SUM(CASE WHEN cause handover optimization THEN 1 ELSE 0 END) AS mobility_ho FROM ho_records WHERE cell_id 1 AND time BETWEEN 2024-06-01 10:00:00 AND 2024-06-01 10:30:00;如果 mlb_ho 为零先不要动参数去查两件事一是 MlbHoldCnt 是否拦截了高负荷判定的连续性二是候选集里有没有真正低于 MaxTgtLoad 的小区。如果 mlb_ho 有值但切换失败率高重点看目标小区的随机接入格式和物理小区标识配置那是切换执行层的问题和负载均衡策略无关。4.3 三种会让结论失真的“假忙”MLB 判断小区高负荷但实际会有三种“高负荷”是切用户解决不了的。第一种是干扰忙小区 PRB 利用率高原因是外部干扰导致重传和低效编码占用了大量资源。判别方法很直接看平均 CQI 和误块率高负荷时段 CQI 掉到 8 以下而用户数没有明显增长说明是干扰问题切走用户并不能腾出 PRB。第二种是限速忙PRB 利用率高但用户面速率被 QCI 限速限制感知差和资源占用无关。MLB 可以把资源压力缓解但用户速率感受不会同步改善。因此验证时不要只盯吞吐量均值要把“资源利用率下降”和“用户速率提升”分开统计。第三种是 CPE 固着LTE 无线路由器这类固定终端长占小区负荷抬升但移动性和业务特征都不符合普通用户模型。MLB 切走它们后它们又可能回切导致切换次数上升但长期负荷均值不变。外场验证记录里至少保留 PRB 利用率、平均 CQI/BLER、用户面吞吐量三类原始数据缺一类都可能把结论带偏。4.4 乒乓切换、过搬、欠搬三种失效模式现象根因处置两个小区频繁互切吞吐量振荡CIO 步长过大或恢复时间太短CivStep 降到 0.3dBRestoreTimer 放到 60s高负荷小区切出后目标小区也被顶到 90%MaxTgtLoad 过高或候选集未按负荷排序目标门限降到 50%确认 X2 负荷上报实时性忙时切出了闲时立刻回切回落判定周期过短低负荷门限以下连续两个周期再恢复 CIO有用户切出但小区负荷没降干扰忙或 CPE 占比高先定位干扰再核对样本是否剔除了固定终端这四种失效模式都对应具体参数或环境问题。MLB 这类功能真正要盯的是“收敛”而不是“触发次数”。触发次数多不代表均衡做得好过度触发本身就是一种乒乓需要回到最后那一章给出的差值法去验证负荷是否真的被拉平。5. 差值法判断 LTE MLB 负载均衡是否真收敛5.1 用 PRB 利用率差值代替吞吐量均值MLB 调完不要直接看忙时吞吐量那是结果指标受天线、调度器、限速等因素干扰太多不好归因。更有效的做法是把“高负荷小区与周边邻区的 PRB 利用率差值”拉成时间序列看 MLB 开启前后这个差值的分布是否收敛。import pandas as pd # load_prb.csv 至少包含 ts 时间、cell 小区名、pdsch_prb 三列分钟级粒度 df pd.read_csv(load_prb.csv, parse_dates[ts]) pivot df.pivot_table(valuespdsch_prb, indexts, columnscell) busy pivot[cell_busy] # 目标高负荷小区 neighbor_avg pivot.drop(columnscell_busy).mean(axis1) diff (busy - neighbor_avg) / neighbor_avg * 100 print(diff mean, std:, round(diff.mean(), 2), round(diff.std(), 2)) # 再统计差值在正负 5 个百分点之间反复穿越的次数作为乒乓指数这段代码把单小区负荷放到邻区基准线上比较。mean 小于 10 说明基本均衡std 大于 20 说明波动大差值反复穿越 0 的情况对应乒乓切换需要回到第 3 章调小 CivStep 或拉长 RestoreTimer。这个方法对做无线优化超过五年的人反而最有用不看单个忙时峰值看一整段忙时里差值的分布形态。5.2 数据面收敛和控制面收敛要分开看PDSCH 利用率下降不必然代表 CCE 利用率也下降。如果高负荷的根源是控制信道瓶颈小包用户被切走后 PDSCH 利用率可能降了但 CCE 利用率纹丝不动MLB 的收益会被高估。把差值法分别用在 PDSCH 和 CCE 两个变量上两者都收敛说明均衡做对了只有数据面收敛而控制面不收敛问题就不在负载均衡本身而在 CCE 相关的调度聚合参数。最后一个常用的收尾技巧当运营指标要求控制 MLB 触发次数时把负荷上报周期从 500ms 压到 100ms同时把 MlbHoldCnt 从 3 提高到 4可以在不劣化收敛时间的情况下显著减少无效触发。这个组合背后的逻辑是“更细的采样、更宽的滞回”对 CPE 这类固定终端频繁回切带来的抖动比单纯调 CIO 更直接。本文还有配套的精品资源点击获取
返回列表