已合并
【资源池化】【测试报告】在线reform&视图&mes_worker #351
minty113创建于 2024年3月22日
【资源池化】【测试报告】在线reform&视图&mes_worker #351
已合并
minty113创建于 2024年3月22日
refs/pull/351/head合入到master
2 个文件变更+274-0
@@ -0,0 +1,127 @@
1+![avatar](../../../images/openGauss.png)
2+ 
3+版权所有 © 2022 openGauss社区
4+ 您对“本文档”的复制、使用、修改及分发受知识共享(Creative Commons)署名—相同方式共享4.0国际公共许可协议(以下简称“CC BY-SA 4.0”)的约束。为了方便用户理解,您可以通过访问https://creativecommons.org/licenses/by-sa/4.0/ 了解CC BY-SA 4.0的概要 (但不是替代)。CC BY-SA 4.0的完整协议内容您可以访问如下网址获取:https://creativecommons.org/licenses/by-sa/4.0/legalcode。
5+ 
6+修订记录
7+ 
8+| 日期 | 修订版本 | 修改描述 | 作者 |
9+| :------- | :------ | :---------------------------------- | :------------- |
10+| 2024-1-30 | 1.0 | 特性测试报告初稿 | liumin30023837 |
11+ 
12+ 关键词: 资源池化 mes_worker 线程池化
13+ 
14+摘要:
15+ 
16+本文对资源池化mes_worker 线程池化相关特性测试,并给出最终测试结论。
17+ 
18+缩略语清单:
19+ 
20+| 缩略语 | 英文全名 | 中文解释 |
21+| :---- | :--------------------------------------------------- | :---------------------------------------------------- |
22+| NA | | |
23+ 
24+# 1 特性概述
25+ 
26+openGauss实现对资源池化消息的处理线程mes_worker进行池化管理,从而做到随着业务压力的增加,增加对应的消息处理线程,业务压力减少,减少对应的消息处理线程。
27+ 
28+# 2 特性测试信息
29+ 
30+| 版本名称 | 测试起始时间 | 测试结束时间 |
31+| :----------------------------------------------------------- | :----------- | :----------- |
32+| openGauss 5.1.1 build 582426cb<br />openGauss 6.0.0 build d10e4849<br />openGauss 6.0.0 build d28f3889 | 2024-1-22 | 2024-1-31 |
33+ 
34+| 环境信息 | 配置信息 | 备注 |
35+| :------- | :----------------------------------------------------------- | :---- |
36+| 物理机 | CPU:Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz<br />内存:251GB<br />硬盘:Dorado 磁阵<br />OS: openEuler 20.03 (LTS) | |
37+ 
38+# 3 测试结论概述
39+ 
40+## 3.1 测试整体结论
41+ 
42+实现资源池化mes_worker 线程池化相关特性测试特性测试中,主要涉及功能验证、特性耦合测试,故障场景,性能场景测试共发现10个问题,回归通过,无遗留风险,质量一般。</u>
43+ 
44+| 测试活动 | 活动评价 |
45+| :------ | :----------------------------------------------------------- |
46+| 功能测试 | 验证新增ss_work_thread_pool_attr接口,以及功能,通过。 |
47+| 特性耦合 | 验证升级,和按需回放+写转发交互,通过。 |
48+| 故障 | 验证switchover failover 集群启停 kill进程,以及叠加故障,通过。 |
49+| 性能场景 | 性能验收场景,通过。 |
50+| 资料测试 | 新增参数资料验证,通过。 |
51+ 
52+## 3.2 约束说明
53+ 
54+-
55+ 
56+## 3.3 遗留问题分析
57+ 
58+### 3.3.1 遗留问题影响以及规避措施
59+ 
60+| 问题单号 | 问题描述 | 问题级别 | 问题影响和规避措施 | 当前状态 |
61+| :------ | :------ | :------ | :---------------- | :------ |
62+| | | | | |
63+ 
64+### 3.3.2 问题统计
65+ 
66+| | 问题总数 | 严重 | 主要 | 次要 | 不重要 |
67+| :--------- | :------ | :-- | :-- | :-- | :---- |
68+| 数目 (个) | 10 | 1 | 7 | 2 | 0 |
69+| 百分比 (%) | 100 | 10 | 70 | 20 | 0 |
70+ 
71+### 3.3.3 问题单汇总
72+ 
73+| 序号 | issue号 | 问题级别 | 问题简述 | 问题状态 |
74+| :-- | :---------------------------------------------------------- | :------ | :---------------------------------------------------------- | :------ |
75+| 1 | https://e.gitee.com/opengaussorg/issues/table?issue=I8YAP1 | 主要 | 【测试类型:功能测试】【测试版本:6.0.0】【资源池化】【需求名称:MES worker线程池化】设置GUC参数ss_work_thread_pool_attr=16 拉起业务 线程正常添加 停止业务后 线程未正常释放 | 已验收 |
76+| 2 | https://e.gitee.com/opengaussorg/issues/table?issue=I8YATL | 严重 | 【测试类型:功能测试】【测试版本:6.0.0】【资源池化】【需求名称:MES worker线程池化】升级后,设置GUC参数ss_work_thread_pool_attr=128 重启失败 生成core | 已验收 |
77+| 3 | https://e.gitee.com/opengaussorg/issues/table?issue=I8YHEV | 主要 | 【测试类型:功能测试】【测试版本:6.0.0】【资源池化】【需求名称:MES worker线程池化】节点多次启停 节点core | 已验收 |
78+| 4 | https://e.gitee.com/opengaussorg/issues/table?issue=I8YLMN | 次要 | 【测试类型:功能测试】【测试版本:6.0.0】【资源池化】【需求名称:MES worker线程池化】kill 备机 switchover 后 主机偶现core | 待办的 |
79+| 5 | https://e.gitee.com/opengaussorg/issues/table?issue=I8YMGR | 次要 | 【测试类型:功能测试】【测试版本:6.0.0】【资源池化】【需求名称:MES worker线程池化】 switchover +kill 进程 主机unknown | 已完成 |
80+| 6 | https://e.gitee.com/opengaussorg/issues/table?issue=I8ZQKG | 主要 | 【测试类型:功能测试】【测试版本:6.0.0】【资源池化】【需求名称:MES worker线程池化】debug包 设置GUC参数ss_work_thread_pool_attr=16 stop集群生成core | 已验收 |
81+| 7 | https://e.gitee.com/opengaussorg/issues/table?issue=I8ZY06 | 主要 | 【测试类型:功能测试】【测试版本:6.0.0】【资源池化】【需求名称:MES worker线程池化】switchover 后生成core | 已验收 |
82+| 8 | https://e.gitee.com/opengaussorg/issues/table?issue=I909HQ | 主要 | 【测试类型:功能测试】【测试版本:6.0.0】【资源池化】【需求名称:MES worker线程池化】debug版本 主备切换+业务跑大于12小时 查询query_all_drc_info视图 卡住 | 已完成 |
83+| 9 | https://e.gitee.com/opengaussorg/issues/table?issue=I90GKU | 主要 | 【测试类型:功能测试】【测试版本:6.0.0】【资源池化】【需求名称:MES worker线程池化】主备切换后,在新主和备机长跑业务 几个小时后业务断 | 已验收 |
84+| 10 | https://e.gitee.com/opengaussorg/issues/table?issue=I91G5E | 主要 | 【测试类型:功能测试】【测试版本:6.0.0】【资源池化】【需求名称:MES worker线程池化】kill进程后 偶现备机状态异常显示卡在升主上 | 待办的 |
85+ 
86+# 4 测试执行
87+ 
88+## 4.1 功能测试
89+ 
90+| 测试步骤 | 测试结果 |
91+| :----------------------------------------------------------- | ----------- |
92+| 1.针对资源池化mes_worker 线程池化,验证新增GUC 参数ss_work_thread_pool_attr接口测试,包括默认值、边界值、异常值等。验证 ss_work_thread_pool_attr不同取值跑业务场景以及一致性检查。<br />2.验证升级测试,包括升级不提交,升级提交,升级回滚场景下新增GUC参数ss_work_thread_pool_attr是否可以设置,已经设置成功后功能使用是否正常。<br />3.跑tpcc并对主机备机做故障,包括kill备节点进程,switchover过程中机器故障,启停过程中集群故障等。<br />4.开启按需回放+写转发,同时设置参数ss_work_thread_pool_attr跑tpcc业务做交互测试。<br />5.验收性能场景:固定MES worker线程数量和开启worker线程池下对比cpu占用率;开启128后,CPU利用率下降10%以上。 | 发现10个bug |
93+ 
94+## 4.2 资料测试
95+ 
96+| 测试步骤 | 测试结果 |
97+| :--------------------------------- | :--------- |
98+| 1.验证语法资料描述及示例是否正确。 | 发现0个bug |
99+ 
100+## 4.3 测试执行统计数据
101+ 
102+缺陷单共10个,
103+ 
104+PR:
105+ 
106+```
107+https://e.gitee.com/opengaussorg/repos/opengauss/CBB/pulls/124
108+https://e.gitee.com/opengaussorg/repos/opengauss/DMS/pulls/356
109+https://e.gitee.com/opengaussorg/repos/opengauss/openGauss-server/pulls/4728
110+https://e.gitee.com/opengaussorg/repos/opengauss/CM/pulls/175
111+https://e.gitee.com/opengaussorg/repos/opengauss/DSS/pulls/293
112+```
113+ 
114+代码数量:1534
115+ 
116+ 缺陷密度:6.52
117+ 
118+## 4.4 后续测试建议
119+ 
120+无。
121+ 
122+# 5 附件
123+ 
124+```sql
125+gs_guc set -Z datanode -N all -I all -c "ss_work_thread_pool_attr ='' "
126+gs_guc set -Z datanode -N all -I all -c "ss_work_thread_pool_attr ='16' "
127+```
@@ -0,0 +1,147 @@
1+![avatar](../../../images/openGauss.png)
2+ 
3+版权所有 © 2022 openGauss社区
4+ 您对“本文档”的复制、使用、修改及分发受知识共享(Creative Commons)署名—相同方式共享4.0国际公共许可协议(以下简称“CC BY-SA 4.0”)的约束。为了方便用户理解,您可以通过访问https://creativecommons.org/licenses/by-sa/4.0/ 了解CC BY-SA 4.0的概要 (但不是替代)。CC BY-SA 4.0的完整协议内容您可以访问如下网址获取:https://creativecommons.org/licenses/by-sa/4.0/legalcode。
5+ 
6+修订记录
7+ 
8+| 日期 | 修订版本 | 修改描述 | 作者 |
9+| :------- | :------ | :---------------------------------- | :------------- |
10+| 2024-1-29 | 1.0 | 特性测试报告初稿 | liumin30023837 |
11+ 
12+ 关键词: 资源池化 在线reform wait_events query_all_drc_info query_node_reform_info_from_dms
13+ 
14+摘要:
15+ 
16+本文对资源池化支持在线reform,等待事件相关视图 相关特性测试,并给出最终测试结论。
17+ 
18+缩略语清单:
19+ 
20+| 缩略语 | 英文全名 | 中文解释 |
21+| :---- | :--------------------------------------------------- | :---------------------------------------------------- |
22+| NA | | |
23+ 
24+# 1 特性概述
25+ 
26+openGauss实现对资源池化支持在线reform,即对于一个集群,加入备机,踢出备机,重启备机,对于这三种场景,集群中的主机和其他备机的业务,不会中断,在集群恢复正常后,对应业务可以继续跑下去。
27+ 
28+openGauss实现对资源池化 新增等待事件视图 DRC信息视图 Reform相关视图 有利于查看以及定位问题。
29+ 
30+# 2 特性测试信息
31+ 
32+| 版本名称 | 测试起始时间 | 测试结束时间 |
33+| :----------------------------------------------------------- | :----------- | :----------- |
34+| openGauss 5.1.1 build cc4bfd82 <br />openGauss 5.1.1 build 582426cb | 2023-12-7 | 2023-12-30 |
35+ 
36+| 环境信息 | 配置信息 | 备注 |
37+| :------- | :----------------------------------------------------------- | :---- |
38+| 物理机 | CPU:Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz<br />内存:251GB<br />硬盘:Dorado 磁阵<br />OS: openEuler 20.03 (LTS) | |
39+ 
40+# 3 测试结论概述
41+ 
42+## 3.1 测试整体结论
43+ 
44+实现资源池化支持在线reform,等待事件相关视图 相关特性测试特性测试中,主要涉及功能验证、一致性长跑测试,故障测试共发现12个问题,回归通过,无遗留风险,质量一般。</u>
45+ 
46+| 测试活动 | 活动评价 |
47+| :------ | :----------------------------------------------------------- |
48+| 功能测试 | 验证备机reform场景,通过。验证新增wait_events query_all_drc_info query_node_reform_info_from_dms视图功能可用,通过。 |
49+| 一致性长跑 | 跑tpcc 100仓业务,验证一致性,通过,长跑通过。 |
50+| 故障 | 验证switchover failover 集群启停 kill进程,以及叠加故障,通过 |
51+| 资料测试 | 新增参数资料验证,通过 |
52+ 
53+## 3.2 约束说明
54+ 
55+-
56+ 
57+## 3.3 遗留问题分析
58+ 
59+### 3.3.1 遗留问题影响以及规避措施
60+ 
61+| 问题单号 | 问题描述 | 问题级别 | 问题影响和规避措施 | 当前状态 |
62+| :------ | :------ | :------ | :---------------- | :------ |
63+| | | | | |
64+ 
65+### 3.3.2 问题统计
66+ 
67+| | 问题总数 | 严重 | 主要 | 次要 | 不重要 |
68+| :--------- | :------ | :-- | :-- | :-- | :---- |
69+| 数目 (个) | 14 | 0 | 11 | 3 | 0 |
70+| 百分比 (%) | 100 | 0 | 78.5 | 21.5 | 0 |
71+ 
72+### 3.3.3 问题单汇总
73+ 
74+| 序号 | issue号 | 问题级别 | 问题简述 | 问题状态 |
75+| :-- | :---------------------------------------------------------- | :------ | :---------------------------------------------------------- | :------ |
76+| 1 | https://e.gitee.com/opengaussorg/issues/table?issue=I8US16 | 主要 | 【测试类型:功能测试】【测试版本:5.1.1】【需求名称:资源池化】debug版本 kill 备机1进程 备机2偶现core | 待办的 |
77+| 2 | https://e.gitee.com/opengaussorg/issues/table?issue=I8TC6O | 主要 | 【测试类型:功能测试】【测试版本:5.1.1】【需求名称:新增DMS、CBB等待事件统计】debug版本 节点启停+查询query_all_drc_info视图 备机生成core | 已验收 |
78+| 3 | https://e.gitee.com/opengaussorg/issues/table?issue=I8T0L2 | 主要 | 【测试类型:功能测试】【测试版本:5.1.1】【需求名称:新增DMS、CBB等待事件统计】debug版本 主机stop 新主查询query_all_drc_info(1) 结果为空(偶现) | 已验收 |
79+| 4 | https://e.gitee.com/opengaussorg/issues/table?issue=I8ST2I | 主要 | 【测试类型:功能测试】【测试版本:5.1.1】【需求名称:新增DMS、CBB等待事件统计】debug版本 主备切换+业务 偶现查询query_all_drc_info视图 24小时未出结果 堆栈pool_index 异常 | 测试中 |
80+| 5 | https://e.gitee.com/opengaussorg/issues/table?issue=I8RCIO | 主要 | 【测试类型:功能测试】【测试版本:5.1.1】【需求名称:支持在线reform】debug版本 业务加集群启停 数据库core | 已验收 |
81+| 6 | https://e.gitee.com/opengaussorg/issues/table?issue=I8R74H | 主要 | 【测试类型:功能测试】【测试版本:5.1.1】【需求名称:支持在线reform】debug版本 switchover+kill 进程 备机偶现core | 已验收 |
82+| 7 | https://e.gitee.com/opengaussorg/issues/table?issue=I8QN2K | 主要 | 【测试类型:功能测试】【测试版本:5.1.1】【需求名称:新增DMS、CBB等待事件统计】【需求编号:I852ED】查询query_all_drc_info(1),RESOURCE_ID 为重复值 | 已验收 |
83+| 8 | https://e.gitee.com/opengaussorg/issues/table?issue=I8QA2G | 次要 | 【测试类型:功能测试】【测试版本:5.1.1】【需求名称:新增DMS、CBB等待事件统计】【需求编号:I852ED】备机查询query_all_drc_info,查询为空 | 已验收 |
84+| 9 | https://e.gitee.com/opengaussorg/issues/table?issue=I8PAS2 | 次要 | 【测试类型:功能测试】【测试版本:5.1.1】【需求名称:支持在线reform】开启写转发,普通用户,在备机执行写操作,报错standbywhite could not concect | 已验收 |
85+| 10 | https://e.gitee.com/opengaussorg/issues/table?issue=I8NQQT | 主要 | 【测试类型:功能测试】【测试版本:5.1.1】【需求名称:支持在线reform】debug版本 主机拉起业务 备机启停 主机业务断掉 | 回归中 |
86+| 11 | https://e.gitee.com/opengaussorg/issues/table?issue=I8MMET | 主要 | 【测试类型:功能测试】【测试版本:5.1.1】【需求名称:支持在线reform】debug版本 switchover+kill 进程 数据库core | 已验收 |
87+| 12 | https://e.gitee.com/opengaussorg/issues/table?issue=I8K48U | 主要 | 【测试类型:功能测试】【测试版本:5.1.1】【需求名称:资源池化】debug版本 集群重启,备机出现core | 已验收 |
88+| 13 | https://e.gitee.com/opengaussorg/issues/table?issue=I8GHD4 | 主要 | 【测试类型:功能测试】【测试版本:5.1.1】【需求名称:资源池化】full clean 场景 节点 加入 一直失败,然后踢出 | 已验收 |
89+| 14 | https://e.gitee.com/opengaussorg/issues/table?issue=I8C13W | 次要 | 【测试类型:功能测试】【测试版本:5.1.1】【需求名称:资源池化】共享存储 单节点启停 机器状态异常(偶现) | 已验收 |
90+ 
91+# 4 测试执行
92+ 
93+## 4.1 功能测试
94+ 
95+| 测试步骤 | 测试结果 |
96+| :----------------------------------------------------------- | ----------- |
97+| 1.针对资源池化支持在线reform,验证备机reform场景包括备机节点启停,备机节点kill,备机节点剔除。验证新增视图wait_events query_all_drc_info query_node_reform_info_from_dms字段结果正确性。<br />2.跑tpcc 100仓100并发 主机读写+备机读+手动备机查询,检查业务数据一致性<br />3.跑tpcc并对主机备机做故障,包括kill备节点进程,switchover过程中机器故障,启停过程中集群故障等。验证在故障场景和新增视图的交互。<br />4.开启按需回放+写转发,和支持在线reform,新增视图做交互。 | 发现12个bug |
98+ 
99+## 4.2 资料测试
100+ 
101+| 测试步骤 | 测试结果 |
102+| :--------------------------------- | :--------- |
103+| 1.验证语法资料描述及示例是否正确。 | 发现0个bug |
104+ 
105+## 4.3 测试执行统计数据
106+ 
107+1. 支持在线reform
108+ 
109+​ 代码数量:222
110+ 
111+​ 缺陷密度: 5
112+ 
113+2. 新增DMS、CBB等待事件统计
114+ 
115+ 代码数量:800
116+ 
117+ 缺陷密度: 5
118+ 
119+PR:
120+ 
121+```
122+https://e.gitee.com/opengaussorg/repos/opengauss/openGauss-server/pulls/4509
123+https://e.gitee.com/opengaussorg/repos/opengauss/DMS/pulls/320
124+```
125+ 
126+```
127+https://gitee.com/opengauss/openGauss-server/pulls/4469
128+https://gitee.com/opengauss/DMS/pulls/312
129+https://codehub-y.huawei.com/Gauss/DDES/DMS/merge_requests/904
130+```
131+ 
132+ 
133+ 
134+## 4.4 后续测试建议
135+ 
136+无。
137+ 
138+# 5 附件
139+ 
140+```sql
141+select * from dbe_perf.wait_events where event='req ask owner for page';
142+select * from dbe_perf.wait_events where event='req claim owner';
143+select * from pg_catalog.query_all_drc_info(0);
144+select * from pg_catalog.query_all_drc_info(1);
145+select * from pg_catalog.query_node_reform_info_from_dms(0);
146+select * from pg_catalog.query_node_reform_info_from_dms(1);
147+```