Docker的NUMA亲和性
当CPU的主频提升到了3GHz每秒以后,硬件制造商们发现单个CPU的已经到了物理极限了。所以就改变了性能改进的方法,改成为向多核、甚至是多CPU的方向来发展。在这种情况下,如果仍然采用FSB总线,会导致所有的CPU和内存通信都经过总线,这样总线就成为了瓶颈,无法充分发挥多核的优势与性能。所以CPU制造商们把内存控制器从北桥搬到了CPU内部,这样CPU便可以直接和自己的内存进行通信了。那么,如果CPU想要访问不和自己直连的内存条怎么办呢?所以就诞生了新的总线类型,它就叫QPI总线。Docker容器现在发挥着越来越重要的作用默认情况下,每个容器对主机的CPU周期的访问不受限制。大多数用户使用并配置默认CFS调度器。在服务器上运行多个容器,由于每个容器的业务不同,为了避免相邻容器的资源抢占,我们可以通过CPU绑核和配置NUMA亲和性来使容器在某种特定场景下性能最优。可提升Docker容器计算性能如果一个虚拟机的vCPU跨不同的numa节点,可能出现一个node中的CPU去访问另一个node中的内存的情况,会导致内存访问延迟的增加。NUMA亲和性就是为了解决该问题而生。启用NUMA亲和性后,虚拟机的vCPU和内存会使用同一NUMA节点的CPU和内存资源。
-
查询NUMA信息

2.进行1:1绑核,内存访问同NUMA
创建容器,容器名称Jack20,然后分配3核,绑核3-7,NUMAO节点,内存8G,然后创建容器的镜像是centos:latest,挂载本地volume卷,将本机“/home"映射到容器“/home”。
在进行绑核操作时,可以选择按CPU绑核或按NUMA绑核,但是需要注意避免虚拟机内存访问跨die和跨片,建议不要跨die
Docker的NUMA亲和性
当CPU的主频提升到了3GHz每秒以后,硬件制造商们发现单个CPU的已经到了物理极限了。所以就改变了性能改进的方法,改成为向多核、甚至是多CPU的方向来发展。在这种情况下,如果仍然采用FSB总线,会导致所有的CPU和内存通信都经过总线,这样总线就成为了瓶颈,无法充分发挥多核的优势与性能。所以CPU制造商们把内存控制器从北桥搬到了CPU内部,这样CPU便可以直接和自己的内存进行通信了。那么,如果CPU想要访问不和自己直连的内存条怎么办呢?所以就诞生了新的总线类型,它就叫QPI总线。Docker容器现在发挥着越来越重要的作用默认情况下,每个容器对主机的CPU周期的访问不受限制。大多数用户使用并配置默认CFS调度器。在服务器上运行多个容器,由于每个容器的业务不同,为了避免相邻容器的资源抢占,我们可以通过CPU绑核和配置NUMA亲和性来使容器在某种特定场景下性能最优。可提升Docker容器计算性能如果一个虚拟机的vCPU跨不同的numa节点,可能出现一个node中的CPU去访问另一个node中的内存的情况,会导致内存访问延迟的增加。NUMA亲和性就是为了解决该问题而生。启用NUMA亲和性后,虚拟机的vCPU和内存会使用同一NUMA节点的CPU和内存资源。
查询NUMA信息
2.进行1:1绑核,内存访问同NUMA
创建容器,容器名称Jack20,然后分配3核,绑核3-7,NUMAO节点,内存8G,然后创建容器的镜像是centos:latest,挂载本地volume卷,将本机“/home"映射到容器“/home”。
在进行绑核操作时,可以选择按CPU绑核或按NUMA绑核,但是需要注意避免虚拟机内存访问跨die和跨片,建议不要跨die