402 Star 1.4K Fork 1.5K

GVPopenGauss / openGauss-server

 / 详情

【资源池化】数据库跑tpcc业务,PEDO GAP过大【+】

已验收
缺陷
创建于  
2023-04-21 18:05

【标题描述】: 数据库跑tpcc业务,PEDO GAP过大
【测试类型:性能】【测试版本:5.0.0】 问题描述

【操作系统和硬件信息】(查询命令: cat /etc/system-release, uname -a):
输入图片说明

【测试环境】(单机/1主x备x级联备):
一主一备

【被测功能】:
资源池化

【测试类型】:
性能

【数据库版本】(查询命令: gaussdb -V):
gaussdb (openGauss 5.0.0 build cec10a6b) compiled at 2023-03-22 03:07:59 commit 0 last mr

【预置条件】:
tpcc配置如下:
输入图片说明

数据库参数配置:

gs_guc set -Z datanode -N all -I all -c "ss_enable_dms = on"
gs_guc set -Z datanode -N all -I all -c "listen_addresses = '*'"
gs_guc set -Z datanode -N all -I all -c "port = 3500"
gs_guc set -Z datanode -N all -I all -c "max_connections = 4096"
gs_guc set -Z datanode -N all -I all -c "remote_read_mode = non_authentication"
gs_guc set -Z datanode -N all -I all -c "allow_concurrent_tuple_update = true"
gs_guc set -Z datanode -N all -I all -c "audit_enabled = off"
gs_guc set -Z datanode -N all -I all -c "cstore_buffers = 16MB"
gs_guc set -Z datanode -N all -I all -c "enable_alarm = off"
gs_guc set -Z datanode -N all -I all -c "enable_codegen = false"
gs_guc set -Z datanode -N all -I all -c "enable_data_replicate = off"
gs_guc set -Z datanode -N all -I all -c "full_page_writes = off"
gs_guc set -Z datanode -N all -I all -c "max_files_per_process = 100000"
gs_guc set -Z datanode -N all -I all -c "max_prepared_transactions = 2048"
gs_guc set -Z datanode -N all -I all -c "max_process_memory = 400GB"
gs_guc set -Z datanode -N all -I all -c "shared_buffers = 500GB"
gs_guc set -Z datanode -N all -I all -c "use_workload_manager = off"
gs_guc set -Z datanode -N all -I all -c "wal_buffers = 1GB"
gs_guc set -Z datanode -N all -I all -c "work_mem = 1MB"
gs_guc set -Z datanode -N all -I all -c "transaction_isolation = 'read committed'"
gs_guc set -Z datanode -N all -I all -c "default_transaction_isolation = 'read committed'"
gs_guc set -Z datanode -N all -I all -c "synchronous_commit = on"
gs_guc set -Z datanode -N all -I all -c "fsync = on"
gs_guc set -Z datanode -N all -I all -c "maintenance_work_mem = 2GB"
gs_guc set -Z datanode -N all -I all -c "vacuum_cost_limit = 10000"
gs_guc set -Z datanode -N all -I all -c "autovacuum = off"
gs_guc set -Z datanode -N all -I all -c "autovacuum_mode = vacuum"
gs_guc set -Z datanode -N all -I all -c "autovacuum_max_workers = 20"
gs_guc set -Z datanode -N all -I all -c "autovacuum_naptime = 5s"
gs_guc set -Z datanode -N all -I all -c "autovacuum_vacuum_cost_delay = 10"
gs_guc set -Z datanode -N all -I all -c "update_lockwait_timeout = 20min"
gs_guc set -Z datanode -N all -I all -c "enable_mergejoin = off"
gs_guc set -Z datanode -N all -I all -c "enable_nestloop = off"
gs_guc set -Z datanode -N all -I all -c "enable_hashjoin = off"
gs_guc set -Z datanode -N all -I all -c "enable_material = off"
gs_guc set -Z datanode -N all -I all -c "wal_log_hints = off"
gs_guc set -Z datanode -N all -I all -c "log_duration = off"
gs_guc set -Z datanode -N all -I all -c "checkpoint_timeout = 15min"
gs_guc set -Z datanode -N all -I all -c "autovacuum_vacuum_scale_factor = 0.1"
gs_guc set -Z datanode -N all -I all -c "autovacuum_analyze_scale_factor = 0.02"
gs_guc set -Z datanode -N all -I all -c "enable_save_datachanged_timestamp = false"
gs_guc set -Z datanode -N all -I all -c "enable_double_write = on"
gs_guc set -Z datanode -N all -I all -c "enable_incremental_checkpoint = on"
gs_guc set -Z datanode -N all -I all -c "enable_opfusion = on"
gs_guc set -Z datanode -N all -I all -c "advance_xlog_file_num = 100"
gs_guc set -Z datanode -N all -I all -c "track_activities = off"
gs_guc set -Z datanode -N all -I all -c "enable_instr_track_wait = off"
gs_guc set -Z datanode -N all -I all -c "enable_instr_rt_percentile = off"
gs_guc set -Z datanode -N all -I all -c "track_counts = on"
gs_guc set -Z datanode -N all -I all -c "track_sql_count = off"
gs_guc set -Z datanode -N all -I all -c "enable_instr_cpu_timer = off"
gs_guc set -Z datanode -N all -I all -c "plog_merge_age = 0"
gs_guc set -Z datanode -N all -I all -c "session_timeout = 0"
gs_guc set -Z datanode -N all -I all -c "enable_instance_metric_persistent = off"
gs_guc set -Z datanode -N all -I all -c "enable_logical_io_statistics = off"
gs_guc set -Z datanode -N all -I all -c "enable_page_lsn_check = off"
gs_guc set -Z datanode -N all -I all -c "enable_user_metric_persistent = off"
gs_guc set -Z datanode -N all -I all -c "enable_xlog_prune = off"
gs_guc set -Z datanode -N all -I all -c "enable_resource_track = off"
gs_guc set -Z datanode -N all -I all -c "instr_unique_sql_count=0"
gs_guc set -Z datanode -N all -I all -c "remote_read_mode=non_authentication"
gs_guc set -Z datanode -N all -I all -c "wal_level = archive"
gs_guc set -Z datanode -N all -I all -c "hot_standby = off"
gs_guc set -Z datanode -N all -I all -c "hot_standby_feedback = off"
gs_guc set -Z datanode -N all -I all -c "client_min_messages = FATAL"
gs_guc set -Z datanode -N all -I all -c "log_min_messages = FATAL"
gs_guc set -Z datanode -N all -I all -c "enable_asp = off"
gs_guc set -Z datanode -N all -I all -c "enable_bbox_dump = off"
gs_guc set -Z datanode -N all -I all -c "bgwriter_flush_after = 32"
gs_guc set -Z datanode -N all -I all -c "wal_keep_segments = 1025"
gs_guc set -Z datanode -N all -I all -c "enable_bitmapscan = off"
gs_guc set -Z datanode -N all -I all -c "enable_seqscan = off"
gs_guc set -Z datanode -N all -I all -c "enable_beta_opfusion=on"
gs_guc set -Z datanode -N all -I all -c "checkpoint_segments=8000"
gs_guc set -Z datanode -N all -I all -c "enable_stmt_track=false"
gs_guc set -Z datanode -N all -I all -c "bgwriter_delay = 5s"
gs_guc set -Z datanode -N all -I all -c "incremental_checkpoint_timeout = 1s"
gs_guc set -Z datanode -N all -I all -c "xloginsert_locks = 16"
gs_guc set -Z datanode -N all -I all -c "walwriter_cpu_bind =0"
gs_guc set -Z datanode -N all -I all -c "wal_file_init_num = 20"
gs_guc set -Z datanode -N all -I all -c "pagewriter_sleep = 1ms"
gs_guc set -Z datanode -N all -I all -c "walwriter_sleep_threshold = 50000"
gs_guc set -Z datanode -N all -I all -c "gs_clean_timeout = 0"
gs_guc set -Z datanode -N all -I all -c "undo_zone_count = 0"
gs_guc set -Z datanode -N all -I all -c "max_redo_log_size = 400GB"
gs_guc set -Z datanode -N all -I all -c "max_io_capacity = 1GB"
gs_guc set -Z datanode -N all -I all -c "local_syscache_threshold = 32MB"
gs_guc set -Z datanode -N all -I all -c "segment_buffers = 1GB"
gs_guc set -Z datanode -N all -I all -c "numa_distribute_mode = 'all'"
gs_guc set -Z datanode -N all -I all -c "enable_thread_pool = on"
gs_guc reload -Z coordinator -Z datanode -N all -I all -h "host all all 0.0.0.0/0 sha256"
gs_guc set -Z datanode -N all -I all -c "thread_pool_attr = '400,4,(cpubind:1-31,48-127)'"

