【 使用环境 】CentOS Stream release 8/Linux 5.18.19
【 OB or 其他组件 】OceanBase OBclient
【 使用版本 】OceanBase 4.2.0
【问题描述】本地对OB进行TPC-H性能测试,数据大小100G,数据表的压缩算法采用zstd,租户及其资源如下,memory_size ‘50g’的原因是希望它频繁的解压缩,突出压缩算法的热点,但测试结果不如预期。
【复现路径】
【问题现象及影响】
资源配置:
create resource unit tpch_unit max_cpu 16, memory_size ‘50g’,MIN_CPU 16;
create resource pool tpch_pool unit = ‘tpch_unit’, unit_num = 1, zone_list=(‘zone1’);
create tenant tpch_mysql resource_pool_list=(‘tpch_pool’), zone_list(‘zone1’), primary_zone=RANDOM, locality=‘F@zone1’ set variables ob_compatibility_mode=‘mysql’, ob_tcp_invited_nodes=’%’;
然后通过top -H -p XXX 分析原因,发现T1002_DiskCB线程CPU占比很高,说明它在不停的从磁盘读取数据,而后续处理流程需要等它读取完数据,才能继续运行,所以T1002_DiskCB线程就成为性能瓶颈。我想通过增大T1002_DiskCB线程的并发数,加快读取速度,让压缩算法成为性能瓶颈,而不是阻塞在用于磁盘I/O的线程数上,我查了下参考文档,disk_io_thread_count这个参数可以影响到用于磁盘I/O的线程数,我把这个变量从默认值8调整到32后,重启observer,发现T1002_DiskCB线程数并没有增多,还是8个,所以想请问大家T1002_DiskCB并发线程数只能为8,还是可以通过其他参数调整,谢谢。
【附件】