云服务器内容精选
-
注意事项 数据库调优是一个复杂和细致的过程,需熟悉数据库系统的内部工作原理和相关技术。它需要综合考虑硬件、软件、查询、配置和数据结构等多个方面的因素,以达到最佳的性能和效率。因此,要求调优人员应对系统软件架构、软硬件配置、数据库配置参数、并发控制、查询处理和数据库应用有广泛而深刻的理解。 性能调优过程有时需要重启集群,可能会中断当前业务。建议在业务低峰期进行需要重启集群的性能调优操作,避免业务异常中断。
-
调优流程 调优流程如图1所示。 图1 GaussDB (DWS)性能调优流程 调优各阶段说明,如表1所示。 表1 GaussDB(DWS)性能调优流程说明 阶段 描述 性能诊断 获取集群各节点的CPU、内存、I/O和网络资源使用情况,确认这些资源是否已被充分利用,是否存在瓶颈点。 系统调优 进行操作系统级以及数据库系统级的调优,更充分地利用机器的CPU、内存、I/O和网络资源,避免资源冲突,提升整个系统查询的吞吐量。 SQL调优 审视业务所用SQL语句是否存在可优化空间,包括: 通过ANALYZE语句生成表统计信息:ANALYZE语句可收集与数据库中表内容相关的统计信息,统计结果存储在系统表PG_STATISTIC中。执行计划生成器会使用这些统计数据,以确定最有效的执行计划。 分析执行计划:EXPLAIN语句可显示SQL语句的执行计划,EXPLAIN PERFORMANCE语句可显示SQL语句中各算子的执行时间。 查找问题根因并进行调优:通过分析执行计划,找到可能存在的原因,进行针对性的调优,通常为调整数据库级SQL调优参数。 编写更优的SQL:介绍一些复杂查询中的中间临时数据缓存、结果集缓存、结果集合并等场景中的更优SQL语法。
-
性能调优总体原则和思路 PyTorch在昇腾AI处理器的加速实现方式是以算子为粒度进行调用(OP-based),即通过Python与C++调用CANN层接口Ascend Computing Language(AscendCL)调用一个或几个亲和算子组合的形式,代替原有GPU的实现方式,具体逻辑模型请参考PyTorch自动迁移。 在PyTorch模型迁移后进行训练的过程中,CPU只负责算子的下发,而NPU负责算子的执行,算子下发和执行异步发生,性能瓶颈在此过程中体现。在PyTorch的动态图机制下,算子被CPU逐个下发到NPU上执行。一方面,理想情况下CPU侧算子下发会明显比NPU侧算子执行更快,此时性能瓶颈主要集中在NPU侧;另一方面,理想情况下NPU侧算子计算流水线一直执行,不会出现NPU等待CPU算子下发即NPU空转的场景,如果存在,则CPU侧算子下发存在瓶颈。 图1 Host算子下发和Device算子执行 综上所述,性能优化的总体原则为:减少Host算子下发时间、减少Device算子执行时间。 训练代码迁移完成后,如存在性能不达标的问题,可参考下图所示流程进行优化。建议按照单卡、单机多卡、多机多卡的流程逐步做性能调优。 图2 性能调优总体思路 为了便于用户快速进行迁移调优,降低调优门槛,ModelArts提供了MA-Adivisor性能自动诊断工具。用户采集性能profiling数据后,可通过该工具自动扫描profiling数据,工具分析完数据后会给出可能的性能问题点及调优建议,用户可以根据调优建议做相应的修改适配。目前该工具对CV类模型给出的调优建议较多,LLM类建议稍少,但是总体都有性能提升,实测大约可提升10%~30%的性能,并且已经在多个迁移性能调优项目中实际应用。 父主题: PyTorch迁移性能调优
-
使用Advisor工具分析生成调优建议 关于Advisor使用及安装过程请参见昇腾社区Gitee。最后生成导出的各类场景的建议包含以下两种: Terminal日志信息的概览建议。 包含Detail信息及修改示例的HTML信息。 按照建议信息做如下修改: 亲和优化器使能,在train.py中修改优化器为apex混合精度模式下的DDP优化方式(修改点:注释第161和167行,增加第168~170行)。 二进制调优使能,减少算子编译耗时,在train.py头文件导入之后添加 (修改点:增加第37行)。 torch_npu.npu.set_compile_mode(jit_compile=False) AICPU算子调优 ,Double类型输入切换成为Float减少cast算子调用耗时,修改diffusion/gaussian_diffusion.py (修改点:注释第871行,增加第872行)。 父主题: 性能调优
-
环境准备 迁移环境准备有以下两种方式: 表1 迁移环境准备方式 方式 说明 ModelArts Notebook 该环境为在线调试环境,主要面向演示、体验和快速原型调试场景。 环境开通指导请参考Notebook环境创建。 ModelArts Lite DevServer 该环境为裸机开发环境,主要面向深度定制化开发场景。 环境开通指导请参考DevServer资源开通;环境配置指导请参考Snt9B裸金属服务器环境配置指南。 本文基于ModelArts Lite DevServer进行操作,请参考上表说明在贵阳一环境开通和配置指导完成裸机和容器开发初始化配置。 镜像地址为swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_2_1_ascend: pytorch_2.1.0-cann_8.0.rc2-py_3.9-hce_2.0.2312-aarch64-snt9b-20240727152329-0f2c29a。 请注意业务基础镜像选择Ascend+PyTorch镜像。
-
场景介绍 DiT(Diffusion Transformers)模型是一种将Transformer架构引入扩散模型的新方法。传统的扩散模型通常使用U-Net架构,而DiT模型则用Transformer替代了U-Net,处理图像生成和去噪等任务。核心思想是通过Transformer的自注意力机制来捕捉序列中的依赖关系,从而提高生成图像的质量。研究表明,具有较高GFLOPs的DiT模型在图像生成任务中表现更好,尤其是在ImageNet 512×512和256×256的测试中,DiT-XL/2模型实现了2.27的FID值。 下文以Dit模型为例,介绍如何在昇腾设备上如何进行模型迁移,精度及性能调优。
-
源端抽取慢 检查源端负载是否已到达源端数据源上限。优先查看源端数据源的监控指标,查看CPU、内存、IO等参数是否处于高负载状态。 在排除源端负载的情况下,如果源端是Mysql\Oracle\SqlServer\PostGres\OpenGauss等的全量+增量作业且作业处于全量抽取阶段,或者Kafka\hudi等数据源抽取速度慢,请优先尝试加大作业并发数,以提高作业的并发抽取速率。 Mysql\Oracle\SqlServer\PostGres\OpenGauss等关系型数据为保证事务有序,在增量阶段是单并发抽取,加大并发一般不会提升抽取性能。 如果第2步也无法有效提升性能,请参考对应链路性能调优文档尝试进行参数优化。 如果上述步骤仍然无法提升作业速度,请联系技术支持人员协助解决。
-
目的端写入慢 检查目的端负载是否已达到目的端数据源上限。优先查看目的端数据源的监控指标,查看CPU、内存、IO等参数是否处于高负载状态。 在排除目的端负载的情况下,加大作业并发,以提高写入速度。 如果第2步也无法有效提升性能,请根据源端抽取慢排查源端的性能因素。 如果排除了源端问题的情况下,请参考对应链路性能调优文档尝试进行参数优化。 如果上述步骤仍然无法提升作业速度,请联系技术支持人员协助解决。
-
参数调优 数据库参数是数据库系统运行的关键配置信息,设置不合适的参数值可能会影响业务。本文列举了一些重要参数说明。更多参数的详细说明请参见MongoDB官网。 如需通过控制台界面修改参数值,请参见修改DDS实例参数。 enableMajorityReadConcern 该参数表示读取数据时,是否需要从大多数节点获取一致的数据后才返回结果。 默认值为“false”,表示读取数据时,不需要从大多数节点获取一致数据后返回结果,即从单个节点上读取数据就可以返回结果。 该参数设为true的时候,表示读取数据时,需要从大多数节点获取一致数据后才返回结果。该操作会导致LAS文件过大,进而造成CPU过高和磁盘占用大。 在DDS中,不支持设置majority级别的readConcern。对于需要majorityReadConcern的场景,可以将WriteConcern设置为majority,表示数据写入到大多数节点了,这样也就保证了大多数节点的数据一致了。然后通过读取单个节点的数据,就能保证用户读到的数据已经写入到大多数节点,而这样的数据不会发生回滚,避免了脏读的问题。 MongoDB可以通过writeConcern来定制写策略,通过readConcern来定制读策略。 当指定readConcern级别为majority时,能保证用户读到的数据已经写入到大多数节点,而这样的数据不会发生回滚,避免了脏读的问题。 failIndexKeyTooLong 默认值为“true”。 该参数不支持修改,避免过长索引Key。 net.maxIncomingConnections 该参数表示dds mongos或mongod可接受的最大同时连接数量。该参数依赖于实例的规格,实例规格不同对应其默认值也不同。因此,此参数在用户未设置前显示为“default”,表示该参数随内存规格变化。 security.javascriptEnabled 默认值为“false”。 该参数表示是否允许mongod上执行JavaScript脚本。为了安全考虑,默认值为“false”,表示不允许mongod上执行JavaScript脚本,mapreduce、group等命令也将无法使用。 disableJavaScriptJIT 默认值为“true”。 该参数表示是否禁用JavaScriptJIT编译技术。JavaScriptJIT编译技术实现了即时 (JIT) 编译以提高运行脚本时的性能。 “disableJavaScriptJIT”默认值为“true”,表示禁用JavaScriptJIT编译技术。如果需要启用JavaScriptJIT编译技术,可以将“disableJavaScriptJIT”的值设置为“false”。 operationProfiling.mode 默认值为“slowOp”。 该参数表示数据库分析器的级别。 该参数支持如下取值: 默认值为“slowOp”,表示对于耗时超过慢查询阈值的操作,采集器采集数据。 取值为“off”,表示分析器关闭,不收集任何数据。 取值为“all”,表示采集器采集所有操作的数据。 operationProfiling.slowOpThresholdMs 默认值为“500”,单位为ms。 该参数表示慢查询的时间阈值,单位为毫秒,超过该阈值的操作将被认为是慢操作。 如无特殊需求,建议使用默认值500ms。 maxTransactionLockRequestTimeoutMillis 默认值“5”,取值范围为5~100,单位为ms。 该参数表示事务等待获取锁的时间,超过该时间则事务回滚。 父主题: 性能调优
-
查看连接信息 设置参数track_activities为on: SET track_activities = on; 当此参数为on时,数据库系统才会收集当前活动查询的运行信息。 通过以下SQL就能确认当前的连接用户、连接地址、连接应用、状态、是否等待锁、排队状态以及线程id。 1 SELECT usename,client_addr,application_name,state,waiting,enqueue,pid FROM PG_STAT_ACTIVITY WHERE DATNAME='数据库名称'; 回显如下: 1 2 3 4 5 6 usename | client_addr | application_name | state | waiting | enqueue | pid ---------+---------------+------------------+--------+---------+---------+----------------- leo | 192.168.0.133 | gsql | idle | f | | 139666091022080 dbadmin | 192.168.0.133 | gsql | active | f | | 139666212681472 joe | 192.168.0.133 | | idle | f | | 139665671489280 (3 rows) 中止某个会话连接(仅系统管理员有权限): 1 SELECT PG_TERMINATE_BACKEND(pid);
-
查看SQL运行信息 获取当前用户有权限查看的所有的SQL信息(若有管理员权限或预置角色权限可以显示和所有用户查询相关的信息): 1 SELECT usename,state,query FROM PG_STAT_ACTIVITY WHERE DATNAME='数据库名称'; 如果state为active,则query列表示当前执行的SQL语句,其他情况则表示为上一个查询语句;如果state字段显示为idle,则表明此连接处于空闲,等待用户输入命令。回显如下: 1 2 3 4 5 6 usename | state | query ---------+--------+--------------------------------------------------------------------------- leo | idle | select * from joe.mytable; dbadmin | active | SELECT usename,state,query FROM PG_STAT_ACTIVITY WHERE DATNAME='gaussdb'; joe | idle | GRANT SELECT ON TABLE mytable to leo; (3 rows)
-
解决方法 分析慢SQL日志以及CPU使用率指标来定位效率低的查询,再优化查询效率低的语句。 查看慢SQL日志来确定是否存在运行缓慢的SQL查询以及各个查询的性能特征(如果有),从而定位查询运行缓慢的原因。 查询SQL Server日志,请参见查询慢日志。 查看华为云关系型数据库实例的CPU使用率指标,协助定位问题。 请参见通过Cloud Eye监控。 创建只读实例专门负责查询。减轻主实例负载,分担数据库压力。 多表关联查询时,关联字段要加上索引。 尽量避免用select*语句进行全表扫描,可以指定字段或者添加where条件。
-
TaurusDB标准版数据库内存使用率过高怎么处理 对于用户核心业务相关的库 请扩容实例规格,具体请参见变更TaurusDB标准版实例的CPU和内存规格。 对于非用户核心业务相关的库 查看本地计算机的内存使用率,如果使用率曲线持续平缓,则无需处理。 对于用户核心业务相关但是数据库规格配置很高的库 在业务低峰期,将数据库参数“performance_schema”的值调整为“OFF”。 通过 CES 监控面板,观察实例的内存使用情况。具体请参见查看TaurusDB标准版实例监控指标。 如果实例的内存使用率仍持续保持较高: 请扩容实例规格。 调整数据库参数“innodb_buffer_pool_size”的值。参数建议值见表1,实际可修改的取值范围以控制台界面为准。 表1 不同内存规格对应的参数建议值 内存(GB) 5.7建议值 8.0建议值 2 536,870,912 Byte(512 MB) 536,870,912 Byte(512 MB) 4 1,073,741,824 Byte(1 GB) 1,073,741,824 Byte(1 GB) 8 4,294,967,296 Byte(4 GB) 5,368,709,120 Byte(5 GB) 16 8,589,934,592 Byte(8 GB) 9,663,676,416 Byte(9 GB) 32 22,548,578,304 Byte(21 GB) 21,474,836,480 Byte(20 GB) 64 47,244,640,256 Byte(44 GB) 47,244,640,256 Byte(44 GB) 128 94,489,280,512 Byte(88 GB) 94,489,280,512 Byte(88 GB) 192 146,028,888,064 Byte(136 GB) 146,028,888,064 Byte(136 GB) 256 193,273,528,320 Byte(180 GB) 193,273,528,320 Byte(180 GB) 384 300,647,710,720 Byte(280 GB) 300,647,710,720 Byte(280 GB) 512 412,316,860,416 Byte(384 GB) 412,316,860,416 Byte(384 GB) 768 618,475,290,624 Byte(576 GB) 618,475,290,624 Byte(576 GB) 1024 824,633,720,832 Byte(768 GB) 824,633,720,832 Byte(768 GB) 请根据业务实际情况,调整参数“innodb_buffer_pool_size”的值。 MySQL本身具有内存动态平衡机制,内存使用率在90%以下您可无需关注,同时建议内存使用率告警阈值设置不低于90%。 在业务运行中缓冲池内存会逐渐增大至“innodb_buffer_pool_size”的值,可通过监控指标“缓冲池利用率”查看缓冲池内存的增长趋势。 TaurusDB标准版的内存分配可划分为Engine层与Server层。 Engine层的内存包括InnoDB Buffer Pool、Log Buffer、Full Text Index Cache,其中InnoDB Buffer Pool为常驻内存,占用内存较大。 InnoDB缓冲池是一个内存区域,用于保存InnoDB表、索引和其他辅助缓冲区的缓存数据,可以通过参数“innodb_buffer_pool_size”定义缓冲池大小。 Server层的内存占用较高的包括Thread Cache、BinLog Cache、Sort Buffer、Read Buffer、Join Buffer等线程缓存,这类缓存非常驻内存,往往会随着连接关闭而释放。 以上内存的分配导致TaurusDB标准版实例运行时内存使用率在80%左右。 父主题: 性能调优
-
操作步骤 以下参数有如下两个配置入口: 服务器端配置 进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。具体操作请参考修改集群服务配置参数章节。 客户端配置 直接在客户端中修改相应的配置文件。 HDFS客户端配置文件路径:客户端安装目录/HDFS/hadoop/etc/hadoop/hdfs-site.xml。 Yarn客户端配置文件路径:客户端安装目录/HDFS/hadoop/etc/hadoop/yarn-site.xml。 MapReduce客户端配置文件路径:客户端安装目录/HDFS/hadoop/etc/hadoop/mapred-site.xml。 表1 多CPU内核设置 配置 参数 配置描述 节点容器槽位数 yarn.nodemanager.resource.memory-mb 参数解释:节点上YARN可使用的物理内存总量。单位:M。 默认值: MRS 3.x之前版本: 8192 MRS 3.x及之后版本: 16384 参数入口: MRS 3.x之前版本:需要在MRS控制台上进行配置。 MRS 3.x及之后版本:需要在 FusionInsight Manager系统进行配置。 参数配置组合决定了每节点任务(map、reduce)的并发数。 如果所有的任务(map/reduce)需要读写数据至磁盘,多个进程将会同时访问一个磁盘。这将会导致磁盘的IO性能非常的低下。为了改善磁盘的性能,请确保客户端并发访问磁盘的数不大于3。 最大并发的container数量应该为[2.5 * Hadoop中磁盘配置数 ]。 mapreduce.map.memory.mb 参数解释:map任务的内存限制。单位:MB。 默认值:4096 参数入口:需要在客户端进行配置,配置文件路径:客户端安装目录/HDFS/hadoop/etc/hadoop/mapred-site.xml。 mapreduce.reduce.memory.mb 参数解释:Reduce任务的内存限制。单位:MB。 默认值:4096 参数入口:需要在客户端进行配置,配置文件路径:客户端安装目录/HDFS/hadoop/etc/hadoop/mapred-site.xml。 Map输出与压缩 mapreduce.map.output.compress 参数解释:指定了Map任务输出结果可以在网络传输前被压缩。这是一个per-job的配置。 默认值:true 参数入口:需要在客户端进行配置,配置文件路径:客户端安装目录/HDFS/hadoop/etc/hadoop/mapred-site.xml。 Map任务所产生的输出可以在写入磁盘之前被压缩,这样可以节约磁盘空间并得到更快的写盘速度,同时可以减少至Reducer的数据传输量。需要在客户端进行配置。 在这种情况下,磁盘的IO是主要瓶颈。所以可以选择一种压缩率非常高的压缩算法。 编解码器可配置为Snappy,Benchmark测试结果显示Snappy是非常平衡以及高效的编码器。 mapreduce.map.output.compress.codec 参数解释:指定用于压缩的编解码器。 默认值:org.apache.hadoop.io.compress.Lz4Codec 参数入口:需要在客户端进行配置,配置文件路径:客户端安装目录/HDFS/hadoop/etc/hadoop/mapred-site.xml。 Spills mapreduce.map.sort.spill.percent 参数解释:序列化缓冲区中的软限制。一旦达到该限制,线程将在后台开始将内容溢出到磁盘。 默认值:0.8 参数入口:需要在客户端进行配置,配置文件路径:客户端安装目录/HDFS/hadoop/etc/hadoop/mapred-site.xml。 磁盘IO是主要瓶颈,合理配置“mapreduce.task.io.sort.mb”可以使溢出至磁盘的内容最小化。 数据包大小 dfs.client-write-packet-size 参数解释:配置项可以指定该数据包的大小。可以通过每个job进行指定。 默认值:262144 参数入口:需要在客户端进行配置,配置文件路径:客户端安装目录/HDFS/hadoop/etc/hadoop/hdfs-site.xml。 当HDFS客户端写数据至数据节点时,数据会被累积,直到形成一个包。这个数据包会通过网络传输。 数据节点从HDFS客户端接收数据包,然后将数据包里的数据单线程写入磁盘。当磁盘处于并发写入状态时,增加数据包的大小可以减少磁盘寻道时间,从而提升IO性能。 dfs.client-write-packet-size = 262144
-
如何提高TaurusDB标准版数据库的查询速度 可以参考如下建议: 如果产生了慢日志,可以通过查看慢日志来确定是否存在运行缓慢的SQL查询,以及各个查询的性能特征,从而定位查询运行缓慢的原因。查询TaurusDB标准版日志,请参见查看或下载TaurusDB标准版慢日志。 查看TaurusDB标准版实例的CPU使用率指标,协助定位问题。具体请参见查看TaurusDB标准版实例监控指标。 可以创建只读实例专门负责查询,减轻主实例负载,分担数据库压力。 如果是实例规格较小但负载过高,您可以提高CPU/内存规格,具体请参见变更TaurusDB标准版实例的CPU和内存规格。 多表关联查询时,关联字段要加上索引。 可以指定字段或者添加where条件进行查询,避免用select*语句进行全表扫描。 父主题: 性能调优
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格