计算机CPU和cpu线程数绑定设置相关问题

我们通常会将CPU比喻为人类的大脑是计算机的核心硬件,决定了一台电脑的运算性能好坏我们在选购CPU的时候,通常都会在网上查询处理器型号参数主要是看主频、核惢、cpu线程数、缓存...

我们通常会将比喻为人类的大脑,是计算机的核心硬件决定了一台的运算性能好坏。我们在选购CPU的时候通常都会在網上查询型号参数,主要是看主频、核心、cpu线程数、缓存、架构等参数那么对于小白我们要如何理解这些呢,下面分利用通俗易懂方式悝解主频、核心、cpu线程数、缓存、架构来学习一下吧。

CPU的架构越新越好所谓的架构老与新,我们可以理解为有两个人搬砖老架构的使用的落后的设备搬砖,而新架构使用的是更先进的设备搬砖因此架构对性能的影响巨大,也是CPU最重要的参数之一

主频也是大家比较關心的参数之一,CPU的主频又叫CPU内核工作的时钟频率我们也可以理解为CPU运算速度。CPU主频相当于人的力量主频越高,那么力量(性能)则樾大

核心也就是所谓的核心数量,指的是CPU几核的例如双核、四核、八核等,我们可以比喻为人的胳膊双核就是两条胳膊,四核就是㈣条胳膊胳膊越多我们同时进行的任务越多。单核单cpu线程数我们可以理解为一条胳膊长一只手例如双核配双cpu线程数或者双核四cpu线程数、四核八cpu线程数的处理器,由于技术越来越厉害造出了一条胳膊长两只手的情况,这样干活的效率也就大大的提升了

而缓存也是CPU中重偠的参数,一般来说CPU运算速度较快,而读写速度跟不上时CPU就可以将这些数据临时存储在缓存中,来缓解CPU的运算速度与内存条读写速度鈈匹配的矛盾因此缓存越高越好。

以上就是分享的CPU基础知识:通俗易懂方式理解主频、核心、cpu线程数、缓存、架构知识更好的让小白悝解CPU参数知识,希望本文能够帮助到大家

  • 高通在今年6月份了骁龙632、骁龙439和骁龙429三款处理器。除了骁龙439和骁龙429是低端处理器外有其中一款中端处理器便是骁龙632了,...

  • 由于和苹果新品发布会撞期一加6T提前一天发布,一加6T的宣传海报和详细的规格参数包括3700mAh容量电池、高通骁龙845處理器128GB起步,运行Android 9.0 Pie系统...

  • AMD CPU行除了在性价比方面出色之外,推出的锐龙CPU均支持超频并且在主流级主板都可以享受超频。AMD CPU怎么超频下面汾享一下AMD锐龙平台CPU超频图文教程。...

  • Intel正式发布了酷睿九代处理器那么其中i5 9600k配什么主板?下面小编就来介绍下Intel九代i5-9600k处理器主板搭配选择攻略...

  • 在今年10月份,Intel正式发布了酷睿九代处理器首发只有3三款产品,分别是i5-9600K、i7-9700K、i9-9900K下面小编就来介绍下Intel九代i7-9700k处理器主板搭配选择攻略。...

  • 三星Galaxy Book 2筆记本正式发布Galaxy Book 2搭载骁龙850处理器,支持LTE网络连接它的电池续航时间长达20小时,屏幕分辨率为像素...

  • AMD Zen家族推出了定位入门级全新速龙处悝器,分别为速龙200GE、速龙220GE、速龙240GE融合了最新的Zen CPU架构、Vega GPU架构,为了抢占intel奔腾入门级市场而今天小编针对AM...

  • 现在, 外媒再次给出了一些iPad Pro新款嘚新机看起来足够的带感,因为苹果要给新的iPad Pro配备A12X处理器其中还有全新的GPU加持,代号为Vortex...

  • AMD锐龙系列处理器为用户带来了更多的性价比選择,锐龙全系采用钎焊散热设计散热性能更好,CPU超频相比硅脂厉害的多被广大玩家称之为良心企业,而网曝intel第九代酷睿处理器会采...

  • 10朤9日消息 正当消费者以为高通下一代旗舰处理器会被命名为骁龙855的时候外媒来了一波打脸,称高通下一代旗舰处理器将会被命名为骁龙8150再一次改变其旗舰系列处理器的命名...

}

想攒一台电竞主机、家用主机、酷炫主机无从下手想省钱又怕性能不达标?值得买帮你打造定制化自助全网比价装机,提供最适合的搭配方案解决各种攒机场景下難题。

值得买首届征稿活动开始啦

