一、测试综述
1.1 测试目的
- 本次测试的目的是验证达梦数据库,在鲲鹏服务器下,不同服务器参数基于sysbench性能压力测试的表现。
- 本次参数是根据为华为鲲鹏arm服务器调优十板斧内建议值调整
1.2 通用指标
指标名称 |
指标说明 |
TPS(Transactions per Second) |
每秒处理事务数 |
QPS(Query per Second) |
每秒查询数 |
Latency |
时延(最小值、平均值、最大值) |
P95 |
95%SQL语句执行平均时长 |
1.3 环境配置
系统 |
Uos_20 |
cpu |
128c_kenpeng |
mem |
381 |
DM8 |
8.1.2.199 |
1.4 优化模型
- ./dminit PATH=/data/dmdata PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048 CHARSET=1 CASE_SENSITIVE=1 BLANK_PAD_MODE=1
- 本次主要测试的是bios层对数据库的影响
| bios参数名称 | 默认 | 测试一 | 测试二 | 测试三 | 测试四 | 测试五 | 测试六 | 测试七 | 测试八 | 测试九 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| cpu预取 | 开 | 开 | 开 | 开 | 关 | 关 | 关 | 关 | 开 | 关 |
| 电源策略 | 节能 | 性能 | 节能 | 节能 | 节能 | 性能 | 节能 | 节能 | 性能 | 性能 |
| 内存刷新速率 | 32 | 32 | auto | 32 | 32 | 32 | auto | 32 | auto | auto |
| Max Payload Size | 256 | 256 | 256 | 512 | 256 | 256 | 256 | 512 | 512 | 512 |
1.5 性能对比
- 测试一到八以默认为100%来对比,测试九以测试四为100%来对比,红色为负优化,蓝色为正优化。
- 上下浮动2~3%为误差,可以忽略不记。
- oltp_read_only:测试只读场景的性能,其中SQL事务包括点查、范围查询、聚合函数查询、排序查询、distinct查询
- oltp_read_write:测试读写场景的性能,其中SQL事务包括点查、范围查询、聚合函数查询、排序查询、distinct查询、更新索引列、更新非索引列、插入、删除。
- oltp_point_select:测试点查场景的性能,其中SQL事务仅包含点查。
二、压力测试模型
2.1 数据模型
create tablespace "SYSBENCH" datafile '/data/dmdata/DAMENG/SYSBENCH.DBF' size 20480 autoextend on maxsize 67108863 CACHE = NORMAL;
create user "SYSBENCH" identified by "SYSBENCH" password_policy 0
default tablespace "SYSBENCH"
default index tablespace "SYSBENCH";
grant "PUBLIC","SOI","VTI" to "SYSBENCH";
2.2 压力测试
./sysbench oltp_read_write.lua --db-driver=dm --dm-db=9.1.80.45:5236 --dm-user=SYSBENCH --dm-password=SYSBENCH --table_size=10000000 --auto-inc=0 --threads=128 --tables=12 prepare
oltp_read_only
./sysbench oltp_read_only.lua --db-driver=dm --dm-db=9.1.80.45:5236 --dm-user=SYSBENCH --dm-password=SYSBENCH --table_size=10000000 --tables=12 --events=0 --time=60 --threads=128 --warmup-time=60 --report-interval=5 run
./sysbench oltp_read_only.lua --db-driver=dm --dm-db=9.1.80.45:5236 --dm-user=SYSBENCH --dm-password=SYSBENCH --table_size=10000000 --tables=12 --events=0 --time=60 --threads=1024 --warmup-time=60 --report-interval=5 run
oltp_read_write
./sysbench oltp_read_write.lua --db-driver=dm --dm-db=9.1.80.45:5236 --dm-user=SYSBENCH --dm-password=SYSBENCH --table_size=10000000 --tables=12 --events=0 --time=60 --threads=128 --warmup-time=60 --report-interval=5 run
./sysbench oltp_read_write.lua --db-driver=dm --dm-db=9.1.80.45:5236 --dm-user=SYSBENCH --dm-password=SYSBENCH --table_size=10000000 --tables=12 --events=0 --time=60 --threads=1024 --warmup-time=60 --report-interval=5 run
oltp_point_select
./sysbench oltp_point_select.lua --db-driver=dm --dm-db=9.1.80.45:5236 --dm-user=SYSBENCH --dm-password=SYSBENCH --table_size=10000000 --tables=12 --events=0 --time=60 --threads=128 --warmup-time=60 --report-interval=5 run
./sysbench oltp_point_select.lua --db-driver=dm --dm-db=9.1.80.45:5236 --dm-user=SYSBENCH --dm-password=SYSBENCH --table_size=10000000 --tables=12 --events=0 --time=60 --threads=1024 --warmup-time=60 --report-interval=5 run
./sysbench oltp_read_write.lua --db-driver=dm --dm-db=9.1.80.45:5236 --dm-user=SYSBENCH --dm-password=SYSBENCH --table_size=10000000 --auto-inc=0 --threads=128 --tables=12 cleanup
总结:
oltp_read_only |
默认 |
测试一 |
测试二 |
测试三 |
关闭预取 |
测试四 |
测试五 |
测试六 |
测试七 |
整体优化 |
测试八 |
测试九 |
cpu/% |
92 |
84 |
92 |
92 |
|
82 |
89 |
90 |
80 |
|
83 |
82 |
内存/G |
106 |
106 |
111 |
103 |
|
89 |
99 |
125 |
132 |
|
107 |
92 |
负载 |
843 |
133 |
866 |
912 |
|
134 |
926 |
960 |
127 |
|
132 |
161 |
功耗/W |
385 |
380 |
378 |
387 |
|
385 |
388 |
385 |
384 |
|
375 |
377 |
oltp_read_write |
默认 |
测试一 |
测试二 |
测试三 |
关闭预取 |
测试四 |
测试五 |
测试六 |
测试七 |
整体优化 |
测试八 |
测试九 |
cpu/% |
60 |
70 |
70 |
60 |
|
70 |
60 |
60 |
60 |
|
60 |
60 |
内存/G |
115 |
113 |
119 |
120 |
|
97 |
109 |
125 |
135 |
|
112 |
102 |
负载 |
126 |
119 |
153 |
131 |
|
76 |
89 |
86 |
62 |
|
120 |
87 |
功耗/W |
374 |
370 |
370 |
374 |
|
344 |
345 |
339 |
339 |
|
366 |
341 |
oltp_point_select |
默认 |
测试一 |
测试二 |
测试三 |
关闭预取 |
测试四 |
测试五 |
测试六 |
测试七 |
整体优化 |
测试八 |
测试九 |
cpu/% |
82 |
83 |
83 |
84 |
|
80 |
85 |
85 |
83 |
|
85 |
73 |
内存/G |
104 |
98 |
110 |
102 |
|
82 |
98 |
124 |
124 |
|
100 |
84 |
负载 |
780 |
769 |
779 |
835 |
|
1010 |
772 |
124 |
791 |
|
837 |
1028 |
功耗/W |
390 |
397 |
393 |
398 |
|
385 |
383 |
377 |
384 |
|
388 |
380 |
测试过程中均未发现内存、硬盘、网络瓶颈,且CPU占用率基本对等,说明服务器发挥出正常性能,以下为各参数对性能影响。
- 结论1:电源模式修改为性能,服务器负载与内存使用增加 ,性能未提升,使用默认节能模式即可。
- 结论2:内存刷新频率修改为Auto,内存使用增加30%,性能降低,使用默认32ms即可。
- 结论3:PCI-E带宽修改为512,性能提升5~10%,内存使用增加30%,内存充足的情况下可以优化此参数增加性能,否则默认即可。
- 结论4:CPU预取关闭,点查场景CPU降低10%使用率,读写场景下功耗降低710%使用率,三种场景下内存均降低1015%使用率,只读场景的提升很大并且稳定提升20%,但是读写混合场景性能不稳定+-15%,cpu利用率忽高忽低。因此,对于经常读写的系统,看情况修改此参数。