华为云用户手册

  • wdr_snapshot_retention_days 参数说明:设置性能快照数据保留的最大天数。 参数类型:SIGHUP 取值范围:整型,1~15,单位为天。 默认值:8 开启enable_wdr_snapshot的情况下,保存wdr_snapshot_retention_days天数的快照数据会被自动清除。 该参数取值应与可用磁盘空间相对应,取值越大,需要的磁盘空间越大。 对该参数的修改不会立即生效,等到下一次自动创建快照时才会清除过期快照数据。
  • instr_unique_sql_timeout 参数说明:控制Unique SQL的存在时间。StatCollector后台线程每小时对所有的Unique SQL做一次检查,如果发现某个Unique SQL超过instr_unique_sql_timeout小时未被执行,则将其删除。(该参数在8.1.2及以上版本支持。) 参数类型:SIGHUP 取值范围:整型,0~ INT_MAX,单位为小时。 值为0时,表示不删除过期的Unique SQL。 值大于0时,发现超过instr_unique_sql_timeout小时未执行Unique SQL则删除。 默认值:24
  • track_sql_count 参数说明:控制对每个会话中当前正在执行的SELECT、INSERT、UPDATE、DELETE、MERGE INTO语句是否进行计数统计,对SELECT、INSERT、UPDATE、DELETE语句的响应时间进行统计,以及对DDL、DML、DCL语句进行计数的统计。 参数类型:SUSET 取值范围:布尔型 on表示开启统计功能。 off表示关闭统计功能。 默认值:on track_sql_count参数受track_activities约束: track_activities开启而track_sql_count关闭时,如果查询了gs_sql_count、pgxc_sql_count、gs_workload_sql_count、pgxc_workload_sql_count、global_workload_sql_count、gs_workload_sql_elapse_time、pgxc_workload_sql_elapse_time、或global_workload_sql_elapse_time视图,将会有LOG提示track_sql_count是关闭的。 track_activities和track_sql_count同时关闭,那么此时将会有两条LOG,分别提示track_activities是关闭的和track_sql_count是关闭的。 track_activities关闭而track_sql_count开启,此时将仅有LOG提示track_activities是关闭。 当参数关闭时,查询视图的结果为0行。
  • enable_wdr_snapshot 参数说明:控制是否启用性能视图快照功能。开启后,GaussDB(DWS)会定期对部分系统性能视图创建快照并持久化保存,并接受手动创建快照请求。 参数类型:SIGHUP 取值范围:布尔型 on表示开启快照功能。 off表示关闭快照功能。 默认值:off 如果enable_wdr_snapshot参数关闭,执行create_wdr_snapshot函数手动创建视图会提示GUC参数未打开。 如果在快照的过程中修改enable_wdr_snapshot参数,正在创建的快照不受影响,下次定期或手动创建快照时生效。
  • DBA_TRIGGERS DBA_TRIGGERS视图存储关于数据库内的触发器信息。需要有系统管理员权限才可以访问。 名称 类型 描述 trigger_name character varying(64) 触发器名称。 table_name character varying(64) 定义触发器的表的名称。 table_owner character varying(64) 定义触发器的表的所有者。 父主题: 系统视图
  • 导出文件的命名规则 GaussDB(DWS)向OBS导出数据的文件命名规则如下: 从DN节点导出数据时,以segment的格式存储在OBS服务中,文件命名规则为“表名称_节点名称_segment.n”。这里的“n”是从0开始按照自然数0、1、2、3递增。 例如,表t1在datanode3里面的数据导出成文件“t1_datanode3_segment.0”、“t1_datanode3_segment.1”等等,以此类推。 对于来自不同集群或不同数据库的数据,建议用户可以将数据导出到不同的OBS桶或者同一个OBS桶的不同路径下。 每个segment可以存储的最大数据为1GB,并且不能切断元组。如果segment超过1GB,超过1GB的数据会作为第二个segment进行存储。 例如: datanode3节点将表(t1)导出到OBS时,一个segment里面已经存储了100条元组,大小是1023MB,如果再插入一条5MB的元组,大小就变成1028MB了,此时会以1023MB生成一个“t1_datanode3_segment.0”保存到OBS服务中,新插入的第101条元组作为下一个“t1_datanode3_segment.1”保存到OBS服务中。 导出Hash分布表时,每个DataNode节点生成的segment数量和集群的DataNode节点数无关,而是取决于每个DataNode节点上存储的数据量。按照Hash方式存储在各个DataNode节点上的数据分布不一定均匀。 例如,一个有6个DataNode节点的集群,DataNode1到DataNode6分别有1.5GB、0.7GB、0.6GB、0.8GB、0.4GB、0.5GB的数据,则导出时会生成7个OBS segment文件,其中DataNode1会生成1GB和0.5GB两个segment文件。
  • 相关原理 下面分别从以下两类表介绍从集群导出数据到OBS的原理。 Hash分布表:在建表语句中指定了DISTRIBUTE BY HASH (Column_Name)的表。 对于Hash分布表而言,在存储表数据时,采用的是散列(Hash)方式的存储原理,如图1所示,图中以将表(T2)导出到OBS为例。 在存储表数据时,将表(T2)中指定的Hash字段(col2)进行Hash运算后,生成相应的Hash值(value),根据DN与Hash值的映射关系,将该元组分发到相应的DN上进行存储。 在导出数据到OBS时,每一个存储了导出表的(T2)数据的DN会直接向OBS导出属于自己的数据文件。多个节点将并行导出原始数据。 图1 Hash分布原理 Replication表:在建表语句中指定了DISTRIBUTE BY REPLICATION的表。 Replication表在GaussDB(DWS)集群的每个节点上都会存储一份完整的表数据。因此,在导出数据到OBS时,GaussDB(DWS)只会随机选择一个DN节点向OBS导出数据。
  • 导出流程 图2 并行导出流程 表1 流程说明 流程 说明 子任务 规划导出数据 创建OBS桶,并在桶中创建导出后的数据文件的存放目录。 详细请参见规划导出数据。 - 创建OBS外表。 创建外表用于帮助OBS指定的待导出数据文件。外表中保存了数据源文件导出后的位置、文件格式、编码格式、数据间的分隔符等信息。 详细内容请参见创建OBS外表。 - 执行导出数据。 在创建好外表后,通过INSERT语句,将数据快速、高效地导出到数据文件中。 详细内容请参见执行导出。 -
  • 相关概念 数据源文件:存储有数据的TEXT、CSV、ORC文件。 OBS:对象存储服务,是一种可存储文档、图片、影音视频等非结构化数据的云存储服务。从GaussDB(DWS)并行导出数据时,数据对象放置在OBS服务器上。 桶(Bucket):对OBS中的一个存储空间的形象称呼,是存储对象的容器。 对象存储是一种非常扁平化的存储方式,桶中存储的对象都在同一个逻辑层级,去除了文件系统中的多层级树形目录结构。 在OBS中,桶名必须是全局唯一的且不能修改,即用户创建的桶不能与自己已创建的其他桶名称相同,也不能与其他用户创建的桶名称相同。每个桶在创建时都会生成默认的桶ACL(Access Control List),桶ACL列表的每项包含了对被授权用户授予什么样的权限,如读取权限、写入权限、完全控制权限等。用户只有对桶有相应的权限,才可以对桶进行操作,如创建、删除、显示、设置桶ACL等。 一个用户最多可创建100个桶,但每个桶中存放的总数据容量和对象/文件数量没有限制。 对象:是存储在OBS中的基本数据单位。用户上传的数据以对象的形式存储在OBS的桶中。对象的属性包括名称Key,Metadata,Data。 通常,将对象等同于文件来进行管理,但是由于OBS是一种对象存储服务,并没有文件系统中的文件和文件夹概念。为了使用户更方便进行管理数据,OBS提供了一种方式模拟文件夹。通过在对象的名称中增加“/”,如tpcds1000/stock.csv,tpcds1000可以等同于文件夹,stock.csv就可以等同于文件名,而对象名称(key)仍然是tpcds1000/stock.csv、对象的内容就是stock.csv数据文件的内容。 Key:对象的名称(键),为经过UTF-8编码的长度大于0且不超过1024的字符序列,一个桶里的每个对象必须拥有唯一的对象键值。用户可使用桶名+对象名来存储和获取对应的对象。 Metadata:对象元数据,用来描述对象的信息。元数据又可分为系统元数据和用户元数据。这些元数据以键值对(Key-value)的形式随http头域一起上传到OBS系统。 系统元数据由OBS系统产生,在处理对象数据时使用。系统元数据包括:Date, Content-length, last-modify, Content-MD5等。 用户元数据由用户上传对象时指定,是用户自己对对象的一些描述信息。 Data:对象的数据内容,OBS对于数据的内容是无感知的,即认为对象内的数据为无状态的二进制数据。 外表:用于识别数据源文件中的数据。外表中保存了数据源文件的位置、文件格式、存放位置、编码格式、数据间的分隔符等信息。
  • PG_EXCEPT_RULE PG_EXCEPT_RULE系统表存储关于异常规则的信息。一个异常规则集合由多个名称相同的异常规则组成。 表1 PG_EXCEPT_RULE 名称 类型 描述 name name 异常规则集合的名称。 rule name 该异常规则集中某一个具体规则类型或者触发当前异常规则集时采取的操作。(如blocktime/elapsedtime/spillsize等类型或者触发异常规则后的操作) value name 该异常规则对应的规则阈值。如果是触发异常规则后的操作,那么该字段为abort。 父主题: 系统表
  • GS_OBS_LATENCY GS_OBS_LATENCY记录logtime之前10分钟内OBS的平均延迟信息,延迟数据是根据相关OBS的操作进行估算的结果。该视图仅8.2.0及以上集群版本支持。 表1 GS_OBS_LATENCY字段 名称 类型 描述 nodename text 集群节点。 hostname text 主机节点。 latency_ms double precision logtime之前10分钟内OBS的平均延迟,单位ms。 reqcount bigint logtime之前10分钟内OBS的请求次数。 logtime timestamp with time zone 记录延迟信息的时刻。 父主题: 系统视图
  • GS_BLOCKLIST_QUERY GS_BLOCKLIST_QUERY视图用于查询作业黑名单信息和异常信息,此视图是由系统表GS_BLOCKLIST_QUERY和GS_WLM_SESSION_INFO关联所得,同时对查询结果进行了去重筛选,因此在GS_WLM_SESSION_INFO表较大的情况下,查询可能需要消耗较长时间。 表1 GS_BLOCKLIST_QUERY视图字段 名字 类型 引用 描述 unique_sql_id bigint - 基于查询解析树生成的查询唯一ID。 block_list boolean - 查询作业是否属于黑名单。 except_num integer - 查询作业异常次数。 except_time timestamp - 查询作业最近一次异常时间。 query text - 执行的查询语句。 此视图仅限在gaussdb数据库中查询,其它数据库中查询会直接报错。 通常对于DML语句,在计算Unique SQL ID的过程中会忽略常量值。但对于DDL、DCL以及设置参数等语句,常量值不可以忽略。因此一个unique_sql_id可能会对应一个或多个查询。 父主题: 系统视图
  • 基于JDBC开发 JDBC(Java Database Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问接口,应用程序可基于它操作数据。 GaussDB(DWS)库提供了对JDBC 4.0特性的支持,需要使用JDK1.6及以上版本编译程序代码,不支持JDBC桥接ODBC方式。 JDBC包与驱动类 开发流程 加载驱动 连接数据库 执行SQL语句 处理结果集 关闭连接 示例:常用操作 示例:重新执行应用SQL 示例:通过本地文件导入导出数据 示例:从MySQL向GaussDB(DWS)进行数据迁移 示例:应用端加工RoaringBitmap结果集并入库GaussDB(DWS) JDBC接口参考 父主题: 教程:使用JDBC或ODBC开发
  • comm_debug_mode 参数说明:TCP代理通信库或SCTP通信库debug模式开关,该参数设置是否打印通信层详细日志,session级别生效。 设置为on时,打印日志量较大,会增加额外的overhead并降低数据库性能,仅在调试时打开,打开后及时关闭。 参数类型:USERSET 取值范围:布尔型 on表示打印通信库详细debug日志。 off表示不打印通信库详细debug日志。 默认值:off
  • comm_timer_mode 参数说明:TCP代理通信库或SCTP通信库timer模式开关,该参数设置是否打印通信层各阶段时间桩,session级别生效。 设置为on时,打印日志量较大,会增加额外的overhead并降低数据库性能,仅在调试时打开,打开后及时关闭。 参数类型:USERSET 取值范围:布尔型 on表示打印通信库详细时间桩日志。 off表示不打印通信库详细时间桩日志。 默认值:off
  • comm_cn_dn_logic_conn 参数说明:CN和DN间逻辑连接特性开关,重启集群生效。 参数类型:POSTMASTER 取值范围:布尔型 on/true表示CN和DN之间连接为逻辑链接,使用libcomm组件。 off/false表示CN和DN之间连接为物理连接,使用libpq组件。 如果CN设置comm_cn_dn_logic_conn为off,DN设置comm_cn_dn_logic_conn为on会导致集群不能正常通信,因此必须对该参数做CN和DN全局相同的配置,重启集群生效。 默认值:off
  • comm_client_bind 参数说明:通信库客户端发起连接时是否使用bind绑定指定IP。 参数类型:USERSET 取值范围:布尔型 on表示绑定指定IP。 off表示不绑定指定IP。 如果集群某一节点存在多个IP处于同一通信网段时,需设置为on。此时将绑定本地listen_addresses指定的IP发起通信,随机端口号不能重复使用,集群并发数量会受到可用随机端口号数量的限制。 默认值:off
  • enable_stateless_pooler_reuse 参数说明:pooler复用切换开关,重启集群生效。 参数类型:POSTMASTER 取值范围:布尔型 on/true表示使用pooler复用模式。 off/false表示关闭pooler复用模式。 CN和DN需要同步设置。如果CN设置enable_stateless_pooler_reuse为off,DN设置enable_stateless_pooler_reuse为on会导致集群不能正常通信,因此必须对该参数做CN和DN全局相同的配置,重启集群生效。 默认值:off
  • comm_max_stream 参数说明:TCP代理通信库或SCTP通信库支持的最大并发数据流数。该参数值必须大于并发数*每并发平均stream算子数*(smp的平方)。 参数类型:POSTMASTER 取值范围:整型,1~60000 默认值:通过公式min(query_dop_limit * query_dop_limit * 2 * 20, max_process_memory(字节) * 0.025 /(最大CN数+当前DN数) / 260)计算,小于1024按照1024取值,其中,query_dop_limit = 单个机器CPU核数 / 单个机器DN数。 不建议该参数值设置过大,因为comm_max_stream会占用内存(占用内存=256byte*comm_max_stream*comm_max_datanode),若并发数据流数过大,查询较为复杂及smp过大都会导致内存不足。 如果comm_max_datanode参数值较小,进程内存充足,可以适当将comm_max_stream值调大。
  • max_stream_pool 参数说明:设置stream线程池能够容纳stream线程的最大个数。该参数8.1.2及以上版本支持。 参数类型:SUSET 取值范围:整型,-1~INT_MAX,-1和0表示关闭stream线程池。 默认值:65535 支持实时减少线程池中stream线程的个数;若增大该参数值,stream线程的个数由业务驱动向上增长。 通常情况下不建议调整该参数值,因为stream线程池有自动清理功能。 如果stream空闲线程过多造成内存占用,可以调小此值以节约内存。
  • 变更配置后对计费的影响 当前包年的工业工作台服务的规格不满足您的业务需要时,您可以发起变更规格操作,变更时系统将按照如下规则为您计算变更费用: 资源升配:新规格价格高于老规格价格,此时您需要支付新老配置的差价。 资源降配:资源降配会影响工作台配置,MIW暂不支持资源降配。 这里以资源升配且无任何优惠的场景为例,假设您在2023/04/08购买了专业版基础型实例,购买时长为1年,计划在2023/04/18变更规格为专业版标准型实例。旧配置价格为14000元/年,新配置价格为54000元/年。计算公式如下: 升配费用=新配置价格*剩余周期-旧配置价格*剩余周期 公式中的剩余周期为每个自然月的剩余天数/对应自然月的最大天数。本示例中,剩余周期=12(4月份剩余天数)/ 30(4月份最大天数)+ 8(5月份剩余天数)/ 31(5月份最大天数)+11(周期剩余月份)=11.6581,代入公式可得升配费用=54000*11.6581÷12-14000*11.6581÷12=33860.33(元) 费用计算结果保留小数点后两位,第三位四舍五入。如遇四舍五入后不足¥0.01,则按¥0.01展示。 实例规格和扩容包单价以售卖页的价格为准。 更多信息请参见变更资源规格费用说明。
  • 到期后影响 图2描述了工业工作台服务各个阶段的状态。购买后,在计费周期内服务正常运行,此阶段为有效期;服务到期而未续费时,将陆续进入宽限期和保留期。 图2 包年MIW生命周期 到期预警 包年工业工作台服务在到期前第7天内,系统将向用户推送到期预警消息。预警消息将通过邮件、短信和站内信的方式通知到华为云帐号的创建者。 到期后影响 当您的包年工业工作台服务到期未续费,首先会进入宽限期,资源状态变为“已过期”。如果您在宽限期内仍未续费工业工作台服务,那么就会进入保留期,资源状态变为“已冻结”,您将无法对处于保留期的包年资源执行任何操作。 保留期到期后,若包年工业工作台服务资源仍未续费,那么服务将无法访问,数据无法恢复。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。 关于续费的详细介绍请参见续费概述。
  • 适用场景 包年计费模式需要用户预先支付一定时长的费用,适用于长期、稳定的业务需求。以下是一些适用于包年计费模式的业务场景: 稳定业务需求:对于长期运行且资源需求相对稳定的业务,如企业官网、在线商城、博客等,包年计费模式能提供较高的成本效益。 长期项目:对于周期较长的项目,如科研项目、大型活动策划等,包年计费模式可以确保在整个项目周期内资源的稳定使用。 业务高峰预测:如果能预测到业务高峰期,如电商促销季、节假日等,可提前购买包年资源以应对高峰期的需求,避免资源紧张。 数据安全要求高:对于对数据安全性要求较高的业务,包年计费模式可确保资源的持续使用,降低因资源欠费而导致的数据安全风险。
  • 计费示例 假设您在2023/03/08 15:50:04购买了包年的工业工作台服务,购买时长为一年,并在到期前手动续费1年,则: 第一个计费周期为:2023/03/08 15:50:04 ~ 2024/03/08 23:59:59 第二个计费周期为:2024/03/08 23:59:59 ~ 2025/03/08 23:59:59 您需要为每个计费周期预先付费,计费公式如表2所示,其中扩容包为可选项。 表2 计费公式 实例版本 计费公式 专业版基础型 (实例规格单价+订购扩容包单价 * 扩容包数量) * 购买时长 专业版标准型 (实例规格单价+订购扩容包单价 * 扩容包数量) * 购买时长 专业版增强型 实例规格单价 * 购买时长
  • 适用计费项 以下计费项支持包年。 表1 适用计费项 计费项 详细规格 计费模式 专业版基础型 支持用户数100个。 提供IM即时消息 、 日历 、 通讯录 、 审批 、 待办中心 、 新闻资讯 、 企业公告等办公应用。 提供统一组织 、 统一账号 、 统一授权 、 统一登录 、 应用分组管理 、 支持企业在华为云的自建应用对接。 支持默认门户和定制门户。 支持集成流编排和运行 (40条流)。 包年 专业版标准型 支持用户数500个。 提供IM即时消息 、 日历 、 通讯录 、 审批 、 待办中心 、 新闻资讯 、 企业公告等办公应用。 提供统一组织 、 统一账号 、 统一授权 、 统一登录 、 应用分组管理 、 支持企业在华为云的自建应用对接。 支持默认门户和定制门户。 支持集成流编排和运行 (80条流)。 包年 专业版增强型 支持用户数1000个。 提供IM即时消息 、 日历 、 通讯录 、 审批 、 待办中心 、 新闻资讯 、 企业公告等办公应用。 提供统一组织 、 统一账号 、 统一授权 、 统一登录 、 应用分组管理 、 支持企业在华为云的自建应用对接。 支持默认门户和定制门户。 支持集成流编排和运行 (200条流)。 包年 扩容包 1个扩容包包含100个用户数和10条集成流。 说明: 扩容包不可单独购买。当实例规格为专业版基础型和专业版标准型时,支持订购扩容包。 包年 假设您计划购买开天工业工作台服务,在购买工作台页面底部,您将看到所需费用的明细,如图1所示。 图1 配置费用示例 配置费用包括以下部分: 实例版本套餐:根据所选套餐和购买时长计算的费用。 扩容包:根据是否购买扩容包、扩容包数量和购买时长计算的费用。 仅专业版基础型和专业版标准型支持订购扩容包,且扩容包的购买时长与实例版本套餐购买时长一致。
  • 续费相关的功能 包年开天工业工作台服务续费相关的功能如表1所示。 表1 续费相关的功能 功能 说明 手动续费 包年开天工业工作台服务从购买到被自动删除之前,您可以随时的MIW总览页面为开天工业工作台服务续费,以延长开天工业工作台服务的使用时间。 自动续费 开通自动续费后,开天工业工作台服务会在每次到期前自动续费,避免因忘记手动续费而导致资源被自动删除。 在开天工业工作台服务生命周期的不同阶段,您可以根据需要选择一种方式进行续费,具体如图1所示。 图1 MIW服务生命周期 开天工业工作台服务从购买到到期前,处于正常运行阶段,资源状态为“运行中”。 到期后,资源状态变为“已过期”。 到期未续费时,开天工业工作台服务首先会进入宽限期,宽限期到期后仍未续费,资源状态变为“已冻结”。 超过宽限期仍未续费将进入保留期,如果保留期内仍未续费,资源将被自动删除。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。 在开天工业工作台服务到期前均可开通自动续费,到期前7日凌晨3:00首次尝试自动续费,如果扣款失败,每天凌晨3:00尝试一次,直至开天工业工作台服务到期或者续费成功。到期前7日自动续费扣款是系统默认配置,您也可以根据需要修改此扣款日。
  • 计费说明 开天工业工作台的计费项由实例规格费用、购买时长、扩容包数量和扩容包费用组成。具体内容如表1所示。 标 * 的计费项为必选计费项。 表1 开天工业工作台计费项 计费项 计费项说明 适用的计费模式 计费公式 * 实例规格 开天工业工作台提供的实例版本有:基础版、专业版基础型、专业版标准型、专业版增强型,您可以根据实际业务需要按需选择,实例详细规格可参考表1。 其中基础版为免费使用版本,免费使用6个月后,用户可根据实际情况选择专业版基础型、专业版标准型或专业版增强型。 如果您当前使用的实例版本不能满足需要,工业工作台服务支持变更配置,例如从“专业版基础型”升级到“专业版标准型”,对现有业务没有影响。 包年 实例规格单价 * 购买时长 实例规格单价以售卖页的价格为准。 扩容包 1个扩容包包含100个用户数和10条集成流,您可以根据实际业务需要按需选择。 扩容包不可单独购买。当实例规格为专业版基础型和专业版标准型时,支持订购扩容包,扩容包购买时长与套餐一致。 包年 扩容包单价 * 购买时长* 购买个数 扩容包单价以售卖页的价格为准。
  • 计费概述 通过阅读本文,您可以快速了解开天工业工作台(MIW)的计费模式、计费项、续费、欠费等主要计费信息。 计费模式 工业工作台提供包年这一种计费模式。包年是一种预付费模式,即先付费再使用,按照订单的购买周期进行结算,因此在购买之前,您必须确保帐户余额充足。关于包年计费模式的详细介绍请参见计费模式概述。 计费项 工业工作台的计费项由实例版本套餐费用、扩容包费用组成。关于计费项的详细介绍,请参考计费项。 变更套餐版本 在购买开天工业工作台服务后,如果发现当前规格套餐无法满足业务需求,您可以变更套餐规格。详情请参见变更计费模式。 续费 包年服务在到期后会影响工作台的正常使用。如果您想继续使用工业工作台,需要在规定的时间内为工业工作台进行续费,否则资源将会自动释放,数据也可能会丢失。续费包括手动续费和自动续费两种方式,您可以根据需求选择。了解更多关于续费的信息,请参见续费概述。 欠费 对于包年的当工业工作台服务,用户已预先支付了版本费用,因此在账号出现欠费的情况下,已购买的应用平台版本仍可用。详细介绍请参见欠费说明。 停止计费 当工业工作台不再使用时,可以将他们退订或删除,从而避免继续收费。详细介绍请参见停止计费。
  • 背景信息 在购买开天工业工作台服务后,如果发现当前规格套餐无法满足业务需求,您可以变更套餐规格。当需要变更到高规格套餐时,需补齐版本差价,剩余服务周期按照剩余天数(不含闰年的2.29号)/365 进行计算(变更当天不算) ,续费时按照变更后的版本进行续费。 升级版本费用 = 升级后版本价格 * 剩余周期 - 未升级版本价格 * 剩余周期 剩余周期计算:按照实际剩余有效期进行换算 示例:2023/11/1客户购买了3年的开天工业工作台服务套餐,有效期截止到2026/11/1,客户在2024/5/1发生变更版本,则剩余周期=2024年剩余周期+2025年剩余周期+2026年剩余周期=244/365+1+305/365=2.50(年)。
  • 单模型性能调优AOE 使用AOE工具可以在模型转换阶段对于模型运行和后端编译过程进行执行调优,注意AOE只适合静态shape的模型调优。在AOE调优时,容易受当前缓存的一些影响,建议分两次进行操作,以达到较好的优化效果(第一次执行生成AOE的知识库,在第二次使用时可以复用)。在该场景中,AOE对text_encoder等模型提升效果不大,性能主要瓶颈点在unet模型中,我们主要对unet模型做调优,整体的操作步骤如下: 转换前先清理缓存,避免转换时的影响。 #shell # 删除已有的aoe知识库,或者自己备份一下 rm -rf /root/Ascend/latest/data/aoe # 删除编译缓存 rm -rf /root/atc_data/* 在配置文件中启用AOE自动调优。 配置unet.ini,开启aoe调优 (aoe_mode + op_select_impl_mode)。 #unet.ini [ascend_context] input_shape=sample:[2,4,64,64];timestep:[1];encoder_hidden_states:[2,77,768] input_format=NCHW aoe_mode="subgraph tuning, operator tuning" op_select_impl_mode=high_performance 模型转换时指定AOE调优配置文件。 #shell # 模型转换时指定AOE调优配置文件 converter_lite --modelFile=model.onnx --outputFile=${model_path}/${output_model_name} --configFile=unet.ini --fmk=ONNX --saveType=MINDIR --optimize=ascend_oriented 启动AOE调优后,模型转换时长会延长到数小时,因为其中包含了AOE的转化过程耗时较长,也可以指定调优时间,一般情况下时间越长效果会越好,一般10h以内即可,推荐在后台执行。调优完成后,默认将AOE生成的知识库保存在“/root/Ascend/latest/data/aoe”路径下,同时会在${model_path} 路径下输出对应的mindir模型,由于当前模型并没有吸收知识库信息,所以性能不佳,因此需要在保留AOE知识库的情况下,再次进行转换,以达到较优性能。 删除编译缓存atc_data。 注意相比第一次清除缓存操作,本次保留了AOE知识库。 #shell # 删除编译缓存 rm -rf /root/atc_data/* 再次执行模型转换命令,确保AOE能够命中知识库。 配置config.ini,关闭AOE 调优: # unet.ini [ascend_context] input_shape=sample:[2,4,64,64];timestep:[1];encoder_hidden_states:[2,77,768] input_format=NCHW 再次执行模型转换命令 (这次运行关闭了AOE,速度会快很多) #shell converter_lite --modelFile=model.onnx --configFile=unet.ini --fmk=ONNX --saveType=MINDIR --optimize=ascend_oriented --outputFile=${model_path}/${output_model_name} 此时,${model_path}下面会有对应的mindir模型,包含了aoe知识库信息。使用benchmark工具测试新生成的mindir模型性能,同aoe调优前的模型进行对比,可以看到模型性能有所提升。 #shell benchmark --modelFile=${model_path}/${output_model_name}.mindir --device=Ascend --numThreads=1 --parallelNum=1 --workersNum=1 --warmUpLoopCount=100 --loopCount=100 图1 调优前模型 图2 调优后模型 AOE优化成功的mindir已经融合了优化的知识库,是一个独立可用的模型。即使AOE知识库删除,不影响该mindir的性能。可以备份一下这个模型优化产生的知识库,以后需要的话再使用。 父主题: 性能调优
共100000条