diff --git "a/content/zh/docs/Developerguide/BIOS\351\205\215\347\275\256.md" "b/content/zh/docs/Developerguide/BIOS\351\205\215\347\275\256.md" new file mode 100644 index 0000000000000000000000000000000000000000..06d006fb37f458753b0a86a18255714e1d7e5a79 --- /dev/null +++ "b/content/zh/docs/Developerguide/BIOS\351\205\215\347\275\256.md" @@ -0,0 +1,17 @@ +# BIOS配置 + +1. 恢复BIOS出厂设置。 +2. 修改相关BIOS设置,如下所示: + 1. **BIOS\>Advanced\>MISC Config,配置Support Smmu为Disabled**,如[图1](#fig1464144318512)所示。 + + **图 1** 修改BIOS设置(1) + .png "") + + 2. **BIOS\>Advanced\>MISC Config,配置CPU Prefetching Configuration为Disabled**,如[图1](#fig1464144318512)所示。 + 3. **BIOS\>Advanced\>Memory Config,配置Die Interleaving为Disable**,如[图2](#fig6430185319610)所示。 + + **图 2** 修改BIOS设置(2) + .png "") + +3. 重启BIOS系统。 + diff --git "a/content/zh/docs/Developerguide/TPCC\346\200\247\350\203\275\350\260\203\344\274\230\346\265\213\350\257\225\346\214\207\345\257\274.md" "b/content/zh/docs/Developerguide/TPCC\346\200\247\350\203\275\350\260\203\344\274\230\346\265\213\350\257\225\346\214\207\345\257\274.md" new file mode 100644 index 0000000000000000000000000000000000000000..1db20f74b11f36b9506a3218cc4a13e479fa9d3a --- /dev/null +++ "b/content/zh/docs/Developerguide/TPCC\346\200\247\350\203\275\350\260\203\344\274\230\346\265\213\350\257\225\346\214\207\345\257\274.md" @@ -0,0 +1,5 @@ +# TPCC性能调优测试指导 + +- [概述](概述-20.md) +- [搭建性能测试环境](搭建性能测试环境.md) +- [测试TPCC性能](测试TPCC性能.md) \ No newline at end of file diff --git a/content/zh/docs/Developerguide/figures/zh-cn_image_0263913298.png b/content/zh/docs/Developerguide/figures/zh-cn_image_0263913298.png new file mode 100644 index 0000000000000000000000000000000000000000..1e1a413adb4bc8df9e6b489e2f6917d3c7343f78 Binary files /dev/null and b/content/zh/docs/Developerguide/figures/zh-cn_image_0263913298.png differ diff --git a/content/zh/docs/Developerguide/figures/zh-cn_image_0263913300.png b/content/zh/docs/Developerguide/figures/zh-cn_image_0263913300.png new file mode 100644 index 0000000000000000000000000000000000000000..47e12b2de48917db7703aca995231e56995daced Binary files /dev/null and b/content/zh/docs/Developerguide/figures/zh-cn_image_0263913300.png differ diff --git a/content/zh/docs/Developerguide/figures/zh-cn_image_0263913302.png b/content/zh/docs/Developerguide/figures/zh-cn_image_0263913302.png new file mode 100644 index 0000000000000000000000000000000000000000..31fe671c5643be5375abfd9f83a9c6cb03e743f0 Binary files /dev/null and b/content/zh/docs/Developerguide/figures/zh-cn_image_0263913302.png differ diff --git a/content/zh/docs/Developerguide/figures/zh-cn_image_0263913304.png b/content/zh/docs/Developerguide/figures/zh-cn_image_0263913304.png new file mode 100644 index 0000000000000000000000000000000000000000..2c6365af42d3612d881f78e0b47e783504627bdc Binary files /dev/null and b/content/zh/docs/Developerguide/figures/zh-cn_image_0263913304.png differ diff --git a/content/zh/docs/Developerguide/figures/zh-cn_image_0263913306.png b/content/zh/docs/Developerguide/figures/zh-cn_image_0263913306.png new file mode 100644 index 0000000000000000000000000000000000000000..969810fa0ee1f30460d406ce997366f1d9ce1fd4 Binary files /dev/null and b/content/zh/docs/Developerguide/figures/zh-cn_image_0263913306.png differ diff --git a/content/zh/docs/Developerguide/figures/zh-cn_image_0263913308.png b/content/zh/docs/Developerguide/figures/zh-cn_image_0263913308.png new file mode 100644 index 0000000000000000000000000000000000000000..8fc6f91809895bfa1f69c6fc34600ab675686901 Binary files /dev/null and b/content/zh/docs/Developerguide/figures/zh-cn_image_0263913308.png differ diff --git a/content/zh/docs/Developerguide/figures/zh-cn_image_0263913310.png b/content/zh/docs/Developerguide/figures/zh-cn_image_0263913310.png new file mode 100644 index 0000000000000000000000000000000000000000..9b3de93402ea18673de4bf73b4614e4155bedb3e Binary files /dev/null and b/content/zh/docs/Developerguide/figures/zh-cn_image_0263913310.png differ diff --git a/content/zh/docs/Developerguide/figures/zh-cn_image_0263957242.png b/content/zh/docs/Developerguide/figures/zh-cn_image_0263957242.png new file mode 100644 index 0000000000000000000000000000000000000000..51d704af108d7894dc27c0ccab6c14d8910bf967 Binary files /dev/null and b/content/zh/docs/Developerguide/figures/zh-cn_image_0263957242.png differ diff --git "a/content/zh/docs/Developerguide/figures/\344\277\256\346\224\271BIOS\350\256\276\347\275\256\357\274\2101\357\274\211.png" "b/content/zh/docs/Developerguide/figures/\344\277\256\346\224\271BIOS\350\256\276\347\275\256\357\274\2101\357\274\211.png" new file mode 100644 index 0000000000000000000000000000000000000000..bbef53553bf16c717528939b4dc59c8cc94653e4 Binary files /dev/null and "b/content/zh/docs/Developerguide/figures/\344\277\256\346\224\271BIOS\350\256\276\347\275\256\357\274\2101\357\274\211.png" differ diff --git "a/content/zh/docs/Developerguide/figures/\344\277\256\346\224\271BIOS\350\256\276\347\275\256\357\274\2102\357\274\211.png" "b/content/zh/docs/Developerguide/figures/\344\277\256\346\224\271BIOS\350\256\276\347\275\256\357\274\2102\357\274\211.png" new file mode 100644 index 0000000000000000000000000000000000000000..430dfa0ca3f4fa0190ce42b0e9419469855b8fed Binary files /dev/null and "b/content/zh/docs/Developerguide/figures/\344\277\256\346\224\271BIOS\350\256\276\347\275\256\357\274\2102\357\274\211.png" differ diff --git "a/content/zh/docs/Developerguide/figures/\346\237\245\347\234\213nvme\347\233\230\347\232\204\344\277\241\346\201\257.png" "b/content/zh/docs/Developerguide/figures/\346\237\245\347\234\213nvme\347\233\230\347\232\204\344\277\241\346\201\257.png" new file mode 100644 index 0000000000000000000000000000000000000000..6d4c8f37321c77926a74566c4b855eede2ed257d Binary files /dev/null and "b/content/zh/docs/Developerguide/figures/\346\237\245\347\234\213nvme\347\233\230\347\232\204\344\277\241\346\201\257.png" differ diff --git "a/content/zh/docs/Developerguide/figures/\346\237\245\347\234\213\346\223\215\344\275\234\347\263\273\347\273\237\345\206\205\346\240\270PAGESIZE\347\232\204\345\200\274.png" "b/content/zh/docs/Developerguide/figures/\346\237\245\347\234\213\346\223\215\344\275\234\347\263\273\347\273\237\345\206\205\346\240\270PAGESIZE\347\232\204\345\200\274.png" new file mode 100644 index 0000000000000000000000000000000000000000..b6a6bf62f507a72d8853f54b3bbb5d7f834cef98 Binary files /dev/null and "b/content/zh/docs/Developerguide/figures/\346\237\245\347\234\213\346\223\215\344\275\234\347\263\273\347\273\237\345\206\205\346\240\270PAGESIZE\347\232\204\345\200\274.png" differ diff --git "a/content/zh/docs/Developerguide/\344\270\255\346\226\255\350\260\203\344\274\230.md" "b/content/zh/docs/Developerguide/\344\270\255\346\226\255\350\260\203\344\274\230.md" new file mode 100644 index 0000000000000000000000000000000000000000..15c8e4e03dd7010e11b5d21eb1ed808a1483c127 --- /dev/null +++ "b/content/zh/docs/Developerguide/\344\270\255\346\226\255\350\260\203\344\274\230.md" @@ -0,0 +1,20 @@ +# 中断调优 + +1. 在openGauss数据库CPU占比90%以上的情况下,CPU成为瓶颈,需要开启offloading,将网络分片offloading到网卡上。 + + 执行如下命令,开启tso,lro,gro,gso特性。 + + ``` + ethtool –K enp3s0 tso on + ethtool –K enp3s0 lro on + ethtool –K enp3s0 gro on + ethtool –K enp3s0 gso on + ``` + +2. 执行如下命令,将网卡中断队列与CPU核进行绑定。 + + ``` + sh bind_net_irq.sh 16 + ``` + + diff --git "a/content/zh/docs/Developerguide/\345\211\215\347\275\256\350\275\257\344\273\266\345\256\211\350\243\205.md" "b/content/zh/docs/Developerguide/\345\211\215\347\275\256\350\275\257\344\273\266\345\256\211\350\243\205.md" new file mode 100644 index 0000000000000000000000000000000000000000..55e5e28ae9da6ef4e190277fd64a59b68e90e3d5 --- /dev/null +++ "b/content/zh/docs/Developerguide/\345\211\215\347\275\256\350\275\257\344\273\266\345\256\211\350\243\205.md" @@ -0,0 +1,42 @@ +# 前置软件安装 + +1. 安装jdk。 + 1. 下载并安装jdk。 + 2. 配置环境变量,具体如下: + + ``` + export JAVA_HOME=your_path/jdk1.8.0_232 + export JRE_HOME=${JAVA_HOME}/jre + export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/jre + export PATH=${PATH}:${JAVA_HOME}/bin + export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8 + ``` + +2. 安装numactl。 + + 执行如下命令安装numactl。 + + ``` + yum install –y numactl + ``` + +3. 安装ant。 + + 1. 执行如下命令安装ant。 + + ``` + yum install –y ant + ``` + + 2. 设置环境变量,修改文件/etc/profile,添加下面两行。 + + ``` + export ANT_HOME=/usr/share/ant/ + export PATH=${PATH}:${ANT_HOME}/bin + ``` + + > **说明:** + >可能对于不同的操作系统ANT\_HOME的安装路径不一样, 可以通过find命令找打其对应的安装路径。 + +4. 安装htop工具,具体请参见[https://hisham.hm/htop/](https://hisham.hm/htop/)。 + diff --git "a/content/zh/docs/Developerguide/\346\220\255\345\273\272\346\200\247\350\203\275\346\265\213\350\257\225\347\216\257\345\242\203.md" "b/content/zh/docs/Developerguide/\346\220\255\345\273\272\346\200\247\350\203\275\346\265\213\350\257\225\347\216\257\345\242\203.md" new file mode 100644 index 0000000000000000000000000000000000000000..e920318ab2706c9874d2f8edb81a429cae7d5621 --- /dev/null +++ "b/content/zh/docs/Developerguide/\346\220\255\345\273\272\346\200\247\350\203\275\346\265\213\350\257\225\347\216\257\345\242\203.md" @@ -0,0 +1,19 @@ +# 搭建性能测试环境 + +- **[硬件要求](硬件要求.md)** + +- **[软件要求](软件要求.md)** + +- **[前置软件安装](前置软件安装.md)** + +- **[BIOS配置](BIOS配置.md)** + +- **[操作系统配置](操作系统配置.md)** + +- **[文件系统配置](文件系统配置.md)** + +- **[网络配置](网络配置.md)** + +- **[数据库服务端及客户端绑核](数据库服务端及客户端绑核.md)** + + diff --git "a/content/zh/docs/Developerguide/\346\223\215\344\275\234\347\263\273\347\273\237.md" "b/content/zh/docs/Developerguide/\346\223\215\344\275\234\347\263\273\347\273\237.md" new file mode 100644 index 0000000000000000000000000000000000000000..887a7be5f7e46881842df5c589c661e78260ca85 --- /dev/null +++ "b/content/zh/docs/Developerguide/\346\223\215\344\275\234\347\263\273\347\273\237.md" @@ -0,0 +1,4 @@ +# 操作系统 + +操作系统要求:openEuler-20.03-LTS \(aarch64 架构\) + diff --git "a/content/zh/docs/Developerguide/\346\223\215\344\275\234\347\263\273\347\273\237\351\205\215\347\275\256.md" "b/content/zh/docs/Developerguide/\346\223\215\344\275\234\347\263\273\347\273\237\351\205\215\347\275\256.md" new file mode 100644 index 0000000000000000000000000000000000000000..17741d8afc6a6783213344c336d7080c7397d261 --- /dev/null +++ "b/content/zh/docs/Developerguide/\346\223\215\344\275\234\347\263\273\347\273\237\351\205\215\347\275\256.md" @@ -0,0 +1,32 @@ +# 操作系统配置 + +1. 安装openEuler操作系统,具体请参见[《openEuler 安装指南》](https://openeuler.org/zh/docs/20.03_LTS/docs/Installation/installation.html)。 +2. 修改操作系统内核PAGESIZE为64KB。 + 1. 查看操作系统内核PAGESIZE的值。 + + 以root用户登录操作系统,执行如下命令查看PAGESIZE的值。 + + ``` + getconf PAGESIZE + ``` + + 如[图1](#fig1277156123020)所示,表示操作系统内核PAGESIZE为64KB。 + + **图 1** 查看操作系统内核PAGESIZE的值 +  + + 2. 如果PAGESIZE不为64KB,需要修改参数并重新编译内核,详情请参考[https://bbs.huaweicloud.com/blogs/154313](https://bbs.huaweicloud.com/blogs/154313)。 + +3. 关闭CPU中断的服务irqbalance。irqbalance负责均衡CPU中断,避免单CPU处理中断负载过重。 + + 以root用户登录操作系统,执行如下命令。 + + ``` + service irqbalance stop # 关闭Irq balance。 + echo 0 > /proc/sys/kernel/numa_balancing + echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled + echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag + echo none > /sys/block/nvme*n*/queue/scheduler # 针对nvme磁盘io队列调度机制设置。 + ``` + + diff --git "a/content/zh/docs/Developerguide/\346\225\260\346\215\256\345\272\223\346\234\215\345\212\241\347\253\257\345\217\212\345\256\242\346\210\267\347\253\257\347\273\221\346\240\270.md" "b/content/zh/docs/Developerguide/\346\225\260\346\215\256\345\272\223\346\234\215\345\212\241\347\253\257\345\217\212\345\256\242\346\210\267\347\253\257\347\273\221\346\240\270.md" new file mode 100644 index 0000000000000000000000000000000000000000..a541d618db030bda8ba565f6565990b243eebfee --- /dev/null +++ "b/content/zh/docs/Developerguide/\346\225\260\346\215\256\345\272\223\346\234\215\345\212\241\347\253\257\345\217\212\345\256\242\346\210\267\347\253\257\347\273\221\346\240\270.md" @@ -0,0 +1,28 @@ +# 数据库服务端及客户端绑核 + +1. 安装openGauss数据库,具体操作请参考《openGauss 安装指南》。 +2. 停止数据库,具体操作请参考《openGauss 管理员指南》中的“启停openGauss”章节。 +3. 使用gs\_guc工具修改数据库端口、IP等,gs\_guc的使用请参考《openGauss 工具参考》中的“服务端工具\>gs\_guc”章节。 +4. 使用gs\_guc工具设置如下参数。 + + ``` + advance_xlog_file_num = 10 + numa_distribute_mode = 'all' + thread_pool_attr = '812,4,(cpubind:0-27,32-59,64-91,96-123)' + ``` + +5. 执行如下命令以绑核方式启动服务端数据库。 + + ``` + numactl -C 0-27,32-59,64-91,96-123 gaussdb --single_node -D /data1/gaussdata -p 3625 & + ``` + + 其中0-27,32-59,64-91,96-123表示使用112个核运行TPCC程序,其余的16个核用来处理服务端的网络中断。 + +6. 执行如下命令,将客户端CPU的48个核与网卡中断队列进行绑定: + + ``` + sh bind_net_irq.sh 48 + ``` + + diff --git "a/content/zh/docs/Developerguide/\346\226\207\344\273\266\347\263\273\347\273\237\351\205\215\347\275\256.md" "b/content/zh/docs/Developerguide/\346\226\207\344\273\266\347\263\273\347\273\237\351\205\215\347\275\256.md" new file mode 100644 index 0000000000000000000000000000000000000000..eda98709b99fc7b17d7108162d89403f5c87e035 --- /dev/null +++ "b/content/zh/docs/Developerguide/\346\226\207\344\273\266\347\263\273\347\273\237\351\205\215\347\275\256.md" @@ -0,0 +1,44 @@ +# 文件系统配置 + +为了提升数据库的IO效率,我们使用NVME盘作为数据盘,需要采用的文件系统类型为xfs,数据块大小为8KB。具体操作如下: + +1. 查看当前数据盘的文件系统类型。 + 1. 执行如下命令查看当前挂载的nvme盘。 + + ``` + df -h | grep nvme + ``` + + 结果如下。 + + ``` + /dev/nvme0n1 3.7T 2.6T 1.2T 69% /data1 + /dev/nvme1n1 3.7T 1.9T 1.8T 51% /data2 + /dev/nvme2n1 3.7T 2.2T 1.6T 59% /data3 + /dev/nvme3n1 3.7T 1.4T 2.3T 39% /data4 + ``` + + 2. 执行如下命令查看nvme盘的信息。 + + ``` + xfs_info + ``` + + 例如执行命令**xfs\_info /data1**,如[图1](#fig16848819124216)所示,block的大小正好为8KB,不需要修改;若block不满足8kB大小的要求,需要重新格式化,格式化前请将数据进行备份。 + + **图 1** 查看nvme盘的信息 +  + +2. 对于需要修改的磁盘,备份所需的数据至其他磁盘或其他服务器。 +3. 格式化磁盘为xfs文件系统。 + + 以/dev/nvme0n1盘,加载路径为/data1为例,参考命令如下。此步骤需根据实际环境情况进行操作。 + + ``` + umount /data1 + mkfs.xfs -b size=8192 /dev/nvme0n1 -f + mount /dev/nvme0n1 /data1 + ``` + +4. 执行[步骤一](#li13131455153313),确认blocksize是否已修改为8KB。 + diff --git "a/content/zh/docs/Developerguide/\346\246\202\350\277\260-20.md" "b/content/zh/docs/Developerguide/\346\246\202\350\277\260-20.md" new file mode 100644 index 0000000000000000000000000000000000000000..0aa48ba8fb8292680990782e7a6bb8560deef646 --- /dev/null +++ "b/content/zh/docs/Developerguide/\346\246\202\350\277\260-20.md" @@ -0,0 +1,4 @@ +# 概述 + +本章节主要介绍openGauss数据库内核基于鲲鹏服务器和openEuler操作系统,为了达到最佳TPMC性能所依赖的关键系统级调优。 + diff --git "a/content/zh/docs/Developerguide/\346\265\213\350\257\225TPCC\346\200\247\350\203\275.md" "b/content/zh/docs/Developerguide/\346\265\213\350\257\225TPCC\346\200\247\350\203\275.md" new file mode 100644 index 0000000000000000000000000000000000000000..b439f99f55172188c556a587fe7811641aed9ca9 --- /dev/null +++ "b/content/zh/docs/Developerguide/\346\265\213\350\257\225TPCC\346\200\247\350\203\275.md" @@ -0,0 +1,269 @@ +# 测试TPCC性能 + +1. 下载TPCC标准测试工具BenchmarkSQL5.0**。** +2. 将目录lib/postgresql下面的\*.jar 替换为openGauss适配的jar包。 + + ``` + $ pwd + /your path/benchmarksql-5.0/lib/postgres + $ ls + postgresql.jar #openGauss jdbc驱动。 + postgresql-9.3-1102.jdbc41.jar.bak # 自带jar备份。 + ``` + + openGauss适配的JDBC版本包获取路径为[openGauss-x.x.x-JDBC .tar.gz](https://opengauss.org/zh/download.html)。 + +3. 进入benchmarksql-5.0根目录, 输入ant命令进行编译。 + + ``` + $ cd /your path/benchmarksql-5.0/ + $ ant + ``` + + 编译成功后会生成build和dist两个目录。 + +4. 创建benchmarkSQL配置文件,使用benchmarkSQL前需要配置数据库相关的信息, 包括数据库账号、密码、端口、数据库名称.。 + + ``` + $ cd /your path/benchmarksql-5.0/run + $ cp props.pg props.opengauss.1000w + $ vim props.opengauss.1000w + ``` + + 从props.pg拷贝一份配置文件并按如下修改,斜体处请根据真实情况进行修改。 + + ``` + db=postgres + driver=org.postgresql.Driver + // 修改连接字符串, 包含IP、端口号、数据库,其中8.92.4.238为数据库服务端的千兆网卡IP。 + conn=jdbc:postgresql://8.92.4.238:21579/tpcc1000?prepareThreshold=1&batchMode=on&fetchsize=10 + // 设置数据库登录用户和密码。 + user=bot + password=Gaussdba@Mpp + + warehouses=1000 + loadWorkers=200 + + // 设置最大并发数量, 跟服务端最大work数对应。 + terminals=812 + //要为每个终端运行指定事务--runMins必须等于零 + runTxnsPerTerminal=0 + //要运行指定的分钟 - runTxnsPerTerminal必须等于零 + runMins=5 + //每分钟总事务数 + limitTxnsPerMin=0 + + + //在4.x兼容模式下运行时,设置为True。 + //设置为false以均匀使用整个配置的数据库。 + terminalWarehouseFixed=false + + //以下五个值相加之和为100。 + //45、43、4、4和4的默认百分比与TPC-C规范匹配。 + newOrderWeight=45 + paymentWeight=43 + orderStatusWeight=4 + deliveryWeight=4 + stockLevelWeight=4 + + //创建文件夹以收集详细结果数据。 + //通过注释取消此内容。 + resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS + osCollectorScript=./misc/os_collector_linux.py + osCollectorInterval=1 + //收集OS负载信息。 + osCollectorSSHAddr=osuer@10.44.133.78 + osCollectorDevices=net_enp3s0 blk_nvme0n1 blk_nvme1n1 blk_nvme2n1 blk_nvme3n1 + ``` + +5. TPCC导入数据前准备。 + + 使用如下文件替换benchmarkSQL中的文件,路径为benchmarksql-5.0/run/sql.common/。该文件主要增加了两个表空间和一些附加数据属性。 + + ``` + CREATE TABLESPACE example2 relative location 'tablespace2'; + CREATE TABLESPACE example3 relative location 'tablespace3'; + + create table bmsql_config ( + cfg_name varchar(30), + cfg_value varchar(50) + ); + + create table bmsql_warehouse ( + w_id integer not null, + w_ytd decimal(12,2), + w_tax decimal(4,4), + w_name varchar(10), + w_street_1 varchar(20), + w_street_2 varchar(20), + w_city varchar(20), + w_state char(2), + w_zip char(9) + ) WITH (FILLFACTOR=80); + + create table bmsql_district ( + d_w_id integer not null, + d_id integer not null, + d_ytd decimal(12,2), + d_tax decimal(4,4), + d_next_o_id integer, + d_name varchar(10), + d_street_1 varchar(20), + d_street_2 varchar(20), + d_city varchar(20), + d_state char(2), + d_zip char(9) + ) WITH (FILLFACTOR=80); + + create table bmsql_customer ( + c_w_id integer not null, + c_d_id integer not null, + c_id integer not null, + c_discount decimal(4,4), + c_credit char(2), + c_last varchar(16), + c_first varchar(16), + c_credit_lim decimal(12,2), + c_balance decimal(12,2), + c_ytd_payment decimal(12,2), + c_payment_cnt integer, + c_delivery_cnt integer, + c_street_1 varchar(20), + c_street_2 varchar(20), + c_city varchar(20), + c_state char(2), + c_zip char(9), + c_phone char(16), + c_since timestamp, + c_middle char(2), + c_data varchar(500) + ) WITH (FILLFACTOR=80) tablespace example2; + + create sequence bmsql_hist_id_seq; + + create table bmsql_history ( + hist_id integer, + h_c_id integer, + h_c_d_id integer, + h_c_w_id integer, + h_d_id integer, + h_w_id integer, + h_date timestamp, + h_amount decimal(6,2), + h_data varchar(24) + ) WITH (FILLFACTOR=80); + + create table bmsql_new_order ( + no_w_id integer not null, + no_d_id integer not null, + no_o_id integer not null + ) WITH (FILLFACTOR=80); + + create table bmsql_oorder ( + o_w_id integer not null, + o_d_id integer not null, + o_id integer not null, + o_c_id integer, + o_carrier_id integer, + o_ol_cnt integer, + o_all_local integer, + o_entry_d timestamp + ) WITH (FILLFACTOR=80); + + create table bmsql_order_line ( + ol_w_id integer not null, + ol_d_id integer not null, + ol_o_id integer not null, + ol_number integer not null, + ol_i_id integer not null, + ol_delivery_d timestamp, + ol_amount decimal(6,2), + ol_supply_w_id integer, + ol_quantity integer, + ol_dist_info char(24) + ) WITH (FILLFACTOR=80); + + create table bmsql_item ( + i_id integer not null, + i_name varchar(24), + i_price decimal(5,2), + i_data varchar(50), + i_im_id integer + ); + + create table bmsql_stock ( + s_w_id integer not null, + s_i_id integer not null, + s_quantity integer, + s_ytd integer, + s_order_cnt integer, + s_remote_cnt integer, + s_data varchar(50), + s_dist_01 char(24), + s_dist_02 char(24), + s_dist_03 char(24), + s_dist_04 char(24), + s_dist_05 char(24), + s_dist_06 char(24), + s_dist_07 char(24), + s_dist_08 char(24), + s_dist_09 char(24), + s_dist_10 char(24) + ) WITH (FILLFACTOR=80) tablespace example3; + ``` + +6. 导入数据。 + 1. 创建数据库用户。 + + ``` + create user bot identified by 'Gaussdba@Mpp' profile default; + alter user bot sysadmin; + create database tpcc1000 encoding 'UTF8' template=template0 owner tpcc5q; + ``` + + 2. 执行如下命令导入数据。 + + ``` + ./runDatabaseBuild.sh props.opengauss.1000w + ``` + +7. 备份数据。 + + 为了方便多次测试, 减少导入数据的时间,可以通过停止数据库,将整个数据目录执行一次拷贝对数据库进行备份。 + +8. 对数据进行分盘。 + + 在性能测试过程中,为了增加IO的吞吐量,需要将数据分散到不同的存储介质上。由于机器上有4块NVME盘,可以将数据分散到不同的盘上。 将pg\_xlog、tablespace2、tablespace3这三个目录放置在其他3个NVME盘上,并在原有的位置给出指向真实位置的软连接。pg\_xlog位于数据库目录下,tablespace2、tablespace3分别位于数据库目录pg\_location下。对tablespace2分盘的命令如下: + + ``` + mv $DATA_DIR/pg_location/tablespace2 $TABSPACE2_DIR/tablespace2 + cd $DATA_DIR/pg_location/ + ln -svf $TABSPACE2_DIR/tablespace2 ./ + ``` + + 创建完成后的效果如下图: + +  + +  + +9. 运行TPCC程序。 + + ``` + numactl –C 0-19,32-51,64-83,96-115 ./runBenchmark.sh props.opengauss.1000w + ``` + + 运行后的结果如下图,tpmC部分即为测试结果。 + +  + +10. 验证数据测试过程正确性。 + + 使用htop监控数据库服务端和tpcc客户端CPU利用情况,最佳性能测试情况下,各个业务CPU的占用率都非常高(\> 90%)。如果有CPU占用率没有达标,可能是绑核方式不对或其他问题,需要定位找到根因进行调整。 + + 下图是最佳性能测试情况下所有CPU的使用情况,其中黄线框中的是处理网络中断的CPU。 + +  + +11. 如果为了避免数据的干扰,需要进行重新测试,可以通过[步骤7](#li11139125793619)备份的数据通过拷贝的方式恢复数据。重复[步骤8](#li1840654753618)\~[步骤10](#li202511145123814)可以重新进行测试。 + diff --git "a/content/zh/docs/Developerguide/\347\241\254\344\273\266\350\246\201\346\261\202.md" "b/content/zh/docs/Developerguide/\347\241\254\344\273\266\350\246\201\346\261\202.md" new file mode 100644 index 0000000000000000000000000000000000000000..a85c59905df9ac14a1fcc6bde8bce883b2028f65 --- /dev/null +++ "b/content/zh/docs/Developerguide/\347\241\254\344\273\266\350\246\201\346\261\202.md" @@ -0,0 +1,9 @@ +# 硬件要求 + +- 服务器数量:2台鲲鹏920服务器(1台用于数据库服务器,1台用于TPCC客户端)。 +- 服务器硬件规格: + - Memory:大于512GB。 + - Free Disk:4块NVME硬盘,每块容量大于1TB。 + - 网卡:Hi1822千兆网卡,光纤互连。 + + diff --git "a/content/zh/docs/Developerguide/\347\275\221\345\215\241\345\233\272\344\273\266\347\241\256\350\256\244\344\270\216\346\233\264\346\226\260.md" "b/content/zh/docs/Developerguide/\347\275\221\345\215\241\345\233\272\344\273\266\347\241\256\350\256\244\344\270\216\346\233\264\346\226\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..1ffd70990df3e5b19697b8864b4b9097e373ab79 --- /dev/null +++ "b/content/zh/docs/Developerguide/\347\275\221\345\215\241\345\233\272\344\273\266\347\241\256\350\256\244\344\270\216\346\233\264\346\226\260.md" @@ -0,0 +1,50 @@ +# 网卡固件确认与更新 + +1. 执行命令**ethtool -i enp3s0**确认当前环境的网卡固件版本是否为2.4.1.0,如果不是2.4.1.0,建议更换为2.4.1.0,以获得更佳性能。 + + ``` + # ethtool -i enp3s0 + driver: hinic + version: 2.3.2.11 + firmware-version: 2.4.1.0 + expansion-rom-version: + bus-info: 0000:03:00.0 + ``` + +2. **更新网卡固件。** + 1. 在..\\firmware\\update\_bin路径下,获取cfg\_data\_nic\_prd\_1h\_4x25G.bin文件。 + 2. 使用root用户执行如下命令更新网卡固件。 + + ``` + hinicadm updatefw -i <物理网卡设备名> -f <固件文件路径> + ``` + + 涉及的参数说明如下: + + - “物理网卡设备名”为网卡在系统中的名称,例如“hinic0”表示第一张网卡,“hinic1”表示第二张网卡,查找方法参见前文[网卡多中断队列设置](网卡多中断队列设置.md)。 + - “固件文件路径”为cfg\_data\_nic\_prd\_1h\_4x25G.bin文件的路径。 + + 例如: + + ``` + # + Please do not remove driver or network device + Loading... + [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] [100%] [\] + Loading firmware image succeed. + Please reboot OS to take firmware effect. + ``` + + 3. 重启服务器,再确认网卡固件版本成功更新为2.4.1.0。 + + ``` + # ethtool -i enp3s0 + driver: hinic + version: 2.3.2.11 + firmware-version: 2.4.1.0 + expansion-rom-version: + bus-info: 0000:03:00.0 + ``` + + + diff --git "a/content/zh/docs/Developerguide/\347\275\221\345\215\241\345\244\232\344\270\255\346\226\255\351\230\237\345\210\227\350\256\276\347\275\256.md" "b/content/zh/docs/Developerguide/\347\275\221\345\215\241\345\244\232\344\270\255\346\226\255\351\230\237\345\210\227\350\256\276\347\275\256.md" new file mode 100644 index 0000000000000000000000000000000000000000..9f6966e90384e46fe6ab893fc46ecdc7afc2a9ad --- /dev/null +++ "b/content/zh/docs/Developerguide/\347\275\221\345\215\241\345\244\232\344\270\255\346\226\255\351\230\237\345\210\227\350\256\276\347\275\256.md" @@ -0,0 +1,52 @@ +# 网卡多中断队列设置 + +针对泰山单核能力不足,核数又较多的情况,产品需要在服务器端,客户端均使用网卡多中断队列(默认16队列)的规格,网卡至少为千兆网卡,客户端与服务端光纤互连。 + +当前推荐的配置为: + +- 服务器端网卡配置16中断队列。 +- 客户端网卡配置48中断队列。 + +## 操作步骤 + +1. 下载[IN500\_solution\_5.1.0.SPC401.zip](https://support.huawei.com/enterprise/zh/software/250968786-ESW2000173161)。 +2. 解压IN500\_solution\_5.1.0.SPC401.zip,进入tools\\linux\_arm目录。 +3. 解压nic - ZIP ,在root用户下安装hinicadm。 + +  + +4. 确定当前连接的物理端口对应哪个网卡,不同硬件平台的网口和网卡名有差别。以当前举例的服务器为例,当前使用enp3s0的小网网口,属于hinic0网卡。 + +  + +  + +5. 进入config目录, 利用配置工具hinicconfig配置中断队列FW配置文件。根据实际需要进行修改。 + - 64队列配置文件:std\_sh\_4x25ge\_dpdk\_cfg\_template0.ini; + - 16队列配置文件:std\_sh\_4x25ge\_nic\_cfg\_template0.ini; + + 1. 修改系统支持的最大中断队列数。 + 1. 对hinic0卡配置为不同队列数(默认16队列,可以按需要调整) + + ``` + ./hinicconfig hinic0 -f std_sh_4x25ge_dpdk_cfg_template0.ini + ``` + + 2. 执行命令**reboot**重启操作系统使生效。 + 3. 执行命令ethtool -l enp3s0查看是否修改成功,比如下图表示修改为64。 + +  + + 2. 修改当前使用的队列数。 + + 执行如下命令,将网卡的中断队列调整为48个。 + + ``` + ethtool -L enp3s0 combined 48 + ``` + + > **说明:** + >不同平台,不同应用的优化值可能不同,当前128核的平台,服务器端调优值为16,客户端调优值为48。 + + + diff --git "a/content/zh/docs/Developerguide/\347\275\221\347\273\234\351\205\215\347\275\256.md" "b/content/zh/docs/Developerguide/\347\275\221\347\273\234\351\205\215\347\275\256.md" new file mode 100644 index 0000000000000000000000000000000000000000..343a985eefe2984a8afd5bc61c966e18b6b6d0a1 --- /dev/null +++ "b/content/zh/docs/Developerguide/\347\275\221\347\273\234\351\205\215\347\275\256.md" @@ -0,0 +1,9 @@ +# 网络配置 + +- **[网卡多中断队列设置](网卡多中断队列设置.md)** + +- **[中断调优](中断调优.md)** + +- **[网卡固件确认与更新](网卡固件确认与更新.md)** + + diff --git "a/content/zh/docs/Developerguide/\350\275\257\344\273\266\344\276\235\350\265\226.md" "b/content/zh/docs/Developerguide/\350\275\257\344\273\266\344\276\235\350\265\226.md" new file mode 100644 index 0000000000000000000000000000000000000000..df951cdc7f232a5127e9dd2bf4f8f4b468726960 --- /dev/null +++ "b/content/zh/docs/Developerguide/\350\275\257\344\273\266\344\276\235\350\265\226.md" @@ -0,0 +1,34 @@ +# 软件依赖 + +**表 1** 软件依赖要求 + + +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +