数据仓库服务 GAUSSDB(DWS)-GaussDB(DWS) 3.0 存算分离使用建议及性能优化:关于磁盘缓存
关于磁盘缓存
DWS会把经常访问的数据缓存到EVS本地磁盘,以减少OBS直读次数,加速查询性能。磁盘缓存只在DN计算节点上存在,协调节点CN上不存在。
缓存大小
集群默认的缓存大小(disk_cache_max_size)配置为:EVS容量的1/3。
EVS容量默认划分是:1/3 * 2(副本)存储本地持久化的数据(如:列存索引,行存表,本地列存表),另外1/3给缓存用。DWS的索引不同于Redshift,Redshift索引只是一个优化器提示,没有实体的索引数据,DWS的索引类似Oracle,会实际存储索引数据。
如果列存表没有创建索引,则可适当调大缓存的大小,即通过DWS管理控制台调大disk_cache_max_size。
缓存状态
用户查询数据时,会优先到Disk Cache中查看数据是否已存在于本地磁盘,如果不存在则再去OBS读取数据,同时将数据缓存到本地磁盘,下次再读取这段数据时,即可在本地磁盘中读取到。使用Disk Cache可显著提升OBS数据的查询速度。
Disk Cache会默认使用主备两块硬盘作为缓存介质,通过查询以下参数查看相关信息:
- 通过disk_cache_base_paths参数查看和增减缓存硬盘路径。
- 通过disk_cache_max_size参数来查看及调节Disk Cache的大小。
通过查询视图pgxc_disk_cache_all_stats可以查看当前缓存的命中率以及各个DN磁盘的使用大小情况:
缓存双写
开启缓存双写可以提升首次查询数据的性能,即用户在写数据到远端OBS的同时,将数据也写到本地Disk Cache上。当第一次读取数据时,可显著提升读取效率。用户可通过disk_cache_dual_write_option来设置是否开启缓存双写,参数包含三个设置选项:
- none:表示不开启缓存双写。
- hstore_only(默认值):表示只对hstore opt表,在delta merge时才开启缓存双写。
- all:表示对普通v3表和hstore opt表都开启缓存双写。
缓存清理
通过函数pgxc_clear_disk_cache()可以将所有的Disk Cache清空。
集群空间不足与磁盘缓存空间调整
当集群出现资源容量不足时,对于Disk Cache中已使用了较大空间的集群来说,可通过缩小其空间来释放集群的磁盘空间,从而缓解资源不足状态;
通过调整disk_cache_max_size参数缩小Disk Cache的实际使用空间缓解集群空间不足:
具体示例如下,假设磁盘总容量为1000GB, disk_cache_max_size大小为500GB,通过视图pgxc_disk_cache_all_stats查询到实际占用450GB; 磁盘空间的总占用大小为900GB触发了资源剩余容量不足ThresholdReadRisk问题,在没有可清理的列存2.0表和索引资源的情况下,可将disk_cache_max_size的大小调整为300GB或者更小的数值来缓解空间不足问题,缺点是缩小Disk Cache可用规模后可能带来查询性能下降。
磁盘使用率告警判断如下:
- 容量预警:磁盘空间占用或者文件描述符使用超过ThresholdReadOnly(默认80%);日志中会出现“Disk usage on the node %u has reached the risky threshold 80%”;
- 容量不足:磁盘空间占用或者文件描述符使用超过ThresholdReadRisk(默认90%),触发集群只读;日志中会出现"Disk usage on the node %u has reached the read-only threshold 90%";
- 容量严重不足:磁盘空间占用或者文件描述符使用超过ThresholdReadDanger(默认95%),会终止DN备实例和DN从备实例,重启DN主实例;日志中会出现"Disk usage on the node %u has reached the dangerous threshold 95%";
- 数据仓库服务GaussDB(DWS)_SQL on Anywhere
- DWS资源管理_GaussDB(DWS)资源管理作用_DWS资源管控
- DWS安全_数据仓库服务安全_DWS数据安全管理_DWS安全保障_DWS安全策略
- 调用GaussDB(DWS) API接口_数据仓库服务调用API_如何调用API_在DWS中调用API
- MapReduce服务_什么是存算分离_如何配置MRS集群存算分离
- GaussDB存算分离_华为云hcso是什么意思_高斯数据库存算分离_华为云
- DWS产品介绍_DWS产品优势_DWS功能_DWS使用场景_DWS是什么
- 数据库监控DMS_数据库智能运维_了解Auto Pilot_DMS_DWS节点监控
- GaussDB(DWS)服务_什么是IoT数仓_如何使用IoT数仓
- GAUSS(DWS)工具_gsql工具_DataStudio工具_DSC工具