调优简介
调优思路
性能优化的思路如下:
- 如果CPU的利用率不高,说明资源没有充分利用,可以通过工具(如strace)查看应用程序阻塞在哪里,一般为磁盘,网络或应用程序自己的业务逻辑有休眠或信号等待,这些优化措施在其它章节描述。
- 如果CPU利用率高,可以选择更好的硬件,优化硬件的配置参数来适配业务场景,或者通过优化软件来降低CPU占用率。
根据CPU的能力配置合适的内存条,建议内存满通道配置,发挥内存最大带宽:一颗鲲鹏920处理器的内存通道数为8,两颗鲲鹏920处理器的内存通道数为16;建议选择高频率的内存条,提升内存带宽:鲲鹏920在1DPC配置时,支持的内存最高频率为3200MHz。
主要优化参数
优化项 |
优化项简介 |
默认值 |
生效范围 |
鲲鹏916处理器 |
鲲鹏920处理器 |
---|---|---|---|---|---|
优化应用程序的NUMA配置 |
在NUMA架构下,CPU core访问临近的内存时访问延迟更低。将应用程序绑在一个NUMA节点,可减少因访问远端内存带来的性能下降。 |
默认不绑定核 |
立即生效 |
yes |
yes |
修改CPU预取开关 |
内存预取在数据集中场景下可以提前将要访问的数据读到CPU cache中,提升性能;若数据不集中,导致预取命中率低,则浪费内存带宽。 |
on |
重启生效 |
no |
yes |
调整定时器机制 |
nohz机制可减少不必要的时钟中断,减少CPU调度开销。 |
不同 Euler:nohz=off |
重启生效 |
yes |
yes |
调整内存的页大小为64K |
内存的页大小越大,TLB中每行管理的内存越多,TLB命中率就越高,从而减少内存访问次数。 |
不同OS默认配置不同: 4KB或64K |
重新编译内核、更新内核后生效 |
yes |
yes |
优化应用程序的线程并发数 |
适当调整应用的线程并发数,使得充分利用多核能力和资源争抢之间达到平衡。 |
由应用本身决定 |
立即生效或重启生效(由应用决定) |
yes |
yes |
父主题: CPU与内存子系统性能调优