1. 在CPU/内存层面
基于鲲鹏处理器的加速可以分为软加速和硬加速。软加速又分为针对单核的单核加速和针对多核的多核加速。
基于鲲鹏芯片微架构的编译器性能优化主要包括了指令布局优化、内存布局优化和循环优化。JDK性能优化主要包括序列化、JVM循环、JIT优化、GC优化和向量化等。
在SMP系统中,核数的扩展受到内存总线的限制,可以采用非统一内存访问架构( Non-uniform memory access)解决这一问题。发挥NUMA性能,需要克服内存访问速度不均匀的挑战。利用CPU亲和性与内存分配策略,让进程与内存的距离更“短”。
基于鲲鹏技术优势构建的加速库,针对基础、压缩、加解密和多媒体四类业务提供9大加速库,实现典型场景10%-100%性能提升。
此外,鲲鹏RSA加密加速方案,相较于传统方案可以有效提升Web应用Https性能。
2. 在磁盘层面
文件系统决定了磁盘加载到内存过程的快慢。磁盘预取可以充分利用磁盘带宽。
3. 在网卡层面
网卡中断产生频率会影响应用的吞吐和延迟。具体而言,中断产生的频率高会消耗大量的CPU时间片,频率低会影响应用收到数据的时延。
可以通过调整网卡中断聚合,在低时延和高吞吐中取一个平衡点。降低网卡中断频率,可以带来约10%的吞吐提升,但也会造增加20%左右的延迟。
4. 在应用层面
软件调优的本质是充分发挥硬件性能。减少资源抢占,提升并行度,发挥多核性能优势。Tcmalloc使用线程缓存,尺寸小于256K的小内存申请均由ThreadCache进行分配;通过ThreadCache分配过程中不需要任何锁,可以极大的提高分配速度。
总结:鲲鹏软件性能调优主要通过以下手段实现。