这里有个“插槽”或“LPAR”的概念,中文翻译成”插槽“,一下有点不适应了,其实英文页面显示为:“Number of Sockets or LPARs:”,所以插槽就是scoket的意思。
LPAR是逻辑分区的意思(Logical Partition),就是将单台服务器划分成多个逻辑服务器,彼此运行独立的应用程序。逻辑分区不同于物理分区(Physical Partitioning PPAR),物理分区是将物理的将资源组合形成分区,而逻辑分区则不需要考虑物理资源的界限。相对而言,逻辑分区具有更多的灵活性,可以在物理资源中自由的选择部件,这需要有较好的保证,即最大化的使用系统资源,但又最小化不必要的资源再分配。在逻辑分区环境下,如CPU、内存和I/O都可以独立的分配给每个分区。逻辑分区的配置和管理是通过硬件管理控制台(Hardware Management Console)实现的。
2. 问题解决:
介绍完了“插槽”和“LPAR”的概念,那怎么来查看当前机器的插槽数或LPAR数呢?
首先需要了解,LPAR在小型机上应用的比较多,x86服务器上几乎不用。查看“插槽”数可以通过如下命令来完成:
[root@compute-30-02 ~]# lscpu | grep "CPU socket"
CPU socket(s): 2
命令返回结果,显示当前机器的插槽数为2。(iscpu可以看到很多cat /proc/cpuinfo看不到的东西,建议使用)
其实对处理器的描述,除了socket,经常还用到的两个概念是core和thread,这一点对于用过qemu的人来说,影响尤其深刻,看如下这台qemu虚拟机(只截取部分命令):
qemu 24146 10.0 3.2 1419132 1068608 ? Sl Mar21 3907:32 /usr/libexec/qemu-kvm -S -M rhel6.2.0 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name rocks-5.4-39
红色字体部分涉及到了这3个概念,当前qemu仿真了一个具有1个vcpu,一个socket,一个core,一个threads的处理器。
注:平时可能很多管理员习惯说:这个机器是2路4核超线程,其实意思差不多。(不过很多时候他也不知道2路4核超线程具体是啥意思,)。
言归正传,形象的理解:
(1)socket就是主板上插cpu的槽的数目,也即管理员说的”路“
(2)core就是我们平时说的”核“,即双核,4核等
(3)thread就是每个core的硬件线程数,即超线程
具体例子,某个服务器是:2路4核超线程(一般默认为2个线程),那么,通过cat /proc/cpuinfo看到的是2*4*2=16个processor,很多人也习惯成为16核了!
3. 问题扩展
除了socket,core,thread三个概念,感觉经常对一些概念一知半解,比如说SMP(Symmetric Multi-Processing),CMP(Chip multiprocessors),SMT(Simultaneous multithreading),大家经常说,但是真正能理解的人估计不多。
(1)SMT,同时多线程Simultaneous multithreading,简称SMT。
SMT可通过复制处理器上的结构状态,让同一个处理器上的多个线程同步执行并共享处理器的执行资源,可最大限度地实现宽发射、乱序的超标量处理,提高处理器运算部件的利用率,缓和由于数据相关或Cache未命中带来的访问内存延时。当没有多个线程可用时,SMT处理器几乎和传统的宽发射超标量处理器一样。SMT最具吸引力的是只需小规模改变处理器核心的设计,几乎不用增加额外的成本就可以显著地提升效能。多线程技术则可以为高速的运算核心准备更多的待处理数据,减少运算核心的闲置时间。这对于桌面低端系统来说无疑十分具有吸引力。Intel从3.06GHz Pentium 4开始,所有处理器都将支持SMT技术。 Intel的hyper-threading其实就是 two-thread SMT.
(2)CMP, 片上多处理器(Chip multiprocessors,简称CMP)
CMP是由美国斯坦福大学提出的,其思想是将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行不同的进程。与CMP比较, SMT处理器结构的灵活性比较突出。但是,当半导体工艺进入0.18微米以后,线延时已经超过了门延迟,要求微处理器的设计通过划分许多规模更小、局部性更好的基本单元结构来进行。相比之下,由于CMP结构已经被划分成多个处理器核来设计,每个核都比较简单,有利于优化设计,因此更有发展前途。目前,IBM 的Power 4芯片和Sun的 MAJC5200芯片都采用了CMP结构。多核处理器可以在处理器内部共享缓存,提高缓存利用率,同时简化多处理器系统设计的复杂度。
(3)SMP,对称多处理器(Symmetric Multi-Processors,简称SMP)
是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。在这种技术的支持下,一个服务器系统可以同时运行多个处理器,并共享内存和其他的主机资源。像双至强,也就是我们所说的二路,这是在对称处理器系统中最常见的一种(至强MP可以支持到四路,AMD Opteron可以支持1-8路)。也有少数是16路的。但是一般来讲,SMP结构的机器可扩展性较差,很难做到100个以上多处理器,常规的一般是8个到16个,不过这对于多数的用户来说已经够用了。在高性能服务器和工作站级主板架构中最为常见,像UNIX服务器可支持最多256个CPU的系统,其实qemu从代码设计上也是最大支持256个virtual cpu。