存储节点CPU持续很高的原因可能有以下几点:
耗时过高的SQL:在SQL诊断页面排查是否存在执行效率低下的SQL语句,它们可能由于复杂的计算逻辑、处理大量数据或无条件JOIN导致CPU资源消耗过大。参考链接:SQL诊断
查询复杂度高:即使QPS(每秒查询数)较低,查询的复杂度也可能引发CPU使用率升高。通过SQL诊断工具进一步分析查询详情,识别并优化问题SQL。参考链接:SQL诊断
集群资源指标异常:
CPU平均使用率增高:这可能由查询、写入操作或异常Pattern导致。如Bad SQL(复杂计算、大数据量读取、多Stage、高CPU消耗);异常Pattern(数据读取量、CPU消耗、查询耗时异常);计算节点或存储节点中异常算子的CPU消耗增加;写入操作(如INSERT、UPDATE、DELETE等)导致的CPU使用率增高,尤其是超长主键、大规模DELETE或UPDATE操作、INSERT OVERWRITE批量写入、INSERT INTO SELECT短时间大量数据写入,以及Build任务等。参考链接:集群资源指标
CPU最大使用率倾斜:若CPU最大使用率与平均使用率差距大,可能存在任务处理不均匀的问题,如源表倾斜(数据分布不均)、中间数据倾斜(字段分布不均导致的重分布后计算节点资源消耗不均)。
统计信息收集过程:在默认运维时间(04:00-05:00),系统会全量扫描表以收集统计信息,此过程可能导致CPU负载过高。参考链接:统计信息功能与CPU负载
综上所述,存储节点CPU持续高可能是由于SQL性能问题、查询复杂度、集群内资源分配不均、特定写入操作,以及统计信息收集过程等因素所致。建议通过SQL诊断、查询优化、调整数据分布策略、关注写入操作优化及合理安排统计信息收集时间等方式进行针对性的性能调优。
此回答整理自钉群“云数据仓库ADB-开发者群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。