云服务器内容精选

  • GLOBAL_OPERATOR_RUNTIME GLOBAL_OPERATOR_RUNTIME视图显示当前用户在数据库主节点上正在执行的作业的算子相关信息。 表1 GLOBAL_OPERATOR_RUNTIME的字段 名称 类型 描述 queryid bigint 语句执行使用的内部query_id。 pid bigint 后端线程id。 plan_node_id integer 查询对应的执行计划的plan node id。 plan_node_name text 对应于plan_node_id的算子的名称。 start_time timestamp with time zone 该算子处理第一条数据的开始时间。 duration bigint 该算子到结束时候总的执行时间(ms)。 status text 当前算子的执行状态,包括finished和running。 query_dop integer 当前算子执行时的并行度。 estimated_rows bigint 优化器估算的行数信息。 tuple_processed bigint 当前算子返回的元素个数。 min_peak_memory integer 当前算子在数据库节点上的最小内存峰值(MB)。 max_peak_memory integer 当前算子在数据库节点上的最大内存峰值(MB)。 average_peak_memory integer 当前算子在数据库节点上的平均内存峰值(MB)。 memory_skew_percent integer 当前算子在数据库节点的内存使用倾斜率。 min_spill_size integer 若发生下盘,数据库节点上下盘的最小数据量(MB),默认为0。 max_spill_size integer 若发生下盘,数据库节点上下盘的最大数据量(MB),默认为0。 average_spill_size integer 若发生下盘,数据库节点上下盘的平均数据量(MB),默认为0。 spill_skew_percent integer 若发生下盘,数据库节点间下盘倾斜率。 min_cpu_time bigint 该算子在数据库节点上的最小执行时间(ms)。 max_cpu_time bigint 该算子在数据库节点上的最大执行时间(ms)。 total_cpu_time bigint 该算子在数据库节点上的总执行时间(ms)。 cpu_skew_percent integer 数据库节点间执行时间的倾斜率。 warning text 主要显示如下几类告警信息: Sort/SetOp/HashAgg/HashJoin spill 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 父主题: Operator
  • OPERATOR_RUNTIME OPERATOR_RUNTIME视图显示当前用户正在执行的作业的算子相关信息。 表1 OPERATOR_RUNTIME的字段 名称 类型 描述 queryid bigint 语句执行使用的内部query_id。 pid bigint 后端线程id。 plan_node_id integer 查询对应的执行计划的plan node id。 plan_node_name text 对应于plan_node_id的算子的名称。 start_time timestamp with time zone 该算子处理第一条数据的开始时间。 duration bigint 该算子到结束时候总的执行时间(ms)。 status text 当前算子的执行状态,包括finished和running。 query_dop integer 当前算子执行时的并行度。 estimated_rows bigint 优化器估算的行数信息。 tuple_processed bigint 当前算子返回的元素个数。 min_peak_memory integer 当前算子在数据库节点上的最小内存峰值(MB)。 max_peak_memory integer 当前算子在数据库节点上的最大内存峰值(MB)。 average_peak_memory integer 当前算子在数据库节点上的平均内存峰值(MB)。 memory_skew_percent integer 当前算子在数据库节点的内存使用倾斜率。 min_spill_size integer 若发生下盘,数据库节点上下盘的最小数据量(MB),默认为0。 max_spill_size integer 若发生下盘,数据库节点上下盘的最大数据量(MB),默认为0。 average_spill_size integer 若发生下盘,数据库节点上下盘的平均数据量(MB),默认为0。 spill_skew_percent integer 若发生下盘,数据库节点间下盘倾斜率。 min_cpu_time bigint 该算子在数据库节点上的最小执行时间(ms)。 max_cpu_time bigint 该算子在数据库节点上的最大执行时间(ms)。 total_cpu_time bigint 该算子在数据库节点上的总执行时间(ms)。 cpu_skew_percent integer 数据库节点间执行时间的倾斜率。 warning text 主要显示如下几类告警信息: Sort/SetOp/HashAgg/HashJoin spill 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 父主题: Operator
  • Operator作用域 Operator的作用域分namespace级和cluster级,cluster级的operator可以监听和管理任意namespace的资源。使用kubebuilder init命令默认初始化cluster级的operator,仅支持cluster级的operator管理同级别的CRD。监听多个namespace,main.go修改代码如下: // namespace 列表namespaces := []string{"foo", "bar"}mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ Scheme: scheme, MetricsBindAddress: metricsAddr, Port: 9443, LeaderElection: enableLeaderElection, LeaderElectionID: "f1c5ece8.huawei.com", NewCache: cache.MultiNamespacedCacheBuilder(namespaces), // 指定多个 namespace}) 在修改了Operator作用域后,需同时修改RBAC(config/rbac/... 路径下相关yaml文件),以授权Operator操作该namespace下的资源。
  • 接入规范说明 开源OLM服务(operator-framework)服务支持自定义配置服务场景、支持架构等配置,其描述说明定义在clusterserviceversion.yaml中,具体样例如下: apiVersion: operators.coreos.com/v1alpha1kind: ClusterServiceVersionmetadata: name: example-operator.v0.0.3 namespace: test annotations: scenes: U CS ,CCE source: ISV architecture: x86_64,aarch64 categories: Database devices: CPU,GPU,NPU industries: education,media spec: apiservicedefinitions: {} skips: - example-operator.v0.0.2 replaces: example-operator.v0.0.1 customresourcedefinitions: ... 参数名称 参数描述 参数示例 必选 source 包来源,取值范围:{ISV, OpenSource, HuaweiProvided},分别表示独立服务供应商、开源服务、华为自有服务,仅支持配置一个值。默认值为OpenSource OpenSource 否 architecture 支持架构列表,取值范围:{x86_64, aarch64},默认值为x86_64 x86_64,aarch64 否 categories 分类列表,范围不限,如"AI, Database",注意,当前同一个服务不同版本须配置相同内容,一旦配置后当前不支持修改 Database 否 devices 实例运行需要使用的硬件设备列表,取值范围:{CPU, GPU, NPU},默认值为CPU CPU,GPU 否 industries 行业列表,范围不限,如"education,media" education 否 scenes 部署平台列表,取值列表:{CCE,UCS},分别表示CCE平台和UCS平台,大小写敏感,默认值为CCE。 CCE,UCS 否 父主题: Operator规范
  • 挂载存储 在Kubernetes中,通过PersistentVolume(PV)方式挂载存储,典型的步骤如下: 创建PV,为集群提供存储服务。 apiVersion: v1kind: PersistentVolumemetadata: name: mypv1 annotations: # 访问控制: 使用 group ID(GID) 配置的存储仅允许 Pod 使用相同的 GID 进行写入。 pv.beta.kubernetes.io/gid: "1234"spec: capacity: storage: 1Gi # 指定PV容量 accessModes: # 访问模式: # ReadWriteOnce 以读写模式 mount 到单个节点; # ReadOnlyMany 以只读模式 mount 到多个节点; # ReadWriteMany 以读写模式 mount 到多个节点。 - ReadWriteOnce # 回收策略: # Retain管理员手工回收。PV的STATUS保持Released无法被其他PVC申请,需要删除并重新创建PV; # Recycle清除PV中的数据,相当于rm -rf /thevolume/*。自动启动一个Pod删除PV中的数据,删除后PV的STATUS恢复为Available; # Delete删除存储资源。 persistentVolumeReclaimPolicy: Recycle storageClassName: nfs # PV分类 nfs: path: /nfsdata/pv1 server: 192.168.56.105 声明PersistentVolumeClaim(PVC),指定应用实例需要的存储资源。 apiVersion: v1kind: PersistentVolumeClaimmetadata: name: mypvc1spec: accessModes: - ReadWriteOnce # 指定访问模式 resources: requests: storage: 1Gi # 指定容量 storageClassName: nfs # 指定PV分类 在Pod中挂载PVC。 apiVersion: v1kind: Podmetadata: name: task-pv-podspec: volumes: - name: task-pv-storage persistentVolumeClaim: claimName: mypvc1 containers: - name: task-pv-container image: nginx ports: - containerPort: 80 name: "http-server" volumeMounts: - mountPath: "/usr/share/nginx/html" name: task-pv-storage 父主题: Operator代码示例
  • 开发原理 在本章节以Kafka为例,构建Kafka-Operator进行Kafka实例的管理,同时Kafka实例将以三节点集群的形式对外提供服务。对于Kafka实例/集群而言,需要依托于zookeeper进行构建,zookeeper用作Kafka集群的元数据管理,每个Kafka实例在各节点上会有一个zookeeper实例与其对应,存储broker内的消息、topic等数据。对于整体架构而言,先启动一个zookeeper三节点集群作为kafka启动的基础条件,然后启动Kafka三个节点实例(即broker实例)进行服务的提供,同时启动一个KafkaManager用作可视化管理。整体结构如下:
  • Controller实现背景 在创建Kafka实例时,Kafka-Operator需要创建的Kubernetes资源如下: 1个StatefulSet,包含3个Pod分别启动ZooKeeper; 1个Service,用来暴露ZooKeeper访问地址; 1个StatefulSet,包含3个Pod分别启动Hwfka broker; 1个Service,用来暴露Hwfka访问地址; 1个Deployment,包含1个Pod启动KafkaManager; 1个Service,用来暴露KafkaManager访问地址。 在创建API的时候,SDK已自动创建controllers/hwfka_controller.go,为SetupWithManager添加对Service、StatefulSet、Deployment的监听和管理。 import ("context""fmt""github.com/go-logr/logr"appsv1 "k8s.io/api/apps/v1"corev1 "k8s.io/api/core/v1""k8s.io/apimachinery/pkg/api/errors""k8s.io/apimachinery/pkg/runtime""k8s.io/apimachinery/pkg/types"ctrl "sigs.k8s.io/controller-runtime""sigs.k8s.io/controller-runtime/pkg/client"osctestv1 "hwfka-operator/api/v1")func (r *HwfkaReconciler) SetupWithManager(mgr ctrl.Manager) error {return ctrl.NewControllerManagedBy(mgr).For(&osctestv1.Hwfka{}).Owns(&corev1.Service{}).Owns(&appsv1.StatefulSet{}).Owns(&appsv1.Deployment{}).Complete(r)}
  • 调度逻辑 对于Kubernetes集群内任何Hwfka或Service、StatefulSet、Deployment的变化,Controller都会监听到,并生成事件,触发Reconcile()方法。需要在Reconcile()方法中实现协调逻辑,创建Service、StatefulSet等资源,并更新应用实例状态,实现的过程中,可以参考: 查询资源:控制器使用controller-runtime库中的Client实现对Kubernetes资源的增查改删,示例代码参见:example_test.go。 创建资源:使用Go语言调用Kubernetes API创建资源,可参考Kubernetes API Reference。 设置关联:为创建的Kubernetes资源设置ownerReferences,以便其能在CR删除时被级联删除,可参考如下代码。 // 为指定命名空间和名称的 secret 设置 owner,返回 secretfunc (k *K8sClient) SetSecretOwner(cr *oscv1.Kafka, secretName string) (*corev1.Secret, error) {ctx := context.Background()secret, err := k.GetSecretByNamespaceName(cr.Namespace, secretName)if err != nil {return nil, err}if secret.OwnerReferences == nil {patch := client.MergeFrom(secret.DeepCopy())secret.OwnerReferences = []metav1.OwnerReference{*metav1.NewControllerRef(cr, schema.GroupVersionKind{Group: cr.GroupVersionKind().Group,Version: cr.GroupVersionKind().Version,Kind: cr.Kind,}),}if err := k.Patch(ctx, secret, patch); err != nil {return nil, err}}return secret, nil} 如果一个动作的处理时间较长,为了避免Reconcile阻塞,需要使请求返回并重新排队,有四种方法: // 请求成功,不再排队return ctrl.Result{}, nil// 请求失败,重新加入队列return ctrl.Result{}, err// 请求因某种原因需要重新加入队列return ctrl.Result{Requeue: true}, nil// 请求因某种原因,需要在指定时间后重新加入队列return ctrl.Result{RequeueAfter: time.Second*5}, nil 当删除CR时,如果需要预先清理Kubernetes之外的资源,此时仅凭ownerReferences无法实现,可以利用finalizers特性。利用finalizers延时删除资源的方法请参见Using Finalizers。 示例代码请参见Controller实现。
  • RBAC权限管理 Operator使用基于角色的访问控制机制对Kubernetes中的资源进行访问,因此,要保证Operator正确的运行,需要使用管理员权限的账号对Operator进行授权,即预先创建对应的role和rolebinding。 在Reconcile()上添加markers,增加Operator对于Service、StatefulSet、Deployment、Pod的管理权限,SDK即可自动生成对应的role和rolebinding等资源描述文件。 // +kubebuilder:rbac:groups=osctest.huawei.com,resources=hwfkas,verbs=get;list;watch;create;update;patch;delete// +kubebuilder:rbac:groups=osctest.huawei.com,resources=hwfkas/status,verbs=get;update;patch// +kubebuilder:rbac:groups=core,resources=services,verbs=get;list;watch;create;update;patch;delete// +kubebuilder:rbac:groups=apps,resources=statefulsets,verbs=get;list;watch;create;update;patch;delete// +kubebuilder:rbac:groups=apps,resources=deployments,verbs=get;list;watch;create;update;patch;delete// +kubebuilder:rbac:groups=core,resources=pods,verbs=get;list;watch// +kubebuilder:rbac:groups=core,resources=persistentvolumeclaims,verbs=get;list;watch;updatefunc (r *HwfkaReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) { // ...} 如果Operator为namespace级别的,则需要还添加namespace,如: // +kubebuilder:rbac:groups=osctest.huawei.com,namespace=example,resources=hwfkas,verbs=get;list;watch;create;update;patch;delete// +kubebuilder:rbac:groups=osctest.huawei.com,namespace=example,resources=hwfkas/status,verbs=get;update;patch
  • OPERATOR_RUNTIME OPERATOR_RUNTIME视图显示当前用户正在执行的作业的算子相关信息,如表1所示。 表1 OPERATOR_RUNTIME的字段 名称 类型 描述 queryid bigint 语句执行使用的内部query_id。 pid bigint 后端线程id。 plan_node_id integer 查询对应的执行计划的plan node id。 plan_node_name text 对应于plan_node_id的算子的名称。 start_time timestamp with time zone 该算子处理第一条数据的开始时间。 duration bigint 该算子到结束时候总的执行时间(ms)。 status text 当前算子的执行状态,包括finished和running。 query_dop integer 当前算子执行时的并行度。 estimated_rows bigint 优化器估算的行数信息。 tuple_processed bigint 当前算子返回的元素个数。 min_peak_memory integer 当前算子在数据库节点上的最小内存峰值(MB)。 max_peak_memory integer 当前算子在数据库节点上的最大内存峰值(MB)。 average_peak_memory integer 当前算子在数据库节点上的平均内存峰值(MB)。 memory_skew_percent integer 当前算子在数据库节点的内存使用倾斜率。 min_spill_size integer 若发生下盘,数据库节点上下盘的最小数据量(MB),默认为0。 max_spill_size integer 若发生下盘,数据库节点上下盘的最大数据量(MB),默认为0。 average_spill_size integer 若发生下盘,数据库节点上下盘的平均数据量(MB),默认为0。 spill_skew_percent integer 若发生下盘,数据库节点间下盘倾斜率。 min_cpu_time bigint 该算子在数据库节点上的最小执行时间(ms)。 max_cpu_time bigint 该算子在数据库节点上的最大执行时间(ms)。 total_cpu_time bigint 该算子在数据库节点上的总执行时间(ms)。 cpu_skew_percent integer 数据库节点间执行时间的倾斜率。 warning text 主要显示如下几类告警信息: Sort/SetOp/HashAgg/HashJoin spill 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 父主题: Operator
  • GLOBAL_OPERATOR_RUNTIME GLOBAL_OPERATOR_RUNTIME视图显示当前用户在数据库主节点上正在执行的作业的算子相关信息,如表1所示。 表1 GLOBAL_OPERATOR_RUNTIME的字段 名称 类型 描述 queryid bigint 语句执行使用的内部query_id。 pid bigint 后端线程id。 plan_node_id integer 查询对应的执行计划的plan node id。 plan_node_name text 对应于plan_node_id的算子的名称。 start_time timestamp with time zone 该算子处理第一条数据的开始时间。 duration bigint 该算子到结束时候总的执行时间(ms)。 status text 当前算子的执行状态,包括finished和running。 query_dop integer 当前算子执行时的并行度。 estimated_rows bigint 优化器估算的行数信息。 tuple_processed bigint 当前算子返回的元素个数。 min_peak_memory integer 当前算子在数据库节点上的最小内存峰值(MB)。 max_peak_memory integer 当前算子在数据库节点上的最大内存峰值(MB)。 average_peak_memory integer 当前算子在数据库节点上的平均内存峰值(MB)。 memory_skew_percent integer 当前算子在数据库节点的内存使用倾斜率。 min_spill_size integer 若发生下盘,数据库节点上下盘的最小数据量(MB),默认为0。 max_spill_size integer 若发生下盘,数据库节点上下盘的最大数据量(MB),默认为0。 average_spill_size integer 若发生下盘,数据库节点上下盘的平均数据量(MB),默认为0。 spill_skew_percent integer 若发生下盘,数据库节点间下盘倾斜率。 min_cpu_time bigint 该算子在数据库节点上的最小执行时间(ms)。 max_cpu_time bigint 该算子在数据库节点上的最大执行时间(ms)。 total_cpu_time bigint 该算子在数据库节点上的总执行时间(ms)。 cpu_skew_percent integer 数据库节点间执行时间的倾斜率。 warning text 主要显示如下几类告警信息: Sort/SetOp/HashAgg/HashJoin spill 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 父主题: Operator
  • OPERATOR_HISTORY_TABLE OPERATOR_HISTORY_TABLE系统视图显示执行作业结束后的算子相关的记录,如表1所示。此数据是从内核中转储到视图中的数据。 表1 OPERATOR_HISTORY_TABLE的字段 名称 类型 描述 queryid bigint 语句执行使用的内部query_id。 pid bigint 后端线程id。 plan_node_id integer 查询对应的执行计划的plan node id。 plan_node_name text 对应于plan_node_id的算子的名称。 start_time timestamp with time zone 该算子处理第一条数据的开始时间。 duration bigint 该算子到结束时候总的执行时间(ms)。 query_dop integer 当前算子执行时的并行度。 estimated_rows bigint 优化器估算的行数信息。 tuple_processed bigint 当前算子返回的元素个数。 min_peak_memory integer 当前算子在数据库节点上的最小内存峰值(MB)。 max_peak_memory integer 当前算子在数据库节点上的最大内存峰值(MB)。 average_peak_memory integer 当前算子在数据库节点上的平均内存峰值(MB)。 memory_skew_percent integer 当前算子在数据库节点间的内存使用倾斜率。 min_spill_size integer 若发生下盘,数据库节点上下盘的最小数据量(MB),默认为0。 max_spill_size integer 若发生下盘,数据库节点上下盘的最大数据量(MB),默认为0。 average_spill_size integer 若发生下盘,数据库节点上下盘的平均数据量(MB),默认为0。 spill_skew_percent integer 若发生下盘,数据库节点间下盘倾斜率。 min_cpu_time bigint 该算子在数据库节点上的最小执行时间(ms)。 max_cpu_time bigint 该算子在数据库节点上的最大执行时间(ms)。 total_cpu_time bigint 该算子在数据库节点上的总执行时间(ms)。 cpu_skew_percent integer 数据库节点间执行时间的倾斜率。 warning text 主要显示如下几类告警信息: Sort/SetOp/HashAgg/HashJoin spill 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 父主题: Operator
  • OPERATOR_RUNTIME OPERATOR_RUNTIME视图显示当前用户正在执行的作业的算子相关信息,如表1所示。 表1 OPERATOR_RUNTIME的字段 名称 类型 描述 queryid bigint 语句执行使用的内部query_id。 pid bigint 后端线程id。 plan_node_id integer 查询对应的执行计划的plan node id。 plan_node_name text 对应于plan_node_id的算子的名称。 start_time timestamp with time zone 该算子处理第一条数据的开始时间。 duration bigint 该算子到结束时候总的执行时间(ms)。 status text 当前算子的执行状态,包括finished和running。 query_dop integer 当前算子执行时的并行度。 estimated_rows bigint 优化器估算的行数信息。 tuple_processed bigint 当前算子返回的元素个数。 min_peak_memory integer 当前算子在所有DN上的最小内存峰值(MB)。 max_peak_memory integer 当前算子在所有DN上的最大内存峰值(MB)。 average_peak_memory integer 当前算子在所有DN上的平均内存峰值(MB)。 memory_skew_percent integer 当前算子在各DN间的内存使用倾斜率。 min_spill_size integer 若发生下盘,所有DN上下盘的最小数据量(MB),默认为0。 max_spill_size integer 若发生下盘,所有DN上下盘的最大数据量(MB),默认为0。 average_spill_size integer 若发生下盘,所有DN上下盘的平均数据量(MB),默认为0。 spill_skew_percent integer 若发生下盘,DN间下盘倾斜率。 min_cpu_time bigint 该算子在所有DN上的最小执行时间(ms)。 max_cpu_time bigint 该算子在所有DN上的最大执行时间(ms)。 total_cpu_time bigint 该算子在所有DN上的总执行时间(ms)。 cpu_skew_percent integer DN间执行时间的倾斜率。 warning text 主要显示如下几类告警信息: Sort/SetOp/HashAgg/HashJoin spill 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 父主题: Operator
  • GLOBAL_OPERATOR_RUNTIME GLOBAL_OPERATOR_RUNTIME视图显示当前用户在所有CN节点上正在执行的作业的算子相关信息,如表1所示。 表1 GLOBAL_OPERATOR_RUNTIME的字段 名称 类型 描述 queryid bigint 语句执行使用的内部query_id。 pid bigint 后端线程id。 plan_node_id integer 查询对应的执行计划的plan node id。 plan_node_name text 对应于plan_node_id的算子的名称。 start_time timestamp with time zone 该算子处理第一条数据的开始时间。 duration bigint 该算子到结束时候总的执行时间(ms)。 status text 当前算子的执行状态,包括finished和running。 query_dop integer 当前算子执行时的并行度。 estimated_rows bigint 优化器估算的行数信息。 tuple_processed bigint 当前算子返回的元素个数。 min_peak_memory integer 当前算子在所有DN上的最小内存峰值(MB)。 max_peak_memory integer 当前算子在所有DN上的最大内存峰值(MB)。 average_peak_memory integer 当前算子在所有DN上的平均内存峰值(MB)。 memory_skew_percent integer 当前算子在各DN间的内存使用倾斜率。 min_spill_size integer 若发生下盘,所有DN上下盘的最小数据量(MB),默认为0。 max_spill_size integer 若发生下盘,所有DN上下盘的最大数据量(MB),默认为0。 average_spill_size integer 若发生下盘,所有DN上下盘的平均数据量(MB),默认为0。 spill_skew_percent integer 若发生下盘,DN间下盘倾斜率。 min_cpu_time bigint 该算子在所有DN上的最小执行时间(ms)。 max_cpu_time bigint 该算子在所有DN上的最大执行时间(ms)。 total_cpu_time bigint 该算子在所有DN上的总执行时间(ms)。 cpu_skew_percent integer DN间执行时间的倾斜率。 warning text 主要显示如下几类告警信息: Sort/SetOp/HashAgg/HashJoin spill 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 父主题: Operator
  • GLOBAL_OPERATOR_HISTORY GLOBAL_OPERATOR_HISTORY系统视图显示的是当前用户在数据库主节点上执行作业结束后的算子的相关记录,如表1所示。 表1 GLOBAL_OPERATOR_HISTORY的字段 名称 类型 描述 queryid bigint 语句执行使用的内部query_id。 pid bigint 后端线程id。 plan_node_id integer 查询对应的执行计划的plan node id。 plan_node_name text 对应于plan_node_id的算子的名称。 start_time timestamp with time zone 该算子处理第一条数据的开始时间。 duration bigint 该算子到结束时候总的执行时间(ms)。 query_dop integer 当前算子执行时的并行度。 estimated_rows bigint 优化器估算的行数信息。 tuple_processed bigint 当前算子返回的元素个数。 min_peak_memory integer 当前算子在数据库节点上的最小内存峰值(MB)。 max_peak_memory integer 当前算子在数据库节点上的最大内存峰值(MB)。 average_peak_memory integer 当前算子在数据库节点上的平均内存峰值(MB)。 memory_skew_percent integer 当前算子在数据库节点间的内存使用倾斜率。 min_spill_size integer 若发生下盘,数据库节点上下盘的最小数据量(MB),默认为0。 max_spill_size integer 若发生下盘,数据库节点上下盘的最大数据量(MB),默认为0。 average_spill_size integer 若发生下盘,数据库节点上下盘的平均数据量(MB),默认为0。 spill_skew_percent integer 若发生下盘,数据库节点间下盘倾斜率。 min_cpu_time bigint 该算子在数据库节点上的最小执行时间(ms)。 max_cpu_time bigint 该算子在数据库节点上的最大执行时间(ms)。 total_cpu_time bigint 该算子在数据库节点上的总执行时间(ms)。 cpu_skew_percent integer 数据库节点间执行时间的倾斜率。 warning text 主要显示如下几类告警信息: Sort/SetOp/HashAgg/HashJoin spill 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 父主题: Operator