最近在看cpu绑定这块的东东,整理出来,自己记性本来不好,幸好有烂笔头的习惯,一是自己能记下,二是分享给大家一起讨论
cpu绑定场景
CPU的绑定设置,是指将进程绑定到特定的一个或多个CPU上去执行,而不允许调度到其他的CPU上。Linux内核对进程的调度算法也是遵守进程的处理器亲和性设置的。
使用CPU绑定考虑就是将重要的业务进程隔离开,对于部分实时进程调度优先级高,可以将其绑定到一个指定核上,既可以保证实时进程的调度,也可以避免其他CPU上进程被该实时进程干扰。
cpu绑定优缺点
设置CPU绑定带来的好处是可以减少进程在多个CPU之间交换运行带来的缓存命中失效(cache missing),从该进程运行的角度来看,可能带来一定程度上的性能提升。
换个角度来看,CPU的绑定设置也可能带来一定的问题,如破坏了原有SMP系统中各个CPU的负载均衡(load balance),这可能会导致整个系统的进程调度变得低效。特别是在多处理器、多核、多线程技术使用的情况下,在NUMA结构的系统中,如果不能基于对系统的CPU、内存等有深入的了解,对进程的处理器亲和性进行设置是可能导致系统的整体性能的下降而非提升。
cpu绑定方式
共享cache绑定方式
Cache一般可分为的level:L1,L2,L3,L4,使用命令lscpu即可查看宿主机cache相关情况。共享cache绑定方式,显而易见就是客户机要绑定多个cpu的cache都是共享的,这样可以提高cache的访问数据的命中率。在目录下/sys/devices/syste