首选我们要知道现在电脑处理器的品牌有两个一个是Intel另一个是,他们两家现在的命名规则基本都是相菦的Intel家的酷睿系列是主力产品,而AMD方面则以锐龙系列处理器作为主力下面先来说说Intel家的。

Inetl家的桌面酷睿处理器下面细分出酷睿i3/i5/i7/i9这四个等级这是按处理器的核心数以及cpu线程数数划分的,而频率与缓存容量只会影响后面的数字而现在HEDT也就是高端桌面平台的酷睿X系列处理器全部都属于酷睿i9了,他们的命名规则就有点不一样

最顶级的酷睿X系列处理器用的是LGA 2066平台,和主流的LGA 1151不一样命名规则上,他们的最后┅位都是“X”而不是主流平台上代表不锁频的“K”,应该是未了便于区分它用的是不同的平台现在的第十代酷睿X全部都是酷睿i9,核心數量从10起步最多18核。

酷睿i9现在第九代是8核16cpu线程数的而下一代则有可能升级到10核20cpu线程数;

酷睿i7现在第九代是8核8cpu线程数的,而下一代则会支持超cpu线程数变成8核16cpu线程数;也就是说和现在的酷睿i9一样;

酷睿i5现在第九代是6核6cpu线程数的,下一代会支持超cpu线程数变成6核12cpu线程数也就昰第八代酷睿i7那个规格;

酷睿i3现在第九代是4核4cpu线程数的,下一代会支持超cpu线程数变成4核8cpu线程数也就是第六/七代酷睿i7那个规格;

在酷睿系列处理器之下还有和赛扬处理器,其实他们还有细分为奔腾和银牌赛扬G、J、N等,不过实际上除了奔腾金牌和G之外其他都比较少见所以僦不介绍了。

至于处理器的后缀现在桌面处理器大致有K、F、T、S四种,啥都没有的就是65W的标准版处理器其他的具体请看下表:

AMD方面,他們家的HEDT平台就锐龙Threadripper前两代搭配的是X399,最新的第三代搭配的是TRX40主板这一代的核心数量直接从16核起步,目前最多32核未来还要出64核版本的。

锐龙9是第三代才开始有的核心数12核或16核,是AM4平台最顶级的处理器;

锐龙7从第一代到第三代都是8核16cpu线程数的;

锐龙5就有些复杂核心数4箌6个,有4核8cpu线程数、6核6cpu线程数和6核12cpu线程数三种规格而且同一代的CPU和APU的架构是不同的,APU的架构是上一代的;

锐龙3都是4核4cpu线程数的而且从苐二代开始就基本都变成APU了。

在锐龙处理器之下还有2核4cpu线程数的速龙处理器全部都是APU,此外还有些A系列的APU是旧的推土机架构的,不过這些基本都比较少见了

至于AMD处理器的后缀就要简单多了,X的就是支持完整支持XFR技术G的就是包含核显,E的就是节能版TDP 35W。

}

简单地说CPU 亲和性(affinity) 就是进程偠在某个给定的 CPU 上尽量长时间地运行而不被迁移到其他处理器的倾向性。Linux 内核进程调度器天生就具有被称为 软 CPU 亲和性(affinity) 的特性这意味著进程通常不会在处理器之间频繁迁移。这种状态正是我们希望的因为进程迁移的频率小就意味着产生的负载小。

2.6 版本的 Linux 内核还包含了┅种机制它让开发人员可以编程实现 硬 CPU 亲和性(affinity)。这意味着应用程序可以显式地指定进程在哪个(或哪些)处理器上运行

affinity是调度器必须遵守的规则。

●增加CPU缓存的命中率

CPU之间是不共享缓存的如果进程频繁的在各个CPU间进行切换,需要不断的使旧CPUcache失效如果进程只在某个CPU上执行,则不会出现失效的情况

●增加CPU缓存的命中率

            在多个cpu线程数操作的是相同的数据的情况下,如果把这些cpu线程数调度到一个处悝器上大大的增加了CPU缓存的命中率。但是可能会导致并发性能的降低如果这些cpu线程数是串行的,则没有这个影响

real-timetime-sensitive应用中,我们鈳以把系统进程绑定到某些CPU上把应用进程绑定到剩余的CPU上。典型的设置是把应用绑定到某个CPU上,把其它所有的进程绑定到其它的CPU

依据《linux内核设计与实现》的42节,人为控制一下cpu的绑定还是有用处地
linux的SMP负载均衡是基于进程数的每个cpu都有一个可执行进程队列(为什么不昰cpu线程数队列呢?),只有当其中一个cpu的可执行队列里进程数比其他cpu队列进程数多25%时才会将进程移动到另外空闲cpu上,也就是说cpu0上的进程数应该是比其他cpu上多但是会在25%以内。

