cpu0

http://news.cnblogs.com/n/147003/

 关于 CPU 的多核技术,我们知道,CPU0是很关键的,如果 0 号 CPU 被用得过狠的话,别的 CPU 性能也会下降,因为 CPU0 是有调整功能的,所以,我们不能任由操作系统负载均衡,因为我们自己更了解自己的程序,所以,我们可以手动地为其分配 CPU 核,而不会过多地占用 CPU0,或是让我们关键进程和一堆别的进程挤在一起。

    对于 Windows 来说,我们可以通过“任务管理器”中的“进程”而中右键菜单中的“设置相关性……”(Set Affinity…)来设置并限制这个进程能被运行在哪些核上。

    对于 Linux 来说,可以使用 taskset 命令来设置(你可以通过安装 schedutils 来安装这个命令:apt-get install schedutils)

  多核 CPU 还有一个技术叫 NUMA 技术(Non-Uniform Memory Access)。传统的多核运算是使用 SMP (Symmetric Multi-Processor )模式,多个处理器共享一个集中的存储器和I/O总线。于是就会出现一致存储器访问的问题,一致性通常意味着性能问题。NUMA 模式下,处理器被划分成多个 node, 每个 node 有自己的本地存储器空间。关于 NUMA 的一些技术细节,你可以查看一下这篇文章《Linux 的 NUMA 技术》,在 Linux 下,对 NUMA 调优的命令是:numactl 。如下面的命令:(指定命令“myprogram arg1 arg2”运行在 node 0 上,其内存分配在 node 0 和 1 上)

 numactl --cpubind=0 --membind=0,1 myprogram arg1 arg2

  当然,上面这个命令并不好,因为内存跨越了两个 node,这非常不好。最好的方式是只让程序访问和自己运行一样的 node,如:

 $ numactl --membind 1 --cpunodebind 1 --localalloc myapplication

猜你喜欢

转载自love84312-163-com.iteye.com/blog/2117847
cpu