Files
CapacityReport/docs/高负荷小区判定_调研记录.md
nixevol 1bdf985770 feat: 容量报表富集小区信息并新增高负荷小区判定与优化建议
- ReportScript.sql 末尾:按 CGI 富集 sector/cellinfo 字段;4G/5G 高负荷判定(是否高负荷/高负荷问题);同扇区同PLMN 负载均衡优化建议(模板1/2)
- 新增 docs/高负荷小区判定_调研记录.md 记录标准/字段/阈值/命中量/实现
2026-06-26 07:36:28 +08:00

197 lines
16 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 高负荷小区判定 — 调研记录 / 工作笔记
> 目的:在 4G/5G 结果表中为每个小区判定「是否高负荷小区」(并可给「优化建议」)。
> 本文档是**讨论与决策的工作底稿**,边讨论边更新;数据为实测采集,尽量准确,避免重复读取。
> 状态:调研完成,规则**待讨论敲定**(未实现、未提交)。最后更新:2026-06-26。
---
## 0. 数据来源与位置(避免重复读取)
| 内容 | 位置 |
| --- | --- |
| 判定标准原件 | `CapacityReport/高负荷判定标准.xlsx`(单 sheet「汇总」,A1:S80;已摘录见 §4) |
| 4G/5G 结果表 | MySQL `capacityreport` 库:`4g_结果表`、`5g_结果表`(每次跑报表重建) |
| 小区属性支撑表 | MySQL `celldata` 库:`cellinfo`、`sector`(由 300 表处理上传;跑报表前会复制进 `capacityreport` 库) |
| 小区信息原始源 | `F:\sftpgo_v2.7.1_windows_portable\data\网优日常优化数据文档\日常性能报表\2026年\300表\{2.6G,700M}\Result_300_小区信息导出工具模板_*.zip`(NR/LTE CellInfo 等 CSV → 提炼成 cellinfo/sector;**不含负荷指标**) |
| 报表 SQL(拟在此追加判定逻辑) | `CapacityReport/ReportScript.sql`(末尾已有富集 + 已建空列 `是否高负荷小区` VARCHAR(100)、`优化建议` TINYTEXT) |
**关键事实**:负荷指标只在结果表里;`cellinfo/sector` 只提供分类属性(制式/带宽/站型/频段/功率)。判定 = 结果表负荷指标 +(按属性分档的)门限。
---
## 1. 结果表可用负荷指标 + 实测分布
### 1.1 4G 结果表(`4g_结果表`,34078 行)
利用率均为 **0–1 比值**(可直接和标准的 0.5/0.7 比较)。
| 指标列 | 含义 | 均值 | 最大 | 命中量(阈值→小区数) |
| --- | --- | --- | --- | --- |
| `上行PUSCH利用率` | 上行 PUSCH 利用率 | 0.11 | 0.92 | ≥0.5: 136 |
| `下行PDSCH利用率` | 下行 PDSCH 利用率 | 0.22 | 0.996 | ≥0.5: 2733;≥0.7: 585;≥0.9: 40 |
| `PDCCH资源利用率` | PDCCH 利用率 | 0.12 | 0.57 | (max 仅 0.57,≥0.5 极少) |
| `自忙时流量(GB)` | 自忙时流量 | 2.29 | 23.86 | — |
| `ERAB流量` | **自忙时平均 E-RAB 流量(KB)**,用于大/中/小包分类 | 1551 | 446131 | 大包≥1000: 14943;中包 300–1000: 15941;小包<300: 3194 |
| `上行流量(GB)` / `下行流量(GB)` | 上/下行流量 | — | — | — |
| `YY-RRC连接建立最大用户数` | RRC 最大用户数(≈标准「有数据传输的RRC数/RRC连接最大数」) | 30.2 | 431 | ≥30: 13783;≥50: 5239 |
| `用户面平均激活UE数` / `用户面最大激活UE数` | 激活 UE 数 | — | — | — |
| 组合 | `下行PDSCH≥0.7 且 YY-RRC≥30` | — | — | **499** |
### 1.2 5G 结果表(`5g_结果表`,33028 行)
| 指标列 | 含义 | 均值 | 最大 | 命中量 |
| --- | --- | --- | --- | --- |
| `上行PRB平均利用率` | 上行 PRB 利用率 | 0.086 | 0.85 | ≥0.5: 110 |
| `下行PRB平均利用率` | 下行 PRB 利用率 | 0.18 | 0.99 | ≥0.7: 503;≥0.8: 238;≥0.9: 77 |
| `RRC连接平均连接用户数` | RRC 平均用户数 | 20.3 | 356 | ≥30: 6998;≥100: 1079;≥200: 67 |
| `RRC连接最大连接用户数` | RRC 最大用户数 | — | — | — |
| `5G上行流量(…)(GB)` | 上行流量 | 0.66 | 16.7 | — |
| `5G下行流量(…)(GB)` | 下行流量 | 5.9 | 101 | — |
| `日均流量(GB)` | 日均流量 | — | 400+ | — |
| `PDCCH信道CCE占用率(动态)(%)`、`单Flow流量(MB)`、`小区(上/下)行RLC SDU字节数`、`移动流量_GB`、`广电流量_GB` | 其他 | — | — | — |
| 组合 | `下行PRB≥0.7 且 RRC平均≥30` | — | — | **200** |
| 组合 | `下行PRB≥0.8 且 RRC平均≥50` | — | — | **46** |
> 观察:利用率呈「低均值 + 高尾部」,利用率门限本身已很筛选(4G 下行≥0.7 仅 1.7%,5G 下行≥0.7 仅 1.5%)。RRC=200(5G 标准原值)极严(仅 67 个)。
---
## 2. 小区分类属性(来自 cellinfo/sector,按 CGI 匹配结果表)
匹配率:4G 命中 cellinfo 98.8%、sector 98.7%;5G(NCGI=CGI) 命中 cellinfo 99.8%、sector 99.1%。
- `cellinfo.制式`:`700M`(19732)、`TDD`(17423)、`FDD`(16402)、`2.6G`(13221)
- **4G 小区 → 制式 ∈ {TDD, FDD};5G 小区 → 制式 ∈ {700M, 2.6G}**(700M≈FDD-NR、2.6G≈TDD-NR)。
- `cellinfo.带宽`:`20M`(23588)、`30M`(19726)、`100M`(12894)、`10M`(9717)、`15M`(461)、`60M`(267)、`40M`(60)、`5M`(59)、`0M`(6)
- 30M→5G FDD-NR;100M/60M→5G TDD-NR;20M/15M/10M/5M→4G。
- `sector.站型`:`宏站`(55608)、`室分`(10272)、`微站`(1089) —— **无 64TR/32TR/8TR 等 TR 粒度**。
- `sector.频段`:`2.6G`、`700M`、`广电`、`FDD900`、`FDD1800`、`F频`、`E频`、`D频`、`3DMM`(1489)、`A频`、`4.9G`。
---
## 3. 标准输入 vs 我们拥有的字段(能做 / 缺)
| 标准需要 | 我们是否有 | 说明 |
| --- | --- | --- |
| 4G 利用率(上行PUSCH、下行PDSCH、PDCCH) | ✅ | 0–1 |
| 大/中/小包(自忙时平均E-RAB流量KB) | ✅ | 用 `ERAB流量` 分档(≥1000 / 300–1000 / <300) |
| 4G 流量(上/下行GB、自忙时GB) | ✅ | |
| 4G RRC 数 | ✅ 近似 | `YY-RRC连接建立最大用户数` |
| 制式 TDD/FDD | ✅ | cellinfo.制式 |
| 带宽(5/10/15/20M…) | ✅ | cellinfo.带宽 |
| 频段(FDD900/F/A/E/D/3DMM…) | ✅ | sector.频段(高流量感知按频段分档可用) |
| 5G PRB 利用率(上/下)、RRC、上/下行流量 | ✅ | 5G 规则可完整套用 |
| 5G 带宽档(100M/80M/60M/30M) | ⚠️ 部分 | 有 100M/60M/30M;无 80M(数据里没出现 80M) |
| **TR 数(64/32/8/4/2/1TR)** | ❌ | 只有 宏/室分/微 → **2023 集团扩容标准(per-TR)难直接套用** |
| 折算带宽系数 / 全网平均单载波流量(流量系数) | ❌ 需自算 | 流量系数 = 本小区日均流量 / 全网平均单载波流量 / 带宽系数,需先定义系数与全网均值 |
| 3DMM 作为独立 4G 制式 | ⚠️ | 4G 制式只有 TDD/FDD;3DMM 体现在 `sector.频段`(1489 个) |
---
## 4. 原始标准摘要(xlsx「汇总」)
**A. 4G 通用标准 / 高负荷待扩容门限(R1–R17)**:制式(TDD/FDD/3DMM) × 小区分类(大包≥1000 / 中包<1000 或 300–1000 / 小包<300,按自忙时平均E-RAB流量KB) × 带宽(20M/15M/10M/5M)。每档给:利用率门限(上行PUSCH `D`、下行PDSCH/PDCCH `E`)+ 有数据传输的RRC数 + 上/下行流量GB。
- TDD:利用率 0.5;下行 70%/50%(大包)、50%/50%(中小包)。例 20M 大包:RRC=10、流量 0.3/5。
- FDD:利用率 0.7;下行 70%/70%。例 20M 大包:RRC=15、流量 2/10.5。
- 3DMM:利用率 0.8;80%/80%。
**B. 高流量感知(R20–R41)**:自忙时流量 / 有效RRC连接最大数 / RRC连接最大数 / 上行利用率 / 下行利用率,按 频段(FDD900/FDD1800/F/A/E/D/3DMM) × 带宽 给阈值(多数「折算带宽」)。例:上行利用率 TDD>60%;下行利用率 全制式>80%。
**C. 高负荷预警(R44,集团定义,最简口径)**:无线利用率≥50% 且 有效RRC连接平均数≥30。细化:**TDD 利用率≥50%、FDD≥70%、3DMIMO≥80%**。
**D. 流量系数(R48–R52)**:流量系数 = 本小区日均流量 /(全网总流量/小区总数 的平均单载波流量)/ 带宽系数。低流量 0–0.2、高流量 >3。
**E. 5G 高负荷规则(R54–R61)**:制式 × [上行PRB 0.5 / 下行PRB 0.7 / RRC平均 / 上行流量GB / 下行流量GB]
- TDD-NR100M:RRC 200 / 上 5 / 下 70
- TDD-NR80M:160 / 4 / 56
- TDD-NR60M:120 / 3 / 43
- FDD-NR30M:90 / 8 / 30
- 利用率口径:自忙时上/下行业务信道空分 PRB 占用利用率。
**F. 2023 集团扩容标准(R64–R74)**:宏站(64/32TR) / 宏站(8/4TR) / 室分(4/2/1TR) × 大/中/小包(单flow流量M) × 利用率 + 每 TR 的上/下行流量门限。**依赖 TR 数,我们缺该粒度 → 暂不采用**。
---
## 5. 候选简化规则(初版,待讨论确认)
> 思路:以「**利用率达标 且(用户数或流量达标)**」二选一组合作为高负荷,按制式/带宽分档取门限;优先用我们字段齐全、口径清晰的 **C(高负荷预警)** 和 **E(5G 规则)**。先只输出二分「是/否」,`优化建议` 后续再细化。
### 候选 A —「高负荷预警」简化口径(推荐起步,最稳)
- **4G**:`是高负荷` = 下行PDSCH利用率 ≥ (TDD 0.5 / FDD 0.7) **且** `YY-RRC连接建立最大用户数` ≥ 30。
- 参考命中:下行≥0.7 且 RRC≥30 = 499;若 TDD 用 0.5 会更多(下行≥0.5=2733,再叠 RRC≥30 待测)。
- **5G**:`是高负荷` = 下行PRB利用率 ≥ 0.7 **且** RRC平均 ≥ 30(或按带宽用 E 的 RRC 档)。
- 参考命中:下行≥0.7 且 RRC≥30 = 200。
### 候选 B —「5G 规则按带宽 + 4G 按大中小包」更贴标准
- 5G:下行PRB≥0.7 **且**(RRC平均≥档 或 下行流量≥档),档按带宽(100M:200/70、60M:120/43、30M:90/30)。
- 4G:下行PDSCH≥门限 **且**(RRC≥档 或 上/下行流量≥档),门限/档按 制式×大中小包×带宽(套 A 表,简化为主力带宽 20M/10M)。
---
## 6. 待讨论的开放问题(请逐条拍板)
1. **采用哪套口径**:候选 A(最简、稳)/ 候选 B(更贴标准、更细)/ 其他组合?
2. **组合逻辑**:利用率与(用户数/流量)之间是 **AND**(推荐,避免纯利用率饱和误报)还是 OR?(用户数/流量之间是 OR 还是 AND?)
3. **是否分档**:门限是否区分 制式(TDD/FDD)、带宽、站型(宏/室分/微)?还是先用一套统一门限?
4. **4G 利用率口径**:用 `下行PDSCH利用率` 为主,是否叠加 `上行PUSCH`/`PDCCH`?(PDCCH max 仅 0.57,单独用意义不大)
5. **输出形态**:只二分 `是否高负荷小区`(是/否),还是分级(高/中/低 或 高负荷/高流量/正常)?`优化建议` 要不要这次就生成(如"建议扩容/加载/分流")?
6. **是否要「流量系数 / 高低流量」**:需要先算全网平均单载波流量 + 带宽系数,较复杂,是否本期纳入?
7. **缺 TR 粒度**:2023 标准(per-TR)放弃,OK?室分/微站是否单独更宽松门限?
8. **阈值校准**:希望"高负荷"占比大概多少(如 1–3%)?据此回标阈值(我可按候选规则跑命中量再调)。
---
## 8. 已确认方向 + 规则 v1(阈值待最终拍板)
**已定(用户 2026-06-26)**:① 用简化版;② 利用率 **AND** 用户数;③ 门限区分 制式/带宽,**不分站型**(原版简化规则 4G/5G 均不分站型,仅 TR 制的 2023 扩容标准分,但缺 TR 数);④ 5G RRC 用标准原值 200(要少);⑤ 输出 `是否高负荷小区`(**仅「高负荷」=是;两类预警与正常=否**)+ 新增 `高负荷问题` ∈ {高负荷, 利用率预警, 高流量预警};⑥ 5G 80M 档同 100M;⑦ **3DMM 不作独立 4G 制式,归 TDD(0.5)**(且 `cellinfo.制式` 本就只有 TDD/FDD,3DMM 在频段里,天然走 TDD)。
**判定逻辑(互斥,按利用率优先)**:
```
若 利用率达标:
若 用户数达标 → 高负荷 (是否高负荷=是)
否则 → 利用率预警 (是否高负荷=否,仅预警)
否则若 流量达标(高) → 高流量预警 (是否高负荷=否,仅预警)
否则 → 正常 (是否高负荷=否,高负荷问题=空)
# 即「是否高负荷小区=是」当且仅当 高负荷问题='高负荷'(预警 ≠ 高负荷)。
```
**5G 阈值(来自标准 E,按带宽;80M 同 100M)**
| 带宽 | 利用率达标 | 用户数门限(RRC平均) | 流量达标(上行GB / 下行GB) |
| --- | --- | --- | --- |
| 100M/80M | 上行PRB≥0.5 或 下行PRB≥0.7 | RRC平均≥200 | 上行≥5 或 下行≥70 |
| 60M | 同上 | ≥120 | 上行≥3 或 下行≥43 |
| 30M | 同上 | ≥90 | 上行≥8 或 下行≥30 |
| 其他/缺失 | 同上 | ≥200 | 上行≥5 或 下行≥70 |
**4G 阈值(利用率按制式、用户数/流量按带宽;不分站型;3DMM 归 TDD)— 已定**
| 维度 | 取值 |
| --- | --- |
| 利用率达标(制式) | FDD:下行PDSCH≥0.7 或 上行PUSCH≥0.7;其余(TDD、3DMM):≥0.5 |
| 用户数门限(带宽,YY-RRC) | 20M→30、15M→25、10M→20、5M→12、其他→30 |
| 流量达标(带宽,下行GB) | 20M→10、15M→7.5、10M→5、5M→2.5、其他→10 |
**实测命中量(最终阈值)**
- 5G(33028):高负荷 46 / 利用率预警 536 / 高流量预警 161 / 正常 32285。
- 4G(34078):高负荷 792 / 利用率预警 62 / 高流量预警 158 / 正常 33066。
**实现(已写入 `ReportScript.sql` 富集段之后)**:判定 UPDATE 直接用富集写入结果表的 `制式`/`带宽` 列,**不再 JOIN** cellinfo/sector(规避 sector ~144 个重复 CGI 导致的行虚增)。先 UPDATE `高负荷问题`(嵌套 CASE),再 `是否高负荷小区` = `IF(高负荷问题='高负荷','是','否')`(**仅「高负荷」为是**,两类预警=否)。`优化建议` 生成见 §9。
- 「是否高负荷小区=是」的数量 = 高负荷数:4G 792、5G 46;预警类只进 `高负荷问题`、不计入"是"。
## 9. 优化建议生成(仅对 `是否高负荷小区`='是' 的高负荷小区)
**分析范围**:同扇区(`扇区`) + **同 PLMN**(CGI/NCGI 前两段;本网仅 `460-00`(移动) / `460-15`(广电),不同运营商不可均衡、不视为同扇区)。在该范围找「最空闲」小区(`高负荷问题` IS NULL,按 下行利用率 → 日均流量 升序取第一个):
- 小区标识统一为 **`CGI(小区名称)`**(4G 名称取 `小区名称`,5G 取 `CU小区配置名称`;空缺显示 `-`)。
- **模板1(有空闲小区)**:`高负荷小区{CGI(名称)}:上行利用率:.. 下行利用率:.. 日均流量:..GB 用户数:.. 当前小区功率:..。存在同覆盖空闲小区:{CGI(名称)}:下行利用率:.. 上行利用率:.. 日均流量:..GB 小区功率:..,建议将本小区部分负荷均衡至该空闲小区(负载均衡/邻区参数优化)。`
- **模板2(无空闲,同扇区皆高负荷/预警)**:`高负荷小区{CGI(名称)}:…当前小区功率:..。经分析,本站同扇区(同PLMN)小区均为高负荷或预警状态、无空闲可均衡小区,建议人工分析周边小区是否可均衡。`
**实现**(`ReportScript.sql` 末尾,紧接判定之后):每表建临时缓存 `_idle_4g`/`_idle_5g`(每个 (扇区,PLMN) 的最空闲小区,含其 `name`(小区名称) 列,`ROW_NUMBER()` 取一并建索引)→ `UPDATE 结果表 LEFT JOIN _idle … WHERE 是否高负荷小区='是'` 用 `CONCAT` 拼建议(利用率 ×100 显示为 %)→ `DROP` 临时表。`优化建议` 列由 `TINYTEXT` 改为 **`TEXT`**(建议文本超 255 字节会被截断)。仅 4G 用 PUSCH/PDSCH 利用率与 YY-RRC,5G 用 PRB 利用率与 RRC 平均用户数。
**实测(4G 高负荷 792)**:有空闲→模板1 **601**、无空闲→模板2 **191**(约 76% 可负载均衡)。语法/逻辑已在 8.0.45 只读验证通过。
## 7. 变更记录
- 2026-06-26:完成首轮调研(读 xlsx 标准、查 4G/5G 结果表分布与命中量、核对 cellinfo/sector 类别、确认 300 表为小区信息源)。
- 2026-06-26:确认方向(简化版 + AND + 分制式/带宽 + 5G RRC=200 + 是否高负荷=是/否 & 高负荷问题三类);落地规则 v1 阈值表与命中量(§8)。
- 2026-06-26:**最终敲定**——去掉站型系数(4G/5G 均不分站型)、3DMM 归 TDD;规则与阈值已写入 `ReportScript.sql`(富集段之后:新增 `高负荷问题` 列 + 两表判定 UPDATE)。最终命中量:4G 高负荷 792 / 利用率预警 62 / 高流量预警 158;5G 46 / 536 / 161。待用户跑报表验证。
- 2026-06-26:修正语义——`是否高负荷小区` **仅当 `高负荷问题='高负荷'` 才为「是」**(两类预警≠高负荷,记 `否`);`IF(高负荷问题 IS NULL,...)` 改为 `IF(高负荷问题='高负荷','是','否')`。故"是"的数量=高负荷数(4G 792、5G 46)。
- 2026-06-26:实现 `优化建议`(§9)——同扇区+同PLMN找最空闲小区,模板1(建议负载均衡)/模板2(建议人工分析周边);`优化建议` TINYTEXT→TEXT。4G 实测模板1 601 / 模板2 191。已写入 ReportScript.sql(待用户跑报表验证)。