云服务器内容精选

  • 响应示例 状态码: 200 OK { "metric_statistics" : [ { "statistic" : "12345", "unit" : "bytes/second", "metric_name" : "read_bandwidth", "resource_id" : "123456789", "device_id" : "123456789" } ] }
  • 请求示例 批量下载监控数据,设置起止时间,实时数据,统计方式为max, 指定资源id列表 https://eihealth.cn-north-4.myhuaweicloud.com/v1/{project_id}/metric-data/batch-stat-metric-data { "from_time" : 1234567891011, "to_time" : 1234567891012, "period" : "real_time", "method" : "max", "resource_ids" : [ 123456789 ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限,获取Token接口响应消息头中X-Subject-Token的值即为Token。 表3 请求Body参数 参数 是否必选 参数类型 描述 from_time 否 Long 查询监控数据起始时间,UNIX时间戳,单位毫秒,不填时默认为当前时间 to_time 否 Long 查询数据截止时间,UNIX时间戳,单位毫秒,不填时默认为当前时间 period 否 String 监控数据周期。枚举值,取值范围:real_time(实时数据)、five_minutes(5分钟粒度)、fifteen_to_twenty_minutes(15-20分钟粒度)、one_hour(1小时粒度),不填时默认为real_time 枚举值: real_time five_minutes fifteen_to_twenty_minutes one_hour method 否 String 统计方法。枚举值,取值范围:max(最大值)、min(最小值)、average(平均值),不填时默认为max 枚举值: max min average resource_ids 是 Array of strings 查询的监控资源对象id集合 最小长度:1 最大长度:128 数组长度:1 - 50
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 metric_statistics Array of ResourceStatDataRsp objects 资源统计数据列表 表5 ResourceStatDataRsp 参数 参数类型 描述 statistic String 统计值 unit String 数据单位 metric_name String 监控指标名称 resource_id String 监控资源id device_id String 显卡id
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 data_points Array of DataPointDto objects 监控数据列表 metric_name String 监控指标名称 resource_id String 监控资源id 表5 DataPointDto 参数 参数类型 描述 timestamp Long 时间戳 unit String 数据单位 value Number 统计结果
  • URI GET /v1/{project_id}/metric-data 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 华为云项目ID,您可以从获取项目ID中获取。 最小长度:1 最大长度:128 表2 Query参数 参数 是否必选 参数类型 描述 from_time 否 Long 查询监控数据起始时间,UNIX时间戳,单位毫秒,不填时默认为当前时间 to_time 否 Long 查询数据截止时间,UNIX时间戳,单位毫秒,不填时默认为当前时间 period 否 String 监控数据周期。枚举值,取值范围:real_time(实时数据)、five_minutes(5分钟粒度)、fifteen_to_twenty_minutes(15-20分钟粒度)、one_hour(1小时粒度),不填时默认为real_time 缺省值:real_time method 否 String 统计方法。枚举值,取值范围:max(最大值)、min(最小值)、average(平均值),不填时默认为max 缺省值:max metric_name 是 String 查询的监控指标名称 resource_id 否 String 查询的监控资源对象id,当查询存储资源和计算节点资源中的集群监控数据时,不需要填写资源id 最小长度:1 最大长度:128 device_id 否 String 显卡id,仅查询裸金属节点的gpu监控时,需要指定 最小长度:1 最大长度:128
  • 内存监控 GaussDB(DWS)提供了监控整个集群内存使用状态的视图: 查询pgxc_total_memory_detail视图,必须具有sysadmin权限。 1 SELECT * FROM pgxc_total_memory_detail; 如果查询该视图时出现以下错误,请开启内存管理功能。 1 2 3 SELECT * FROM pgxc_total_memory_detail; ERROR: unsupported view for memory protection feature is disabled. CONTEXT: PL/pgSQL function pgxc_total_memory_detail() line 12 at FOR over EXECUTE statement 用户可通过GaussDB(DWS) 控制台设置enable_memory_limit和max_process_memory参数来开启内存管理功能,方法如下: 登录GaussDB(DWS) 管理控制台。 在左侧导航栏中,单击“集群管理”。 在集群列表中找到所需要的集群,单击集群名称,进入集群“基本信息”页面。 单击“参数修改”页签,修改参数“enable_memory_limit”的值为on,然后单击“保存”。 修改参数“max_process_memory”的值为合适的值,修改建议请参见max_process_memory,然后单击“保存”。 在“修改预览”窗口,确认修改无误后,单击“保存”。修改完成后需要重启集群,参数才会生效。
  • 注意事项 用户监控可以同时监控快慢车道(快车道管控简单作业,慢车道管控复杂作业)所有作业的CPU、IO和内存使用情况,不再受限于仅监控慢车道作业。 当前快车道作业内存和CPU不受控,在快车道运行作业占用资源较多情况下,可能出现已用资源大于资源限制的情况。 DN监控视图中,IO、内存和CPU显示的是本DN上资源池资源使用和资源限制信息。 CN监控视图中,IO、内存和CPU显示的是集群内所有DN资源池资源使用和资源限制的累积和。 DN每隔5s更新一次监控信息,CN每隔5s从DN收集一次用户监控信息,因为各实例单独更新/收集用户监控信息,因此各实例监控信息更新时间可能不一致。 辅助线程中每隔30s自动调用持久化函数,持久化用户监控数据,正常情况下不需要用户单独调用持久化函数持久化用户监控数据。 当用户数量较多,集群规模较大时,查询此类实时视图,因CN/DN间实时通信开销,会有一定的网络延时。 初始管理用户不进行资源监控。
  • 操作步骤 查询所有用户的资源限额和资源实时使用情况。 1 SELECT * FROM PG_TOTAL_USER_RESOURCE_INFO; 得到的结果视图如下: username | used_memory | total_memory | used_cpu | total_cpu | used_space | total_space | used_temp_space | total_temp_space | used_spill_space | total_spill_space | read_kbytes | write_kbytes | read_counts | write_counts | read_speed | write_speed | send_speed | recv_speed -----------------------+-------------+--------------+----------+-----------+------------+-------------+-----------------+------------------+------------------+-------------------+-------------+--------------+-------------+--------------+------------+-------------+------------+------------ perfadm | 0 | 0 | 0 | 0 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 usern | 0 | 17250 | 0 | 48 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 (2 rows) 其中,IO资源监控字段(read_kbytes、write_kbytes、read_counts、write_counts、read_speed和write_speed)需要在GUC参数enable_user_metric_persistent开启时才有监控数据。 所查各字段说明详见PG_TOTAL_USER_RESOURCE_INFO 。 查询具体某个用户的资源限额和资源实时使用情况。 1 SELECT * FROM GS_WLM_USER_RESOURCE_INFO('username'); 查询结果如下: userid | used_memory | total_memory | used_cpu | total_cpu | used_space | total_space | used_temp_space | total_temp_space | used_spill_space | total_spill_space | read_kbytes | write_kbytes | read_counts | write_counts | read_speed | write_speed | send_speed | recv_speed --------+-------------+--------------+----------+-----------+------------+-------------+-----------------+------------------+------------------+-------------------+-------------+--------------+-------------+--------------+------------+-------------+------------+------------ 16407 | 18 | 1655 | 6 | 19 | 13787176 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 (1 row) 查询所有用户的资源限额和资源历史使用情况。 1 SELECT * FROM GS_WLM_USER_RESOURCE_HISTORY; 查询结果如下: username | timestamp | used_memory | total_memory | used_cpu | total_cpu | used_space | total_space | used_temp_space | total_temp_space | used_spill_space | total_spill_space | read_kbytes | write_kbytes | read_counts | write_counts | read_speed | write_speed | send_speed | recv_speed -----------------------+-------------------------------+-------------+--------------+----------+-----------+------------+-------------+-----------------+------------------+------------------+-------------------+-------------+--------------+-------------+--------------+-------------+-------------+------------+------------ usern | 2020-01-08 22:56:06.456855+08 | 0 | 17250 | 0 | 48 | 0 | -1 | 0 | -1 | 88349078 | -1 | 45680 | 34 | 5710 | 8 | 320 | 0 | 0 | 0 userg | 2020-01-08 22:56:06.458659+08 | 0 | 15525 | 33.48 | 48 | 0 | -1 | 0 | -1 | 110169581 | -1 | 17648 | 23 | 2206 | 5 | 123 | 0 | 0 | 0 userg1 | 2020-01-08 22:56:06.460252+08 | 0 | 13972 | 33.48 | 48 | 0 | -1 | 0 | -1 | 136106277 | -1 | 17648 | 23 | 2206 | 5 | 123 | 0 | 0 | 0 对于系统表GS_WLM_USER_RESOURCE_HISTORY,仅当GUC参数enable_user_metric_persistent开启时,才会定期将视图PG_TOTAL_USER_RESOURCE_INFO中的数据保存到历史表中。 所查各字段说明详见GS_WLM_USER_RESOURCE_HISTORY。
  • 简介 多租户管理框架下,用户关联资源池执行查询,用户执行查询所占用的资源将汇总至关联资源池上,通过资源池监控视图,用户可以直观的查询到所有资源池的实时资源使用情况,同时也可以通过资源池监控历史表查询资源池资源的历史使用情况。 资源池监控数据每5s更新一次,但是因为CN和DN时间差,实际监控数据更新时间可能会大于5s,正常不会超过10s。资源池监控数据每30s持久化一次,资源池监控和用户监控逻辑基本一致,因此共用GUC参数控制持久化和老化,使用GUC参数enable_user_metric_persistent控制是否进行资源池监控数据持久化,使用GUC参数user_metric_retention_time控制资源池监控数据老化。 资源池监控的资源包含:快慢车道作业运行和排队信息,CPU、内存以及逻辑IO资源监控信息。涉及的监控视图和历史表如下: 资源池实时运行信息监控视图(单CN):GS_RESPOOL_RUNTIME_INFO。 资源池实时运行信息监控视图(所有CN):PGXC_RESPOOL_RUNTIME_INFO。 资源池实时资源监控视图(单CN):GS_RESPOOL_RESOURCE_INFO。 资源池实时资源监控视图(所有CN):PGXC_RESPOOL_RESOURCE_INFO。 资源池历史资源监控表(单CN):GS_RESPOOL_RESOURCE_HISTORY。 资源池历史资源监控视图(所有CN):PGXC_RESPOOL_RESOURCE_HISTORY。 资源池监控可以同时监控快慢车道所有作业的CPU、IO和内存使用情况,不再受限于仅监控慢车道作业。 当前快车道作业内存和CPU不受控,在快车道运行作业占用资源较多情况下,可能出现已用资源大于资源限制的情况。 DN资源池监控视图中,IO、内存和CPU显示的是本DN上资源池资源使用和资源限制信息。 CN资源池监控视图中,IO、内存和CPU显示的是集群内所有DN资源池资源使用和资源限制的累积和。 DN每隔5s更新一次资源池监控信息,CN每隔5s从DN收集一次资源池监控信息,因为各实例单独更新/收集资源池监控信息,因此各实例监控信息更新时间可能不一致。 辅助线程中每隔30s自动调用持久化函数,持久化资源池监控数据,正常情况下不需要用户单独调用持久化函数持久化资源池监控数据。
  • 操作步骤 查询资源池的作业实时运行情况。 1 SELECT * FROM GS_RESPOOL_RUNTIME_INFO; 得到的结果视图如下: nodegroup | rpname | ref_count | fast_run | fast_wait | slow_run | slow_wait -----------+--------------+-----------+----------+-----------+----------+----------- vc1 | p2 | 10 | 0 | 0 | 0 | 0 vc2 | p3 | 10 | 5 | 5 | 0 | 0 vc2 | p4 | 0 | 0 | 0 | 0 | 0 vc1 | default_pool | 0 | 0 | 0 | 0 | 0 vc2 | default_pool | 0 | 0 | 0 | 0 | 0 vc1 | p1 | 20 | 5 | 5 | 3 | 7 (6 rows) 其中: ref_count为引用当前资源池信息的作业数,语句从进入管控到结束一直占用该计数; fast_run和slow_run为负载管理记账信息,只有管控(fast_limit/slow_limit大于0)时该值才有效; 该视图仅在CN上有效,持久化信息保存在GS_RESPOOL_RESOURCE_HISTORY中; 各字段说明详见GS_RESPOOL_RUNTIME_INFO。 查询资源池的资源限额和资源实时使用情况。 1 SELECT * FROM GS_RESPOOL_RESOURCE_INFO; 得到的结果视图如下: nodegroup | rpname | cgroup | ref_count | fast_run | fast_wait | fast_limit | slow_run | slow_wait | slow_limit | used_cpu | cpu_limit | used_mem | estimate_mem | mem_limit |read_kbytes | write_kbytes | read_counts | write_counts | read_speed | write_speed | send_speed | recv_speed -----------+--------------+---------------------+-----------+----------+-----------+------------+----------+-----------+------------+----------+-----------+----------+--------------+-----------+-------------+--------------+-------------+--------------+------------+-------------+------------+------------ vc1 | p2 | DefaultClass:Rush | 10 | 0 | 0 | -1 | 0 | 0 | 10 | 9.97 | 48 | 20 | 0 | 11555 | 8 | 2880 | 1 | 360 | 1 | 589 | 0 | 0 vc2 | p3 | DefaultClass:Rush | 10 | 5 | 5 | 5 | 0 | 0 | 10 | 4.98 | 48 | 11 | 0 | 11555 | 0 | 848 | 0 | 106 | 0 | 173 | 0 | 0 vc2 | p4 | DefaultClass:Rush | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 48 | 0 | 0 | 11555 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 vc1 | default_pool | DefaultClass:Medium | 0 | 0 | 0 | -1 | 0 | 0 | -1 | 0 | 48 | 0 | 0 | 11555 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 vc2 | default_pool | DefaultClass:Medium | 0 | 0 | 0 | -1 | 0 | 0 | -1 | 0 | 48 | 0 | 0 | 11555 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 vc1 | p1 | DefaultClass:Rush | 20 | 5 | 5 | 5 | 3 | 7 | 3 | 7.98 | 48 | 16 | 768 | 11555 | 8 | 2656 | 1 | 332 | 1 | 543 | 0 | 0 (6 rows) 该视图在CN和DN上均有效,DN上CPU、内存和IO为本DN资源消耗情况,CN上CPU、内存和IO为集群内所有DN上资源消耗的累加和; estimate_mem仅在动态负载管理情况下CN上有效,显示资源池估算内存记账情况; IO监控信息仅在enable_logical_io_statistics开启时才会记录; 各字段说明详见GS_RESPOOL_RESOURCE_INFO。 查询资源池的资源限额和资源历史使用情况。 1 SELECT * FROM GS_RESPOOL_RESOURCE_HISTORY ORDER BY timestamp DESC; 得到的结果视图如下: timestamp | nodegroup | rpname | cgroup | ref_count | fast_run | fast_wait | fast_limit | slow_run | slow_wait | slow_limit | used_cpu | cpu_limit | used_mem | estimate_mem | mem_limit | read_kbytes | write_kbytes | read_counts | write_counts | read_speed | write_speed | send_speed | recv_speed -------------------------------+--------------+--------------+---------------------+-----------+----------+-----------+------------+----------+-----------+------------+----------+-----------+----------+--------------+-----------+-------------+--------------+-------------+--------------+------------+-------------+------------+------------ 2022-03-04 09:41:57.53739+08 | vc1 | p2 | DefaultClass:Rush | 10 | 0 | 0 | -1 | 0 | 0 | 10 | 9.97 | 48 | 20 | 0 | 11555 | 0 | 2320 | 0 | 290 | 0 | 474 | 0 | 0 2022-03-04 09:41:57.53739+08 | vc1 | p1 | DefaultClass:Rush | 20 | 5 | 5 | 5 | 3 | 7 | 3 | 7.98 | 48 | 16 | 768 | 11555 | 0 | 1896 | 0 | 237 | 0 | 387 | 0 | 0 2022-03-04 09:41:57.53739+08 | vc2 | default_pool | DefaultClass:Medium | 0 | 0 | 0 | -1 | 0 | 0 | -1 | 0 | 48 | 0 | 0 | 11555 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 2022-03-04 09:41:57.53739+08 | vc1 | default_pool | DefaultClass:Medium | 0 | 0 | 0 | -1 | 0 | 0 | -1 | 0 | 48 | 0 | 0 | 11555 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 2022-03-04 09:41:57.53739+08 | vc2 | p4 | DefaultClass:Rush | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 48 | 0 | 0 | 11555 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 2022-03-04 09:41:57.53739+08 | vc2 | p3 | DefaultClass:Rush | 10 | 5 | 5 | 5 | 0 | 0 | 10 | 4.99 | 48 | 11 | 0 | 11555 | 0 | 880 | 0 | 110 | 0 | 180 | 0 | 0 2022-03-04 09:41:27.335234+08 | vc2 | p3 | DefaultClass:Rush | 10 | 5 | 5 | 5 | 0 | 0 | 10 | 4.98 | 48 | 11 | 0 | 11555 | 0 | 856 | 0 | 107 | 0 | 175 | 0 | 0 该监控信息来自资源池监控历史表,enable_user_metric_persistent开启时每30秒记录一次; 该表数据保存时间由GUC参数user_metric_retention_time控制; 各字段说明详见GS_RESPOOL_RESOURCE_HISTORY。
  • 技术原理 业务用户执行业务时,其操作的数据空间大小将记录在业务用户的空间配额中;对于永久表空间,每个DN节点平摊空间使用配额大小。DN在数据文件、临时表文件、临时文件的新增和扩展时进行实时的空间统计,当业务用户进行业务操作时,判断是否已达到空间限额,决定是否运行该操作,超出限额的进行回滚。在事务或者session结束时,释放空间并刷新对应的数值。 DN节点会实时统计用户执行具体操作时涉及到的磁盘变化,保存到内存中,等待CN进行统计,并且会接收CN下推的信息来更新整体系统所使用的临时空间,以正确进行管控。
  • 功能描述 用户空间管控包含三部分:永久表空间管控、临时表空间管控以及中间计算结果集落盘空间管控,数据库管理员创建组用户和业务用户时,可以指定用户永久表空间、临时表空间以及中间计算结果集落盘空间限额。在用户执行具体操作涉及到受管控空间的增加减少时,系统会根据操作对象所属用户当前指定的限额进行判断是否超过限额,如若超出限制,则不允许进行当前操作,将可使用磁盘空间限制到所设定的空间额度之中。 除此之外,产品还支持schema粒度的永久空间管控,当操作该schema内的对象进行空间增删时,对超限操作进行管控。
  • 前提条件 GUC参数enable_resource_track为on (默认为on)。 GUC参数resource_track_level为query、perf或operator(默认为query)。设置方法详见表2。 GUC参数enable_resource_record为on(默认为on)。 GUC参数resource_track_duration小于作业执行时间(默认为60s)。 GUC参数enable_track_record_subsql控制是否记录存储过程、匿名块内部语句(默认为off)。 监控作业类型为:资源监控实时视图(参见表1)中记录的作业结束时的执行时间大于或等于resource_track_duration的作业。 Cgroups功能正常加载,可通过gs_cgroup -P查看控制组信息。
  • 配置集群参数 查询TopSQL资源监控信息之前,需要先配置相关的GUC参数,以便能查询到作业的资源监控历史信息或归档信息。步骤如下: 登录GaussDB(DWS)管理控制台。 在“集群管理”页面,找到所需要的集群,单击集群名称,进入集群详情页面。 单击“参数修改”标签页,可以看到当前集群的参数值。 修改参数resource_track_duration值为合适的值,单击“保存”按钮进行保存。 enable_resource_record开关打开后,会引起存储空间膨胀及轻微性能影响,不用时请关闭。 返回集群管理页面,单击右上角的刷新按钮,等待集群参数配置完成。