一、基于硬件特性的性能调优方向
(1)鲲鹏的NEON向量特性是一条指令可以访问和计算多个数据;
(2)性能优化的四个方向:cpu/内存,磁盘,网卡,应用;
(3)对于cpu和内存,基于鲲鹏处理器的软加速和硬加速:
软加速:编译优化和numa-aware亲和性优化(多核加速,减少跨numa的访问);
编译优化中单核加速:寄存器分配,指令布局,指令流水,迭代编译;
硬加速:通过硬件加速器是此案加解密,压缩,大数据米运算,EC纠删码;
编译器性能优化:指令布局优化,内存布局优化,循环优化;
JDK性能优化;
numa:non-uniform memory access非统一内存访问架构,cpu分为多个节点,每个节点都有自己内存,内存分布式,不同核访问不同内存时间不同;
(4)三种numa绑核配置:
使用系统工具numactl设置,在代码中调用亲和性设置参数,提供了配置接口;
(5)加速库:
基于arm指令的软加速库:
包括GLIBC,HYPERSCAN,AVX2Neon,
基于KAE的应加速库:包括ZIP(硬加速-压缩),HPRE(硬加速=非对称加解密),SEC(硬加速-对称加速)
(6)对于磁盘:文件系统决定磁盘加载到内存的快慢;
CFQ完全公平队列
DEADLINE读写合并
NOOP:将I/O请求放入先进先出队列;
磁盘预取可以充分利用磁盘带宽;
(7)对于网卡:
网卡中断产生频率会影响应用吞吐和延迟;
frames:网卡收到多少个包产生一次硬中断;
usecs:网卡每隔多少微秒产生一次硬中断;
在低时延和高吞吐寻找平衡点;
软件调优本质是充分发挥硬件性能;
(8)对于应用:
减少资源抢占,提升并行度,发挥多核性能优势;
鲲鹏920的cachelIne为128位;
大锁变小锁,
二、mariaDB性能调优案例:
dstat:列表形式显示资源状况;
blktrace:磁盘内核I/O分布;
sar命令查看网卡收发包流量;
ethtool查看网卡技术信息;
numa_hit:非统一内存访问命中;
util%:utilization percentage,利用率百分比;
cpu为业务瓶颈,刻意分析进程热点寻找优化空间;
三、自研套件/开源工具
(1)代码迁移工具porting advisor:
分析移植软件包依赖库,软件源文件,评估可行性并
提供代码移植指导报告;
(2)性能分析工具hyper tuner 分析性能采集和分析,分析性能指标,定位业务瓶颈和热点函数,给出调优建议;
四、性能优化工具hyper tuner
(1)hyper tuner:在软件运行时候,采集数据,分析性能指标等;适合鲲鹏平台;
鲲鹏性能分析工具包含性能分析工具和java性能分析工具
(2)系统性能分析工具逻辑上分为andlysis和agent;
analysis:实现性能数据分析和分析结果展现;
agent:实现性能数据采集;
(3)性能分析工具功能特性:
采样时长2-300秒可选,采样间隔小于等于采样时长,最大为10秒;
系统级分析:全景分析,系统资源调度分析,访存分析;
创建过程-创建任务-查看结果;
进程级分析:进程/线程性能分析,锁与等待分析;
函数级分析:c/c++函数分析,java mixed-mode分析;
Launch application:采集启动的同时启动应用;
attach to process:采集启动时候服务器正在运行的应用;
底层架构分析:微架构分析,miss事件分析;
微架构分析:
前端,后端,speculaTion预测,retired退休指令数量;
采样模式:summary:PMU事件;
detail:PMU事件和调用栈事件;
支持分块和列表方式展示分层结果,异常值悬浮窗口给出tips;
当前实现时候,按照大的划分,分四组采集,可以只选择一组数据;
五、求助渠道,兼容性清单
鲲鹏小智:https://ic-openlabs.huawei.com/chat/#/海量资源搜素,智能问答;
兼容性清单工具:https://icopenlabs.huawei.com/client/#/unioncompaty
评论(0)