大数据营销的特点(大数据分析在营销中的作用)
1073
2022-05-28
性能优化四个方向:CPU/内存&网卡&磁盘&应用
编译器性能优化:
指令布局优化:拆分函数代码,按照冷热指令重新排布,提升指令cache命中率
内存布局优化:按照内存数据访问频率,组合热数据区域,提升数据cache命中率
循环优化:分析循环迭代间数据访存依赖关系,据自动矢量化计算,加速程序运行
JDK性能优化:
JIT编译优化,GC内存回收管理优化提升内存管理性能
JVM循环、向量化、序列化技术
Nginx绑核优化举例
将Nginx进程分布到各个NUMA node之内,让系统整体的负载比较均衡,按照中断号将中断服务和Nginx绑定在一个NUMA中。性能将会非常明显的提升
NUMA指的是:非统一内存访问架构
三种NUMA绑核配置方法:
1、使用系统工具numactl设置
Numactl -C 0-15 process name
-C : Core scope
2、在代码中调用亲和性设置参数
Int sched_setaffinity(pid_t pid,size_t cpusetsize,cpu_set_t*mask)
3、多数开源软件中提供了配置接口
Nginx.conf文件中worker_cpu_affinity
基于鲲鹏压缩加速库:
Gzip
Zlib
ZSTD
Snappy
加解密加速
openssl
多媒体加速
X.256
Ffmpeg
HMPP
基础加速
Glibc
Hyperscan
加速使能
业务和基础软件库加速使能
内核态硬件加速件使能
针对性性能调优
CPU/RAM
调整内存页大小
CPU预取
修改线程调度策略
硬盘
脏数据刷新
异步文件操作
文件系统参数
网卡
网卡多队列
开启网卡TSO
开启网卡CSUM
应用
优化编译选项
文件缓存机制
缓存执行结果
NEON指令结果
针对以读为主的场景:如大数据读场景。性能约提升10%。减少IO请求数量,减轻CPU压力。
网卡中断的折中是性能调优的重点,如果没有中断会出现数据流失。本质上中断是一种电信号,通过总线把电信号发送给中断控制器。
主存和CPU之间增加高速缓冲存储器的目的是解决CPU和主存之间的速度匹配问题
硬中断:hardirq。由网卡、硬盘等外设产生,主要用来通知操作系统外设状态的变化。比如网卡收到数据包时就会发生一个中断
软中断:softirq。方便网卡做后续操作,网卡轮询软中断队列。从内存拷贝到应用套接字中。应用检测套接字中是否有新增数据。Linux将中断分为两个阶段:上半部和下半部。上半部用来处理中断;下半部用来处理上半部未完成的工作,通常以内核线程的方式运行。
就像收快递,你不确定什么时候配送到你手上,也没有办法了解配送进度。但是配送员是不等人的,到了你没取直接就走人。所以只能苦苦等着。但是你可以和配送员说好“快到了就给我打个电话”,这个电话就相当于是一个中断,只有接到电话时才会产生中断,并产生一个新动作“拿快递”。
所以中断是一种异步事件的处理机制,可以提高系统的并发处理能力。中断会打断其他进程。
可以通过网卡缓存机制(100个数据包再产生中断),但是应用层收到数据包时延也会变高。
高中断==低延迟
低中断==高吞吐
时延、吞吐、并发寻找一个均衡点
中断嵌套:Linux下的硬嵌套是可以嵌套的,但是没有优先级概念;软中断不能嵌套,但相同类型的软中断可以在不同CPU上并行执行。
查看软中断:
proc文件系统是一种内核空间和用户空间进行通信的机制,可以用来查看内核的数据结构,可动态修改内核的配置
查看软中断运行情况
查看硬终端运行情况
监控&分析&优化
监控
分析
优化
TOP
最常用的Linux性能检测工具之一。监视进程和整体性能。系统自带无需安装
Pref
监控进程内的调用情况、资源消耗情况并查找分析热点函数。需要手动安装
Numactl
监控当前NUMA节点配置、状态,可通过改工具将进程绑定在指定的CPU Core,由指定CPU Core运行对应进程。需要手动安装(yum install numactl numactlstat)
Strace:程序调试工具、监控系统调用情况
Free:系统使用和空闲资源的内存情况
sar:网口网络流量使用情况、系统调用情况、IO、RAM使用情况、进程活动情况等
EthTool:网卡状态/驱动版本信息、收发数据信息查询等配置查询
Iostat:统计磁盘IO情况、饱和度、使用率等
CacheLine对齐应用层优化可以避免内存伪共享
锁
无锁编程
大锁边小锁
高性能原子操作指令
Google Tcmalloc通过减少内存分配中的锁以提升高并发下的性能
“使用线程缓存,尺寸小于256K的小内存申请均由ThreadCache进行分配;通过TreadCache分配过程中不需要任何锁,可以极大的提高分配速度”
鲲鹏社区
鲲鹏文档:案例
鲲鹏软件:8+ OS安装包(CentOS Ubuntu等) 200+主流软件
鲲鹏论坛:问题求助、经验分享。专家值班,5分钟相应,普通问题2小时闭环
认证查询:400+鲲鹏计算兼容性认证查询和证书获取
鲲鹏小智:
兼容软件查询:快速获取鲲鹏平台以兼容的软件详细信息以及指导文档及源码下载
镜像包查询:一键获取华为镜像站、mvn仓库中已编译的Jar包及组件rpm包
汇编指令查询:快速获取常用汇编指令,从X86歉意到鲲鹏平台的替换指令,加速代码迁移
经验文档检索
代码迁移工具(Porting Advisor)
C/C++源代码文件
汇编源代码文件
Makefile文件
准确定位代码修改点以及修改指导
输入
分析扫描工具(Dependency Advisor):
软件安装包(rpm/deb/tar软件包、安装路径)
源码文件(C/C++/JAVA/汇编源代码文件、MakeFile文件)
输入
提升软件移植分析效率和准确率
性能优化工具(Tuning Kit):
CPU使用情况,DDR&Cache统计
DISK IO/NIC使用情况和质量分析
进程/线程、锁资源占用情况
Top热点函数
创建工作任务
配置任务属性参数(分析类型、软件路径、采样率等)
运行软件
输入
分析处理
图形化输出
兼容性查询:1、开源软件 2、商业软件 3、操作系统
鲲鹏 运筹优化 软件开发
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。