gs_guc set -Z datanode -N all -I all -c "recovery_parse_workers = 4"
gs_guc set -Z datanode -N all -I all -c "recovery_redo_workers = 4"
gs_guc set -Z datanode -N all -I all -c "pagewriter_thread_num = 8"
gs_guc set -Z datanode -N all -I all -c "advance_xlog_file_num = 5"
gs_guc set -Z datanode -N all -I all -c "max_redo_log_size=400GB"
gs_guc set -Z datanode -N all -I all -c "max_io_capacity=1GB"
gs_guc set -Z datanode -N all -I all -c "segment_buffers=64MB"
gs_guc set -Z datanode -N all -I all -c "ss_enable_ondemand_recovery = on"

【操作步骤】(请填写详细的操作步骤):

  1. sh runDatabaseBuild.sh xxx
  2. ./runBenchmark.sh xxx
    3.观察PEDO GAP值变化

【预期输出】:
PEDO GAP在3G左右

【实际输出】:
PEDO GAP远大于3G
10分钟:
输入图片说明
20分钟
输入图片说明
30分钟
输入图片说明

【原因分析】:

  1. 从2023-03-22的每日构建包开始,刷脏页性能产生了劣化

【日志信息】(请附上日志文件、截图、coredump信息):

【测试代码】:

评论 (3)

zhaobingyu 创建了缺陷

Hey @zhaobingyu, Welcome to openGauss Community.
All of the projects in openGauss Community are maintained by @opengauss-bot.
That means the developers can comment below every pull request or issue to trigger Bot Commands.
Please follow instructions at Here to find the details.

Hi @zhaobingyu, please use the command /sig xxx to add a SIG label to this issue.
For example: /sig sqlengine or /sig storageengine or /sig om or /sig ai and so on.
You can find more SIG labels from Here.
If you have no idea about that, please contact with @xiangxinyong , @zhangxubo .

zhaobingyu 负责人设置为刘博文
zhaobingyu 优先级设置为主要
zhaobingyu 优先级主要 修改为不指定
zhaobingyu 优先级设置为次要
Will 添加协作者陈栋
陈栋 任务状态待办的 修改为已完成
陈栋 修改了标题
陈栋 任务状态已完成 修改为测试中
zhaobingyu 任务状态测试中 修改为已验收

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(4)
5622128 opengauss bot 1581905080
C++
1
https://gitee.com/opengauss/openGauss-server.git
git@gitee.com:opengauss/openGauss-server.git
opengauss
openGauss-server
openGauss-server

搜索帮助