CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数
查看物理CPU个数
[root@AAA ~]# cat /proc/cpuinfo| grep “physical id”| sort| uniq| wc -l
2
查看每个物理CPU中core的个数(即核数)
[root@AAA ~]# cat /proc/cpuinfo| grep “cpu cores”| uniq
cpu cores : 6
查看逻辑CPU的个数
[root@AAA ~]# cat /proc/cpuinfo| grep “processor”| wc -l
24
从上面执行的结果来看,证明我使用的cpu有2 * 6 = 12核,每个核有2个超线程,所以有24个逻辑cpu。
Load average负载详细解释
平均负载是指上一分钟同时处于就绪状态的平均进程数。在CPU中可以理解为CPU可以并行处理的任务数量,就是CPU个数X核数。如果CPU Load等于CPU个数乘以核数,那么就说CPU正好满负载,再多一点,可能就要出问题了,
有些任务不能被及时分配处理器,那要保证性能的话,最好要小于CPU个数X核数X*0.7。(逻辑cpu个数*0.7)
一般的进程需要消耗CPU、内存、磁盘I/O、网络I/O等资源,在这种情况下,平均负载就不是单独指的CPU使用情况。即内存、磁盘、网络等因素也可以影响系统的平均负载值。
在单核处理器中,平均负载值为1或者小于1的时候,系统处理进程会非常轻松,即负载很低。当达到3的时候,就会显得很忙,达到5或者8的时候就不能很好的处理进程了其中5和8目前还是个争议的阈值,为了保守起见,建议选择低的)
实际情况操作
[root@namenode2:~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 40
On-line CPU(s) list: 0-39
Thread(s) per core: 2
Core(s) per socket: 10
Socket(s): 2
NUMA node(s): 2
Vendor ID: GenuineIntel
CPU family: 6
Model: 79
Stepping: 1
CPU MHz: 1200.000
BogoMIPS: 4394.47
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 25600K
NUMA node0 CPU(s): 0-9,20-29
NUMA node1 CPU(s): 10-19,30-39
namenode2上逻辑cpu个数为40 ,所以平均负载不能超过40,否则就会出问题,那么在zabbix中监控该值单位是每分钟单核的负载情况,所以zabbix系统给出的值是不能超过5,否则就会报警。
显示格式:
Architecture: #架构
CPU(s): #逻辑cpu颗数
Thread(s) per core: #每个核心线程
Core(s) per socket: #每个cpu插槽核数/每颗物理cpu核数
CPU socket(s): #cpu插槽数
Vendor ID: #cpu厂商ID
CPU family: #cpu系列
Model: #型号
Stepping: #步进
CPU MHz: #cpu主频
Virtualization: #cpu支持的虚拟化技术
L1d cache: #一级缓存(google了下,这具体表示表示cpu的L1数据缓存)
L1i cache: #一级缓存(具体为L1指令缓存)
L2 cache: #二级缓存