首页 > 数据库 > > 计算资源管理-IO资源管理
系统支持对IO资源的使用上限进行限制。IO资源上限限制类型如表1所示。
IO资源上限限制方式 | 说明 |
|---|---|
资源池级别IO资源上限限制 | 通过设置资源池的参数“io_limits”,可以对用户级别的IO资源上限进行限制。 |
作业级别IO资源上限限制 | 通过设置GUC参数“io_limits”,可以对会话级别的IO资源上限进行限制。 |
IO资源上限限制场景如表2所示。
IO读写模式 | 说明 |
|---|---|
写模式 | 对“INSERT INTO SELECT”,“COPY FROM”,“CREATE TABLE AS” 语句进行控制。 |
读模式 | 需要根据优化器的评估计算出要扫描的数据量,通常单DN数据量大约超过500MB时就会触发IO控制。 |
读写混合模式 | “UPDATE”、“DELETE”、“VACUUM FULL”、“CREATE INDEX”、“CLUSTER TABLE USING INDEX”、“ANALYZE”、“MERGE INTO”作为读写混合的场景,也会触发IO的控制。 |
说明:对于行存,由于缓冲区策略,读写IO请求并不在真正读写磁盘过程中控制,而是在读写缓冲区过程中控制。
已熟悉gs_guc和ALTER RESOURCE POOL的使用。
用户级IO资源上限限制
ALTER RESOURCE POOL resource_pool_a1 WITH (IO_LIMITS=100);
ALTER RESOURCE POOL
说明:会话级IO资源上限限制
设置GUC参数io_limits的取值为100。
SET io_limits TO 100;查看IO资源的配置信息
select * from pg_resource_pool;respool_name | mem_percent | cpu_affinity | control_group | active_statements | max_dop | memory_limit | parentid | io_limits | io_priority
------------------+-------------+--------------+---------------------+-------------------+---------+--------------+----------+-----------+-------------
resource_pool_a1 | 20 | -1 | class_a:workload_a1 | 10 | 1 | 8GB | | 100 | None
(6 rows)
show io_limits;io_limits
-------------
100
(1 row)
select * from pg_session_iostat;pg_user_iostat提供user级IO资源监控
select * from pg_user_iostat('username');
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3156381/ ,如需转载,请注明出处,否则将追究法律责任。