华为云用户手册

  • 标签的使用场景 当您在使用容器镜像服务时,若存在以下需求,建议您使用标签来快速完成任务: 资源集中处理 对于拥有大量云资源的用户,可以通过使用标签,快速查找标识有某标签的所有云资源,可对这些资源统一进行检视、修改、删除等操作。 资源迁移 资源迁移过程中,用户可以将迁移资源与预定义标签关联,避免大量重复建立标签过程中产生的错误率与效率低下的问题。 自定义计费 您可以在计费系统中查询已打标签的仓库,从而快速对账单进行精细化的统计和分析。
  • 标签命名规则 每个标签都是由一个键值对构成。对于每个资源,每个标签“键”都必须是唯一的,每个标签“键”只能有一个“值”。如果您添加的标签的“值”与该资源上现有标签的“值”相同,新值将覆盖旧值。具体填写规则如下: 表1 键和值填写说明 填写参数 规则 示例 键 不能为空 不能以_sys_开头 键的长度为1~128个字符(中文也可以输入128个字符) 可以由英文字母、数字、下划线、中划线、中文字符组成 可用 UTF-8 格式表示的字母(包含中文)、数字和空格,以及以下字符: _ . : = + - @ Test Department 值 资源标签值可以为空 预定义标签值不可以为空 值的长度为0~255个字符(中文也可以输入255个字符) 可以由英文字母、数字、下划线、中划线、中文字符组成 可用 UTF-8 格式表示的字母(包含中文)、数字和空格,以及以下字符:_ . : / = + - @ Shanghai
  • 什么是标签? 标签是对云上资源的一种可视化的标识。当您拥有相同类型的许多云资源时,可以使用标签按各种维度(例如用途、所有者或环境)对云资源进行分类。 图1 标签示例1 图2 标签示例2 图1 图2说明了标签的工作方式。在此示例中,您为每个仓库分配了两个标签,每个标签都包含您定义的一个“键”和一个“值”,一个标签使用键为“所有者”,另一个使用键为“用途”,每个标签都拥有相关的值。 在容器镜像服务中,您可以使用标签对企业仓库中的仓库/命名空间进行标识,以便于对其进行快速查找和管理。
  • 同步规则示例 推送到目标仓库 将本仓库中library命名空间中以“nginx-”名称开头的所有版本镜像,推送到目标仓库test-edit-fail的lib1命名空间下,触发模式为手动触发,且覆盖相同名称版本的镜像。 从目标仓库拉取 将目标仓库test-edit-fail的lib1命名空间中以“nginx-”名称开头的所有版本镜像,拉取到本仓库library1命名空间中,触发方式为手动触发,且覆盖相同名称版本的镜像。
  • 管理同步规则 成功创建后即可在“同步规则”页面查看已创建的同步规则,您可以执行以下操作管理同步规则。 图2 同步规则 图3 任务详情 启用:表示规则启用,表示规则关闭。新创建的同步规则默认为启用状态,您可以自行调整。 执行:手动触发同步规则。 编辑:重新编辑同步规则,所有参数均可编辑。 删除:删除该同步规则。 查看同步任务:当同步规则被触发时,符合规则范围的镜像将被同步。同步任务包含的信息如下: 表2 同步任务 参数 说明 任务ID 仓库内唯一的同步执行任务ID。 状态 任务完成状态。 触发模式 手动或自动。 单击“执行”为手动方式,通过规则定义的周期自动执行,则为自动方式。 成功百分比 同步成功的镜像数占总数的百分比。 总数 当前任务需要同步的镜像总数。 持续时间 完成一次任务消耗的时间。 创建时间 同步任务被触发的时间。 操作 详情:任务详细信息,单击后在侧边栏可查看哪些镜像被同步。
  • 返回值 正常 200 异常 返回值 说明 400 Bad Request 请求错误。 401 Unauthorized 未提供认证信息,或认证信息错误。 403 Forbidden 请求页面被禁止访问。 408 Request Timeout 请求超出了服务器的等待时间。 429 Too Many Requests 当前请求过多。 500 Internal Server Error 请求未完成,服务异常。 503 Service Unavailable 系统暂时不可用,请求受限。
  • 响应消息 响应参数 表3 响应参数 名称 参数类型 说明 metrics Array of objects 指标对象列表。 详细参数请参见表4。 meta_data Object 查询结果元数据信息,包括分页信息等。 详细参数请参见表6。 表4 metrics字段数据结构说明 名称 参数类型 说明 namespace String 指标所属命名空间。 dimensions Array of objects 指标维度列表。 详细参数请参见表5。 metric_name String 指标名称,如cpu_util。 unit String 指标单位。 表5 dimensions字段数据结构说明 名称 参数类型 说明 name String 监控维度名称,例如弹性云服务器的维度为instance_id。各服务维度请参考支持监控的服务列表,可参考维度中key字段。 value String 维度取值,例如弹性云服务器的ID。 长度最短为1,最大为256。 表6 meta_data字段数据结构说明 名称 参数类型 说明 count Integer 当前返回结果条数。 marker String 下一个开始的标记,用于分页。 如本次查询10条数据,第十条为cpu_util,下次start配置为cpu_util可从该指标开始查询。 total Integer 指标总条数。 响应样例 { "metrics": [ { "namespace": "SYS.ECS", "dimensions": [ { "name": "instance_id", "value": "d9112af5-6913-4f3b-bd0a-3f96711e004d" } ], "metric_name": "cpu_util", "unit": "%" } ], "meta_data": { "count": 1, "marker": "SYS.ECS.cpu_util.instance_id:d9112af5-6913-4f3b-bd0a-3f96711e004d", "total": 7 } }
  • URI GET /V1.0/{project_id}/metrics 参数说明 表1 参数说明 名称 是否必选 说明 project_id 是 项目ID。 获取方式请参见获取项目ID。 表2 查询检索参数说明 名称 是否必选 参数类型 说明 namespace 否 String 查询服务的命名空间,各服务命名空间请参考支持监控的服务列表。 格式为service.item;service和item必须是字符串,必须以字母开头,只能包含0-9/a-z/A-Z/_,service.item总长度最短为3,最大为32。 metric_name 否 String 指标ID,例如弹性云服务器的监控指标CPU使用率,对应的metric_name为cpu_util。各服务监控指标请参考支持监控的服务列表。 字符格式必须以字母开头,只能包含0-9/a-z/A-Z/_-,字符长度最短为1,最大为96。 dim 否 String 监控维度,例如弹性云服务器的维度为instance_id。各服务维度请参考支持监控的服务列表。 目前最大支持3个维度,必须从0开始;维度格式为dim.{i}=key,value,key的最大长度32,value的最大长度为256。 单维度:dim.0=instance_id,6f3c6f91-4b24-4e1b-b7d1-a94ac1cb011d 多维度:dim.0=key,value&dim.1=key,value start 否 String 分页起始值,格式为:namespace.metric_name.key:value 例如:start=SYS.ECS.cpu_util.instance_id:d9112af5-6913-4f3b-bd0a-3f96711e004d limit 否 Integer 取值范围(0,1000],默认值为1000。 用于限制结果数据条数。 order 否 String 用于标识结果排序方法,按时间戳排序。 取值说明,默认为desc: asc,升序 desc,降序 请求样例 请求样例一:查询当前可监控所有指标列表。 GET https://{云监控的终端节点}/V1.0/{project_id}/metrics 请求样例二:查询弹性云服务器ID为6f3c6f91-4b24-4e1b-b7d1-a94ac1cb011d的监控指标CPU使用率,结果按时间戳降序保留10条数据。 GET https://{云监控的终端节点}/V1.0/{project_id}/metrics?namespace=SYS.ECS&metric_name=cpu_util&dim.0=instance_id,6f3c6f91-4b24-4e1b-b7d1-a94ac1cb011d&limit=10&order=desc
  • 训练基础镜像列表 ModelArts中预置的训练基础镜像如下表所示。 表1 ModelArts训练基础镜像列表 引擎类型 版本名称 PyTorch pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64 TensorFlow tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64 Horovod horovod_0.20.0-tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64 horovod_0.22.1-pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64 MPI mindspore_1.3.0-cuda_10.1-py_3.7-ubuntu_1804-x86_64 不同区域支持的AI引擎有差异,请以实际环境为准。
  • 基于训练基础镜像构建新镜像的操作步骤 您可以参考如下步骤基于训练基础镜像来构建新镜像。 安装Docker。如果docker images命令可以执行成功,表示Docker已安装,此步骤可跳过。 以linux x86_64架构的操作系统为例,获取Docker安装包。您可以使用以下指令安装Docker。 curl -fsSL get.docker.com -o get-docker.sh sh get-docker.sh 准备名为context的文件夹。 mkdir -p context 准备可用的pip源文件pip.conf 。本示例使用华为开源镜像站提供的pip源,其pip.conf文件内容如下。 [global] index-url = https://repo.huaweicloud.com/repository/pypi/simple trusted-host = repo.huaweicloud.com timeout = 120 在华为开源镜像站https://mirrors.huaweicloud.com/home中,搜索pypi,可以查看pip.conf文件内容。 参考如下Dockerfile文件内容来基于ModelArts提供的训练基础镜像来构建一个新镜像。将编写好的Dockerfile文件放置在context文件夹内。训练基础镜像地址请参见训练基础镜像列表。 FROM {ModelArts提供的训练基础镜像地址} # 配置pip RUN mkdir -p /home/ma-user/.pip/ COPY --chown=ma-user:ma-group pip.conf /home/ma-user/.pip/pip.conf # 设置容器镜像预置环境变量 # 将python解释器路径加入到PATH环境变量中 # 请务必设置PYTHONUNBUFFERED=1, 以免日志丢失 ENV PATH=${ANACONDA_DIR}/envs/${ENV_NAME}/bin:$PATH \ PYTHONUNBUFFERED=1 RUN /home/ma-user/anaconda/bin/pip install --no-cache-dir numpy 构建新镜像。在Dockerfile文件所在的目录执行如下命令构建容器镜像training:v1。 docker build . -t training:v1 将构建好的新镜像上传至SWR(参考如何登录并上传镜像到SWR)。 参考使用自定义镜像创建训练作业(CPU/GPU)章节在ModelArts上使用。
  • 训练脚本mindspore-verification.py文件 mindspore-verification.py文件内容如下: import os import numpy as np from mindspore import Tensor import mindspore.ops as ops import mindspore.context as context print('Ascend Envs') print('------') print('JOB_ID: ', os.environ['JOB_ID']) print('RANK_TABLE_FILE: ', os.environ['RANK_TABLE_FILE']) print('RANK_SIZE: ', os.environ['RANK_SIZE']) print('ASCEND_DEVICE_ID: ', os.environ['ASCEND_DEVICE_ID']) print('DEVICE_ID: ', os.environ['DEVICE_ID']) print('RANK_ID: ', os.environ['RANK_ID']) print('------') context.set_context(device_target="Ascend") x = Tensor(np.ones([1,3,3,4]).astype(np.float32)) y = Tensor(np.ones([1,3,3,4]).astype(np.float32)) print(ops.add(x, y))
  • 场景描述 目标:构建安装如下软件的容器镜像,并在ModelArts平台上使用Ascend规格资源运行训练任务。 ubuntu-18.04 cann-6.3.RC2 (商用版本) python-3.7.13 mindspore-2.1.1 本教程以cann-6.3.RC2.、mindspore-2.1.1为例介绍。 本示例仅用于示意Ascend容器镜像制作流程,且在匹配正确的Ascend驱动/固件版本的专属资源池上运行通过。
  • 场景描述 ModelArts GPU服务器上配置了Mellanox Technologies网卡,支持RDMA(Remote Direct Memory Access)。因此可以在容器镜像中安装MLNX_OFED,使得NCCL可以启用该网卡,提高跨节点通信效率。 NCCL启用该网卡后,跨节点通信采用的方法为NET/IB。未启用该网卡时,跨节点通信采用的方法为NET/Socket。NET/IB在时延与带宽方面都要优于NET/Socket。 表1 ModelArts GPU服务器Mellanox Technologies网卡和MLNX_OFED安装情况 服务器GPU型号 Mellanox Technologies网卡 服务器安装的MLNX_OFED版本 推荐容器镜像安装的MLNX_OFED版本 Vnt1 ConnectX-5 4.3-1.0.1.0/4.5-1.0.1.0 4.9-6.0.6.0-LTS Ant8/Ant1 ConnectX-6 Dx 5.5-1.0.3.2 5.8-2.0.3.0-LTS
  • 已有镜像如何适配迁移至ModelArts训练平台 已有镜像迁移至训练管理需要关注如下步骤。 为镜像增加训练管理的默认用户组ma-group,“gid = 100”。 如果已存在“gid = 100”用户组,可能会报错“groupadd: GID '100' already exists”。可通过命令“cat /etc/group | grep 100”查询是否已存在gid = 100用户组。 如果已存在“gid = 100”用户组,则该步骤跳过,下文Dockerfile中删除“RUN groupadd ma-group -g 100”命令。 为镜像增加训练管理的默认用户ma-user,“uid = 1000”。 如果已存在“uid = 1000”用户,可能会报错“useradd: UID 1000 is not unique”。可通过命令“cat /etc/passwd | grep 1000”查询是否已存在uid = 1000用户。 如果已存在“uid = 1000”用户,则该步骤跳过,下文Dockerfile中删除“RUN useradd -d /home/ma-user -m -u 1000 -g 100 -s /bin/bash ma-user”命令。 修改镜像中相关文件权限,使得ma-user,“uid = 1000”用户可读写。 您可以参考如下Dockerfile,修改已有镜像,使其符合新版训练管理自定义镜像的规范。 FROM {已有镜像} USER root # 如果已存在 gid = 100 用户组,则删除 groupadd 命令。 RUN groupadd ma-group -g 100 # 如果已存在 uid = 1000 用户,则删除 useradd 命令。 RUN useradd -m -d /home/ma-user -s /bin/bash -g 100 -u 1000 ma-user # 修改镜像中相关文件权限,使得 ma-user, uid = 1000 用户可读写。 RUN chown -R ma-user:100 {Python软件包路径} # 设置容器镜像预置环境变量。 # 请务必设置 PYTHONUNBUFFERED=1, 以免日志丢失。 ENV PYTHONUNBUFFERED=1 # 设置容器镜像默认用户与工作目录。 USER ma-user WORKDIR /home/ma-user 编写好Dockerfile后,通过执行如下所示命令进行新镜像构建。 docker build -f Dockerfile . -t {新镜像} 构建成功后将新镜像上传至SWR(参考如何登录并上传镜像到SWR)。 上述内容为关键代码样例,为了方便理解迁移过程,推荐您体验完整迁移案例:示例:从0到1制作自定义镜像并用于训练(PyTorch+CPU/GPU)。 父主题: 准备训练镜像
  • 场景描述 本示例使用Linux x86_64架构的主机,操作系统ubuntu-18.04,通过编写Dockerfile文件制作自定义镜像。 目标:构建安装如下软件的容器镜像,并在ModelArts平台上使用CPU/GPU规格资源运行训练任务。 ubuntu-18.04 cuda-11.1 python-3.7.13 mlnx ofed-5.4 pytorch-1.8.1 horovod-0.22.1
  • Step1 创建OBS桶和文件夹 在OBS服务中创建桶和文件夹,用于存放样例数据集以及训练代码。需要创建的文件夹列表如表1所示,示例中的桶名称“test-modelarts”和文件夹名称均为举例,请替换为用户自定义的名称。 创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。 请确保您使用的OBS与ModelArts在同一区域。 表1 OBS桶文件夹列表 文件夹名称 用途 “obs://test-modelarts/pytorch/demo-code/” 用于存储训练脚本文件。 “obs://test-modelarts/pytorch/log/” 用于存储训练日志文件。
  • Step1 创建OBS桶和文件夹 在OBS服务中创建桶和文件夹,用于存放样例数据集以及训练代码。如下示例中,请创建命名为“test-modelarts”的桶,并创建如表1所示的文件夹。 创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。 请确保您使用的OBS与ModelArts在同一区域。 表1 OBS桶文件夹列表 文件夹名称 用途 obs://test-modelarts/ascend/demo-code/ 用于存储Ascend训练脚本文件。 obs://test-modelarts/ascend/demo-code/run_ascend/ 用于存储Ascend训练脚本的启动脚本。 obs://test-modelarts/ascend/log/ 用于存储训练日志文件。
  • 应用示例 查询当前用户下指定表的约束信息。t1替换为实际的表名。 1 2 3 4 5 SELECT * FROM USER_CONSTRAINTS WHERE table_name='t1'; constraint_name | constraint_type | table_name | index_owner | index_name -----------------+-----------------+------------+-------------+--------------- c_custkey_key | p | t1 | u1 | c_custkey_key (1 row)
  • PGXC_WORKLOAD_SQL_ELAPSE_TIME PGXC_WORKLOAD_SQL_ELAPSE_TIME视图显示集群中所有CN节点上Workload控制组内SQL语句执行的响应时间的统计信息,包括SELECT、UPDATE、INSERT、DELETE语句的最大、最小、平均、以及总响应时间,单位为微秒。需要有系统管理员权限或预置角色gs_role_read_all_stats权限才可以访问此视图。 表1 PGXC_WORKLOAD_SQL_ELAPSE_TIME字段 名称 类型 描述 node_name name 节点名称。 workload name Workload控制组名称。 total_select_elapse bigint SELECT总响应时间。 max_select_elapse bigint SELECT最大响应时间。 min_select_elapse bigint SELECT最小响应时间。 avg_select_elapse bigint SELECT平均响应时间。 total_update_elapse bigint UPDATE总响应时间。 max_update_elapse bigint UPDATE最大响应时间。 min_update_elapse bigint UPDATE最小响应时间。 avg_update_elapse bigint UPDATE平均响应时间。 total_insert_elapse bigint INSERT总响应时间。 max_insert_elapse bigint INSERT最大响应时间。 min_insert_elapse bigint INSERT最小响应时间。 avg_insert_elapse bigint INSERT平均响应时间。 total_delete_elapse bigint DELETE总响应时间。 max_delete_elapse bigint DELETE最大响应时间。 min_delete_elapse bigint DELETE最小响应时间。 avg_delete_elapse bigint DELETE平均响应时间。 父主题: 系统视图
  • PGXC_TOTAL_SCHEMA_INFO PGXC_TOTAL_SCHEMA_INFO视图提供了集群所有实例上的Schema空间信息,便于用户获悉集群各个实例上的Schema空间使用情况,仅支持在CN节点上查询。 表1 PGXC_TOTAL_SCHEMA_INFO字段 名称 类型 描述 schemaname text 模式名称。 schemaid oid 模式OID。 databasename text 数据库名称。 databaseid oid 数据库OID。 nodename text 实例名称。 nodegroup text 节点组名称。 usedspace bigint 已使用的空间大小。 permspace bigint 空间上限值。 父主题: 系统视图
  • GS_WLM_SESSION_HISTORY GS_WLM_SESSION_HISTORY视图显示当前用户在当前CN上执行作业结束后的负载管理记录。此视图用于从GaussDB(DWS)中查询数据,仅当GUC参数enable_resource_track为on时,视图会查询GS_WLM_SESSION_INFO表中3分钟内的数据进行返回。 表1 GS_WLM_SESSION_HISTORY的字段 名称 类型 描述 datid oid 连接后端的数据库OID。 dbname text 连接后端的数据库名称。 schemaname text 模式名。 nodename text 语句执行的CN名称。 username text 连接到后端的用户名。 application_name text 连接到后端的应用名。 client_addr inet 连接到后端的客户端的IP地址。 如果此字段是null,它表明通过服务器机器上UNIX套接字连接客户端或者这是内部进程,如autovacuum。 client_hostname text 客户端的主机名,这个字段是通过client_addr的反向DNS查找得到。这个字段只有在启动log_hostname且使用IP连接时才非空。 client_port integer 客户端用于与后端通讯的TCP端口号,如果使用Unix套接字,则为-1。 query_band text 用于标示作业类型,可通过GUC参数query_band进行设置,默认为空字符串。 block_time bigint 语句执行前的阻塞时间,包含语句解析和优化时间,单位为毫秒。 start_time timestamp with time zone 语句执行的开始时间。 finish_time timestamp with time zone 语句执行的结束时间。 duration bigint 语句实际执行的时间,单位为毫秒。 estimate_total_time bigint 语句预估执行时间,单位为毫秒。 status text 语句执行结束状态:正常为finished,异常为aborted。该处记录的语句状态应为数据库服务端执行状态,当服务器端执行成功,结果集返回时报错,该语句应为finished。 abort_info text 语句执行结束状态为aborted时显示异常信息。 resource_pool text 用户使用的资源池。 control_group text 语句所使用的Cgroup。 estimate_memory integer 语句预估使用内存,单位为MB。 min_peak_memory integer 语句在所有DN上的最小内存峰值,单位为MB。 max_peak_memory integer 语句在所有DN上的最大内存峰值,单位为MB。 average_peak_memory integer 语句执行过程中的内存使用平均值,单位为MB。 memory_skew_percent integer 语句各DN间的内存使用倾斜率。 spill_info text 语句在所有DN上的下盘信息: None:所有DN均未下盘。 All:所有DN均下盘。 [a:b]:数量为b个DN中有a个DN下盘。 min_spill_size integer 若发生下盘,所有下盘DN的最小下盘数据量,默认为0。单位为MB。 max_spill_size integer 若发生下盘,所有下盘DN的最大下盘数据量,默认为0。单位为MB。 average_spill_size integer 若发生下盘,所有下盘DN的平均下盘数据量,默认为0。单位为MB。 spill_skew_percent integer 若发生下盘,DN间下盘倾斜率。 min_dn_time bigint 语句在所有DN上的最小执行时间,单位为毫秒。 max_dn_time bigint 语句在所有DN上的最大执行时间,单位为毫秒。 average_dn_time bigint 语句在所有DN上的平均执行时间,单位为毫秒。 dntime_skew_percent integer 语句在各DN间的执行时间倾斜率。 min_cpu_time bigint 语句在所有DN上的最小CPU时间,单位为毫秒。 max_cpu_time bigint 语句在所有DN上的最大CPU时间,单位为毫秒。 total_cpu_time bigint 语句在所有DN上的CPU总时间,单位为毫秒。 cpu_skew_percent integer 语句在DN间的CPU时间倾斜率。 min_peak_iops integer 语句在所有DN上的每秒最小IO峰值(列存单位为次/s,行存单位为万次/s),该功能在8.1.3集群版本上未启用,不建议参考该字段进行内存问题分析。 max_peak_iops integer 语句在所有DN上的每秒最大IO峰值(列存单位为次/s,行存单位为万次/s),该功能在8.1.3集群版本上未启用,不建议参考该字段进行内存问题分析。 average_peak_iops integer 语句在所有DN上的每秒平均IO峰值(列存单位为次/s,行存单位为万次/s),该功能在8.1.3集群版本上未启用,不建议参考该字段进行内存问题分析。 iops_skew_percent integer 语句在DN间的IO倾斜率,该功能在8.1.3集群上未启用,不建议参考该字段进行内存问题分析。 warning text 主要显示如下几类告警信息以及SQL自诊断调优相关告警: Spill file size large than 256MB Broadcast size large than 100MB Early spill Spill times is greater than 3 Spill on memory adaptive Hash table conflict queryid bigint 语句执行使用的内部查询ID。 query text 执行的语句。 query_plan text 语句的执行计划。 node_group text 语句所属用户对应的逻辑集群。 pid bigint 语句的后端线程的PID。 lane text 语句执行时所在的快慢车道。 unique_sql_id bigint 归一化的Unique SQL ID。 父主题: 系统视图
  • GS_INSTR_UNIQUE_SQL视图 GS_INSTR_UNIQUE_SQL视图显示当前节点收集的Unique SQL的执行信息,主要包括以下内容: Unique SQL ID以及归一化后的SQL文本字符串,归一化后的SQL文本如示例中所示。通常对于DML语句,在计算Unique SQL ID的过程中会忽略常量值。但对于DDL、DCL以及设置参数等语句,常量值不可以忽略。 执行次数(成功执行的次数),响应时间(数据库内部的SQL执行时间,包括最大、最小和总时间)。 Cache/IO信息,包含block的物理读、逻辑读次数,仅统计执行成功的SQL在各DN节点上的相关信息。该统计值与查询执行当时所处理的数据量、所使用的内存、是否多次执行、内存管理策略、是否有其他并发查询等因素相关,反映整个查询执行过程中的buffer块物理读和逻辑读次数,不同时间执行可能统计值不同。 行活动,包含SELECT语句的结果集返回行数、更新行、插入行、删除行、顺序扫描行、随机扫描行等信息。除结果集返回行数与该SELECT语句的结果集行数一致、且仅在CN上记录外,其他行活动信息均在DN上记录,且统计数值反应的是整个查询执行过程中的行活动,包括对相关系统表、元数据表、数据表等做必要的扫描和修改,与对应数据量以及相关参数设置相关,即统计数值将会大于等于对实际数据表的扫描和修改。 时间分布,包含:DB_TIME/CPU_TIME/EXECUTION_TIME/PARSE_TIME/PLAN_TIME/REWRITE_TIME/PL_EXECUTION_TIME/PL_COMPILATION_TIME/NET_SEND_TIME/DATA_IO_TIME,相关定义见表1。该信息在CN和DN节点均有统计,视图查询时将汇总展示。 软硬解析次数,包含软解析(缓存计划)、硬解析(生成计划)的次数,即如果本次执行的是之前缓存的计划,软解析次数+1,如果本次执行的计划是重新生成的,则硬解析次数+1。该次数在CN和DN节点上都会统计,视图查询时将汇总展示。 Unique SQL收集功能存在以下约束: 只有执行成功的SQL才会显示其详细的统计信息,否则可能只记录query、node、user等信息。 如果开启Unique SQL收集功能,CN节点将对所有接收到的查询进行统计收集,包括工具和用户的查询等。 若一条SQL语句内部包含执行多条SQL语句、类似存储过程执行等场景,仅会对最外层SQL生成一条Unique SQL,所有子SQL的统计信息都会汇总到该Unique SQL记录上。 Unique SQL的响应时间统计中不完全包含NET_SEND_TIME阶段的时间,所以EXECUTION_TIME和elapse_time等时间之间不存在大小比较关系。 对于类似begin;...;commit;等形式的事务块,当前不支持统计子句的解析时间(parse_time)。 普通用户访问GS_INSTR_UNIQUE_SQL视图,只能看到该用户相关的Unique SQL信息,管理员用户可以看到当前节点所有的Unique SQL信息。CN和DN上均可查询GS_INSTR_UNIQUE_SQL视图,DN上显示的是本节点内的Unique SQL统计信息,CN上显示的是本节点Unique SQL完整统计信息,即该CN节点会收集其他CN和DN上对应该CN的Unique SQL的执行信息,进行汇总展示。通过查询GS_INSTR_UNIQUE_SQL视图,能够定位由于消耗不同资源导致的Top SQL,为集群性能调优和维护提供依据。 GUC参数instr_unique_sql_timeout设置了Unique SQL的超时时间,单位是小时。后台线程每隔1小时检查一次所有的Unique SQL,将last_time在instr_unique_sql_timeout小时之前的Unique SQL删除。
  • PG_WLM_STATISTICS PG_WLM_STATISTICS视图显示作业结束后或已被处理异常后的负载管理相关信息。该视图8.1.2版本中已废弃。 表1 PG_WLM_STATISTICS字段 名称 类型 描述 statement text 执行了异常处理的语句。 block_time bigint 语句执行前的阻塞时间。 elapsed_time bigint 语句的实际执行时间。 total_cpu_time bigint 语句执行异常处理时DN上CPU使用的总时间。 qualification_time bigint 语句检查倾斜率的时间周期。 cpu_skew_percent integer 语句在执行异常处理时DN上CPU使用的倾斜率。 control_group text 语句执行异常处理时所使用的Cgroups。 status text 语句执行异常处理后的状态,包括: pending:执行前预备状态。 running:执行进行状态。 finished:执行正常结束。 abort:执行异常终止。 action text 语句执行的异常处理动作,包括: abort:执行终止操作。 adjust:执行Cgroups调整操作,目前只有降级操作。 finish:正常结束。 queryid bigint 语句执行所使用的内部查询ID。 threadid bigint 后端线程ID。 父主题: 系统视图
  • PG_COMM_RECV_STREAM PG_COMM_RECV_STREAM视图展示单个DN上所有的通信库接收流状态。 表1 PG_COMM_RECV_STREAM字段 名称 类型 描述 node_name text 节点名称。 local_tid bigint 使用此通信流的线程ID。 remote_name text 连接对端节点名称。 remote_tid bigint 连接对端线程ID。 idx integer 通信对端DN在本DN内的标识编号。 sid integer 通信流在物理连接中的标识编号。 tcp_sock integer 通信流所使用的tcp通信socket。 state text 通信流当前的状态: UNKNOWN:表示当前逻辑连接状态未知。 READY:表示逻辑连接已就绪。 RUN:表示逻辑连接接收报文正常。 HOLD:表示逻辑连接接收报文等待中。 CLOSED:表示关闭逻辑连接。 TO_CLOSED:表示将会关闭逻辑连接。 query_id bigint 通信流对应的debug_query_id编号。 pn_id integer 通信流所执行查询的plan_node_id编号。 send_smp integer 通信流所执行查询send端的smpid编号。 recv_smp integer 通信流所执行查询recv端的smpid编号。 recv_bytes bigint 通信流接收的数据总量,单位为Byte。 time bigint 通信流当前生命周期使用时长,单位为毫秒。 speed bigint 通信流的平均接收速率,单位为Byte/s。 quota bigint 通信流当前的通信配额值,单位为Byte。 buff_usize bigint 通信流当前缓存的数据大小,单位为Byte。 父主题: 系统视图
  • ALL_SYNONYMS ALL_SYNONYMS视图存储了当前用户可访问的所有同义词信息。 表1 ALL_SYNONYMS字段 名称 类型 描述 owner text 同义词的所有者。 schema_name text 同义词所属模式名。 synonym_name text 同义词的名称。 table_owner text 关联对象的所有者。 table_schema_name text 关联对象所属模式名。 table_name text 关联对象名。 父主题: 系统视图
  • ALL_TABLES ALL_TABLES视图存储当前用户可访问的所有表。 表1 ALL_TABLES字段 名称 类型 描述 owner character varying(64) 表的所有者。 table_name character varying(64) 表名。 tablespace_name character varying(64) 表所在的表空间名称。 status character varying(8) 当前记录是否有效。 temporary character(1) 表是否为临时表。 Y表示是临时表。 N表示不是临时表。 dropped character varying 当前记录是否已删除。 YES表示已删除。 NO表示未删除。 num_rows numeric 表的估计行数。 父主题: 系统视图
  • GS_WLM_INSTANCE_HISTORY GS_WLM_INSTANCE_HISTORY系统表存储与实例(CN或DN)相关的资源使用相关信息。该系统表里每条记录都是对应时间点某实例资源使用情况,包括:内存、CPU核数、磁盘IO、进程物理IO和进程逻辑IO信息。 表1 GS_WLM_INSTANCE_HISTORY字段 名称 类型 描述 instancename text 实例名称。 timestamp timestamp with time zone 时间戳。 used_cpu int 实例使用CPU所占用的百分比。 free_mem int 实例未使用的内存大小,单位MB。 used_mem int 实例已使用的内存大小,单位为MB。 io_await real 实例所使用磁盘的io_wait值(10秒均值)。 io_util real 实例所使用磁盘的io_util值(10秒均值)。 disk_read real 实例所使用磁盘的读速率(10秒均值),单位为KB/s。 disk_write real 实例所使用磁盘的写速率(10秒均值),单位为KB/s。 process_read bigint 实例对应进程从磁盘读数据的读速率(不包括从磁盘pagecache中读取的字节数,10秒均值),单位为KB/s。 process_write bigint 实例对应进程向磁盘写数据的写速率(不包括向磁盘pagecache中写入的字节数,10秒均值),单位为KB/s。 logical_read bigint CN实例:不统计。 DN实例:该实例在本次统计间隙(10秒)内逻辑读字节速率,单位为KB/s。 logical_write bigint CN实例:不统计。 DN实例:该实例在本次统计间隙(10秒)内逻辑写字节速率,单位为KB/s。 read_counts bigint CN实例:不统计。 DN实例:该实例在本次统计间隙(10秒)内逻辑读操作次数之和。 write_counts bigint CN实例:不统计。 DN实例:该实例在本次统计间隙(10秒)内逻辑写操作次数之和。 父主题: 系统表
  • PG_REWRITE PG_REWRITE系统表存储为表和视图定义的重写规则。 表1 PG_REWRITE字段 名称 类型 描述 rulename name 规则名称。 ev_class oid 使用该规则的表名。 ev_attr smallint 该规则适用的字段(当前为0,表示整个表) ev_type "char" 规则适用的事件类型: 1 = SELECT 2 = UPDATE 3 = INSERT 4 = DELETE ev_enabled "char" 用于控制复制的触发。 O =“origin”和“local”模式时触发。 D =禁用触发。 R =“replica”时触发。 A =任何模式都会触发。 is_instead boolean 如果是INSTEAD规则,则为真。 ev_qual pg_node_tree 规则条件的表达式树(以nodeToString() 形式存在)。 ev_action pg_node_tree 规则动作的查询树(以nodeToString() 形式存在)。 父主题: 系统表
  • PGXC_SESSION_WLMSTAT PGXC_SESSION_WLMSTAT视图显示当前集群中各CN节点用户执行作业正在运行时的负载管理相关信息。 表1 PGXC_SESSION_WLMSTAT字段 名称 类型 描述 nodename name 节点名称 datid oid 连接后端的数据库OID。 datname name 连接后端的数据库名称。 threadid bigint 后端线程ID。 processid integer 后端线程的PID。 usesysid oid 登录后端的用户OID。 appname text 连接到后端的应用名。 usename name 登录到该后端的用户名。 priority bigint 语句所在Cgroups的优先级。 attribute text 语句的属性: Ordinary:语句发送到数据库后被解析前的默认属性。 Simple:简单语句。 Complicated:复杂语句。 Internal:数据库内部语句。 block_time bigint 语句当前为止的pending的时间,单位为秒。 elapsed_time bigint 语句当前为止的实际执行时间,单位为秒。 total_cpu_time bigint 语句在上一时间周期内的DN上CPU使用的总时间,单位为秒。 cpu_skew_percent integer 语句在上一时间周期内的DN上CPU使用的倾斜率。 statement_mem integer 语句执行所需要的估算内存。 active_points integer 语句占用的资源池并发点数。 dop_value integer 从资源池中获取语句的dop值。 control_group text 语句当前所使用的Cgroups。 status text 语句当前的状态,包括: pending:执行前状态。 running:执行进行状态。 finished:执行正常结束。(当enqueue字段为StoredProc或Transaction时,仅代表语句中的部分作业已经执行完毕,该状态会持续到该语句完全执行完毕。) aborted:执行异常终止。 active:非以上四种状态外的正常状态。 unknown:未知状态。 enqueue text 语句当前的排队情况,包括: Global:全局排队。 Respool:资源池排队。 CentralQueue:在中心协调节点(CCN)中排队。 Transaction:语句处于一个事务块中。 StoredProc:语句处于一个存储过程中。 None:未在排队。 Forced None:事务块语句或存储过程语句由于超出设定的等待时间而强制执行。 resource_pool name 语句当前所在的资源池。 query text 该后端的最新查询。如果state状态是active,此字段显示当前正在执行的查询。所有其他情况表示上一个查询。 isplana bool 逻辑集群模式下,语句当前是否占用其他逻辑集群的资源执行。该值默认为f,表示不占用其他逻辑集群的资源执行。 node_group text 语句所属用户对应的逻辑集群。 lane text 表示语句查询的快慢车道。 fast:快车道。 slow:慢车道。 none:未管控。 父主题: 系统视图
  • PG_SHARED_MEMORY_DETAIL PG_SHARED_MEMORY_DETAIL视图查询所有已产生的共享内存上下文的使用信息。 表1 PG_SHARED_MEMORY_DETAIL字段 名字 类型 描述 contextname text 内存上下文的名字。 level smallint 当前上下文在整体内存上下文中的层级。 parent text 上级内存上下文。 totalsize bigint 共享内存总大小,单位为Byte。 freesize bigint 共享内存剩余大小,单位为Byte。 usedsize bigint 共享内存使用大小,单位为Byte。 父主题: 系统视图
共100000条