---
title: Greenplum数据库性能调优-官方技术文章-鲲鹏社区
description: Greenplum6在鲲鹏920服务器上对其进行gpcheckperf测试并进行性能调优
keywords: Greenplum,数据库性能调,官方技术文章,鲲鹏社区,测试内容,性能瓶颈分析,再次执行测试脚本,观察使用
url: https://www.hikunpeng.com/developer/techArticles/20250417-1?envFlag=1
section: (其他)
---

# Greenplum数据库性能调优-官方技术文章-鲲鹏社区

URL: https://www.hikunpeng.com/developer/techArticles/20250417-1?envFlag=1
描述: Greenplum6在鲲鹏920服务器上对其进行gpcheckperf测试并进行性能调优
关键词: Greenplum,数据库性能调,官方技术文章,鲲鹏社区,测试内容,性能瓶颈分析,再次执行测试脚本,观察使用

官方技术文章 [了解详情](https://www.hikunpeng.com/zh/developer/techArticles)

Greenplum数据库性能调优

Greenplum数据库性能调优

Greenplum

发表于 2025/04/17

0

作者|方原

### 测试内容

gpcheckperf 是 Greenplum 数据库提供的一个性能测试工具，用于评估 Greenplum 数据库集群的性能。它执行一系列的性能测试，包括 CPU、内存、磁盘 I/O 等方面的测试，并生成详细的报告，帮助用户了解系统的性能状况和可能的瓶颈。通过分析 gpcheckperf 的报告，用户可以调整配置、优化性能，以提高 Greenplum 数据库集群的性能表现。

执行 gpcheckperf -f
/data1/gpdb/hostfile -d 300s /data1/gpdb/master -B 16k -r ds -S 5GB –duration 测试脚本

根据官网介绍gpcheckperf命令测试的是主机的硬件性能，非数据库性能，主要是磁盘测试，从主要优化方向为磁盘IO。

性能目标： 性能达到850M-1600M

调优前数据： 性能为616M，距离客户要求的850M-1600M的要求有较大的差距

### 性能瓶颈分析

### 再次执行测试脚本，观察使用iostat观察磁盘性能,

发现数据盘的使用率100%，并且写入延迟搞到10ms。可以发现io确为性能瓶颈

应用信息

| 软件名称 | 版本 | 说明 |
| --- | --- | ---|
| Greenplum | 6.12.1 | Greenplum数据库 |

## 调优实施

### 1. 搭建raid盘提高磁盘吞吐量

搭建合适的raid可以提高磁盘性能，我们尝试了多种模式进行测试，数据如下：

| raid类型 | 双系统盘raid1 | 单数据盘raid0 | 三数据盘raid0 | 四数据盘raid0 | 五数据盘raid10 |
| --- | --- | --- | --- | --- | ---|
| 测试结果 | 600M | 200M | 666M | 853M | 1009M |
| 磁盘利用率 | 100% | 100% | 100% | 100% | 100% |

可以看到，搭建raid对于性能的提升是巨大的。与客户沟通后，采用全部12块数据盘搭建raid10作为最终搭建raid的手段。

### 2.硬盘OS参数调优

按照分析可以看见，磁盘利用率都为100%，说明性能瓶颈在磁盘。所以下面在OS层面对磁盘的各参数进行调优，目的是提高硬盘读写性能。

#### 1)  硬盘内存缓存参数

vm.dirty_ratio表示脏页所占的百分比（相对于所有可用内存，即空闲内存页+可回收内存页）达到dirty_ratio时，write调用会唤醒内核的flusher线程开始回写脏页数据，直到脏页比例低于此值，write调用此时会阻塞，硬盘IO会暂停，一般默认20%。

当dirty_ratio过低时，会发生频繁的落盘操作，影响磁盘的IO性能，此时可以适当提高dirty_ratio的值，在本次调优中，经过多次测试，当dirty_ratio在60%~70%之间时，会有较高的IO性能，但过高的dirty_ratio会有丢失数据的风险，所以最终选择dirty_ratio为60%。

修改的步骤为：sysctl -w vm.dirty_background_ratio=60

#### 2)  硬盘调度策略调整

硬盘的调度策略是指操作系统为了高效地管理磁盘I/O操作而采用的一系列方法和技术。这些策略决定了操作系统如何响应多个磁盘请求，以最小化寻道时间、旋转延迟和数据传输时间，从而提高磁盘访问效率。

在本次调优的服务器OS中，硬盘的调度策略有my-deadline，kyber，bfq和none四种，经过调优测试对比，当硬盘的调度策略为bfq时，系统有较高的IO性能。

修改步骤为：echo bfq > /sys/block/sdd/queue/scheduler

#### 3)  IO调度队列调整

nr_requests表示请求的IO调度队列大小，默认128。nr_requests参数，可以提高系统的吞吐量，似乎越大越好，但是该请求队列的也不能过大，因为这样会消耗大量的内存空间。

所以，在本次优化中，适当提高nr_requests可以提高系统的吞吐量，但是不宜设置的过高。经调优测试，当nr_requests调整为原来的两倍时，系统可以获得较高的IO性能。

修改步骤为：echo 512 >/sys/block/sdd/queue/nr_requests

调优结果：

| 调整dirty_ratio=60 | 调整scheduler=bfq | 调整nr_requests=512 |
| --- | --- | ---|
| 1264M | 1302M | 1442M |
| 16%（对比1089M） | 3%（对比1264M） | 11%（对比1302M） |