如何实现一个或多个进程独占一个或多个CPU即调度器只能把指定的进程调度至指定的CPU。最简单的方法是利用fork()的继承特性子进程继承父进程的affinity。这种方法无需修改和编译内核代码

init进程是所有进程的祖先,我们可以设置init进程的affinity来达到設置所有进程的affinity的目地然后把我们自己的进程绑定到目地CPU上。这样就到达了在指定CPU上只运行指定的的进程的目地

在 Linux 内核中,所有的进程都有一个相关的数据结构称为 task_struct。这个结构非常重要原因有很多;其中与 亲和性(affinity)相关度最高的是 cpus_allowed 位掩码。这个位掩码由 n 位组成與系统中的 n 个逻辑处理器一一对应。 具有 4 个物理 CPU 的系统可以有 4 位如果这些 CPU 都启用了超cpu线程数,那么这个系统就有一个 8 位的位掩码

如果為给定的进程设置了给定的位,那么这个进程就可以在相关的 CPU 上运行因此,如果一个进程可以在任何 CPU 上运行并且能够根据需要在处理器之间进行迁移,那么位掩码就全是 1实际上,这就是 Linux 中进程的缺省状态

Linux 内核 API 提供了一些方法,让用户可以修改位掩码或查看当前的位掩码:

 从函数名以及参数名都很明了唯一需要点解释下的可能就是cpu_set_t这个结构体了。这个结构体的理解类似于select中的fd_set可以理解为cpu集,也是通过约定好的宏来进行清除、设置以及判断:

       cpu集可以认为是一个掩码每个设置的位都对应一个可以合法调度的 cpu,而未设置的位对应一個不可调度的 CPU换而言之,cpu线程数都被绑定了只能在那些对应位被设置了的处理器上运行。通常掩码中的所有位都被置位了,也就是鈳以在所有的cpu中调度

为什么应该使用硬亲和性(affinity)?

通常 Linux 内核都可以很好地对进程进行调度在应该运行的地方运行进程(这就是说,茬可用的处理器上运行并获得很好的整体性能)内核包含了一些用来检测 CPU 之间任务负载迁移的算法,可以启用进程迁移来降低繁忙的处悝器的压力

一般情况下,在应用程序中只需使用缺省的调度器行为然而,您可能会希望修改这些缺省行为以实现性能的优化让我们來看一下使用硬亲和性(affinity) 的 3 个原因。

原因 1. 有大量计算要做

基于大量计算的情形通常出现在科学和理论计算中但是通用领域的计算也可能出现这种情况。一个常见的标志是您发现自己的应用程序要在多处理器的机器上花费大量的计算时间

原因 2. 您在测试复杂的应用程序

测試复杂软件是我们对内核的亲和性(affinity)技术感兴趣的另外一个原因。考虑一个需要进行线性可伸缩性测试的应用程序有些产品声明可以茬 使用更多硬件 时执行得更好。

我们不用购买多台机器(为每种处理器配置都购买一台机器)而是可以:

  • 购买一台多处理器的机器

如果應用程序随着 CPU 的增加可以线性地伸缩,那么每秒事务数和 CPU 个数之间应该会是线性的关系(例如斜线图 —— 请参阅下一节的内容)这样建模可以确定应用程序是否可以有效地使用底层硬件。

Amdahl 法则说明这种加速比在现实中可能并不会发生但是可以非常接近于该值。对于通常凊况来说我们可以推论出每个程序都有一些串行的组件。随着问题集不断变大串行组件最终会在优化解决方案时间方面达到一个上限。

Amdahl 法则在希望保持高 CPU 缓存命中率时尤其重要如果一个给定的进程迁移到其他地方去了,那么它就失去了利用 CPU 缓存的优势实际上,如果囸在使用的 CPU 需要为自己缓存一些特殊的数据那么所有其他 CPU 都会使这些数据在自己的缓存中失效。

因此如果有多个cpu线程数都需要相同的數据,那么将这些cpu线程数绑定到一个特定的 CPU 上是非常有意义的这样就确保它们可以访问相同的缓存数据(或者至少可以提高缓存的命中率)。否则这些cpu线程数可能会在不同的 CPU 上执行,这样会频繁地使其他缓存项失效

原因 3. 您正在运行时间敏感的、决定性的进程

我们对 CPU 亲囷性(affinity)感兴趣的最后一个原因是实时(对时间敏感的)进程。例如您可能会希望使用硬亲和性(affinity)来指定一个 8 路主机上的某个处理器,而同时允许其他 7 个处理器处理所有普通的系统调度这种做法确保长时间运行、对时间敏感的应用程序可以得到运行,同时可以允许其怹应用程序独占其余的计算资源

}

我要回帖

更多关于 cpu线程数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信