目录
3.1.3、指定进程运行在cpu1上即第二个逻辑CPU核心上
3.1.4、指定进程运行在cpu0~2上即cpu0、cpu1、cpu2三个逻辑CPU核心上
RK3399芯片作为一款高性能的处理器,其多核性能的优化对于提升整体运算效率至关重要。进程绑定CPU核心是一种常见的优化手段,下面我将从不同角度对RK3399芯片如何优化进程绑定CPU核心进行深入解析,并分享一些实例。
一、理解RK3399芯片架构
RK3399芯片采用了big.LITTLE架构,拥有两个高性能的ARM Cortex-A72核心和四个低功耗的ARM Cortex-A53核心。这种异构架构使得RK3399既能在高负载场景下提供出色的性能,又能在低负载场景下保持较低的功耗。
二、进程绑定CPU核心的策略
1. 根据进程性质绑定:将计算密集型进程绑定到高性能的A72核心上,将IO密集型进程绑定到低功耗的A53核心上。这样可以充分发挥不同核心的优势,提高整体运算效率。
2. 根据进程优先级绑定:将高优先级的进程绑定到性能更好的核心上,以确保这些进程能够获得更多的计算资源。
3. 动态绑定:根据系统的实时负载情况动态调整进程与核心之间的绑定关系。当某个核心负载较高时,可以将一些进程迁移到其他负载较低的核心上。
三、实例分享
比如以一款运行在RK3399芯片上的图像处理应用为例,该应用需要处理大量的图像数据并进行复杂的计算。通过对该应用的进程进行绑定优化,我们将其绑定到两个Cortex-A72核心上,并充分利用了这些核心的高性能。优化后,应用的处理速度得到了显著提升,同时功耗也保持在了较低水平。
3.1、使用shell命令方式
下面以 bluesea2_node进程展开说明
3.1.1、查看CPU信息
lscpu
cat /proc/cpuinfo
3.1.2、查看进程当前运行在哪个cpu上
taskset -p $(ps -ef | grep "bluesea2_node" | grep -v "grep" | awk '{print $2}')
显示的十进制数字3转换为2进制为11,每个1对应一个cpu,所以进程运行在2个cpu上
3.1.3、指定进程运行在cpu1上即第二个逻辑CPU核心上
taskset -pc 1 $(ps -ef | gr