服务器的cpu 核心、线程
此版本有大范围改动,因为cpu作为一个大脑,所以更细致的进行了,相关的分析和阐述。
1、版本1. 2022.1.24
2、版本2: 2022.3.2
采集数据: ht2机器为物理机,cpu是4颗cpu,80核,126G内存。
1、dmidecode命令在Linux系统下获取有关硬件方面的信息
[root@ht2 src]# dmidecode | grep "Product Name"
Product Name: RH5885 V3 // RH5885 V3 智能服务器
Product Name: BC61BLCA //板卡
[root@fp-web-158 ~]# dmidecode -s processor-version | uniq
Intel(R) Xeon(R) CPU E5-2660 v3 @ 2.60GHz
2、cpu是 Intel(R) Xeon(R) CPU E7-4830 v2 @ 2.20GHz,启用超线程。
3、cpu 厂商信息:intel原厂
[root@ht2 src]# cat /proc/cpuinfo | grep -e "vendor_id" | uniq
vendor_id : GenuineIntel CPU的线程数概念仅仅只针对Intel的CPU才有用,因为它是通过Intel超线程技术来实现的,最早应用在Pentium4上。
如果没有超线程技术,一个CPU核心对应一个线程。所以,对于AMD的CPU来说,只有核心数的概念,没有线程数的概念 增加核心数目就是为了增加线程数,因为操作系统是通过线程来执行任务的,
一般情况下它们是1:1对应关系,也就是说四核CPU一般拥有四个线程。
但Intel引入超线程技术后,使核心数与线程数形成1:2的关系,
如四核intel 11 代酷睿H(35W)处理器支持4核8线程(或叫作八个逻辑核心),大幅提升了其多任务、多线程性能。
lscpu可以列出非常多的有用信息
[root@ht2 src]# lscpu
Architecture: x86_64 //x86架构下的64位
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 80 //逻辑cpu颗数
On-line CPU(s) list: 0-79
Thread(s) per core: 2 //每个核的线程数(每个 Core 的硬件线程数)
Core(s) per socket: 10 //多少核
Socket(s): 4 //插槽数量(cpu插在主板上的插槽)
NUMA node(s): 4
Vendor ID: GenuineIntel //cpu厂商ID
CPU family: 6
Model: 62
Model name: Intel(R) Xeon(R) CPU E7-4830 v2 @ 2.20GHz //型号
Stepping: 7
CPU MHz: 2180.664
CPU max MHz: 2700.0000
CPU min MHz: 1200.0000
BogoMIPS: 4389.73
Virtualization: VT-x //cpu支持的虚拟化技术,需要进入进入bios设置
L1d cache: 32K
L1i cache: 32K
//L1 Cache(一级缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存。内置的L1高速缓存的容量和结构对CPU的性能影响较大,
不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。
一般服务器CPU的L1缓存的容量通常在32—4096KB.通常L1 Cache离CPU核心需要数据的地方更近,而L2 Cache则处于边缓位置,访问数据时,
L2 Cache需要通过更远的铜线,甚至更多的电路,从而增加了延时。
L1 Cache分为ICache(指令缓存)和DCache(数据缓存),
指令缓存ICache通常是放在CPU核心的指令预取单远附近的,
数据缓存DCache通常是放在CPU核心的load/store单元附近。
而L2 Cache是放在CPU pipeline之外的。为什么不把L2 Cache也放在很近的地方呢?由于Cache的容量越大,面积越大,
相应的边长的就越长(假设是正方形的话),总有离核远的。
L2 cache: 256K
L3 cache: 20480K //可参考 https://zhuanlan.zhihu.com/p/31875174
NUMA node0 CPU(s): 0-9,40-49 //0-9和40-49 是由numa node0 来管理的
NUMA node1 CPU(s): 10-19,50-59
NUMA node2 CPU(s): 20-29,60-69
NUMA node3 CPU(s): 30-39,70-79
Flags:fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts
rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3
cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm epb
tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm arat pln pts.
注意: 如果是 1个Sockets, 4个Cores,2 Thread(s) per core 1个cpu,4核8线程
关于numa 请看我的另一篇文档 https://www.cnblogs.com/aozhejin/p/15955554.html
这里借用一张图 :https://zhuanlan.zhihu.com/p/31875174
cpuinfo中关键字段信息解释
vendor id 如果处理器为Intel Processors,则字符串是 GenuineIntel。
processor 包括这一逻辑处理器的唯一标识符。
physical id 包括每个物理封装的唯一标识符。
core id 保存每个内核的唯一标识符。
siblings 列出了位于相同物理封装中的逻辑处理器的数量。
cpu cores 包含位于相同物理封装中的内核数量。
查看CPU型号
[root@ht2 src]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
80 Intel(R) Xeon(R) CPU E7-4830 v2 @ 2.20GHz
在linux输出命令: [root@ht2 cpu0]# cat /sys/devices/system/cpu/cpu 敲入tab 就会显示
[root@ht2 ~]# cat /sys/devices/system/cpu/cpu
cpu0/ cpu14/ cpu2/ cpu25/ cpu30/ cpu36/ cpu41/ cpu47/ cpu52/ cpu58/ cpu63/ cpu69/ cpu74/ cpu8/
cpu1/ cpu15/ cpu20/ cpu26/ cpu31/ cpu37/ cpu42/ cpu48/ cpu53/ cpu59/ cpu64/ cpu7/ cpu75/ cpu9/
cpu10/ cpu16/ cpu21/ cpu27/ cpu32/ cpu38/ cpu43/ cpu49/ cpu54/ cpu6/ cpu65/ cpu70/ cpu76/ cpuidle/
cpu11/ cpu17/ cpu22/ cpu28/ cpu33/ cpu39/ cpu44/ cpu5/ cpu55/ cpu60/ cpu66/ cpu71/ cpu77/
cpu12/ cpu18/ cpu23/ cpu29/ cpu34/ cpu4/ cpu45/ cpu50/ cpu56/ cpu61/ cpu67/ cpu72/ cpu78/
cpu13/ cpu19/ cpu24/ cpu3/ cpu35/ cpu40/ cpu46/ cpu51/ cpu57/ cpu62/ cpu68/ cpu73/ cpu79/
对比另一台机器8核
[root@fp-web-186 ~]# cat /sys/devices/system/cpu/cpu
cpu0/ cpu1/ cpu2/ cpu3/ cpu4/ cpu5/ cpu6/ cpu7/ cpuidle/
//我们进入cpu0来看下
[root@ht2 ~]# cd /sys/devices/system/cpu/cpu0
[root@ht2 cpu0]# ll
total 0
drwxr-xr-x 6 root root 0 Feb 15 19:44 cache
drwxr-xr-x 2 root root 0 Feb 15 19:44 cpufreq
drwxr-xr-x 7 root root 0 Mar 2 15:59 cpuidle
-r-------- 1 root root 4096 Mar 2 15:59 crash_notes
-r-------- 1 root root 4096 Mar 2 15:59 crash_notes_size
lrwxrwxrwx 1 root root 0 Mar 2 15:59 driver -> ../../../../bus/cpu/drivers/processor
lrwxrwxrwx 1 root root 0 Mar 2 15:59 firmware_node -> ../../../LNXSYSTM:00/device:00/ACPI0004:00/LNXCPU:00
drwxr-xr-x 2 root root 0 Mar 2 15:59 microcode
lrwxrwxrwx 1 root root 0 Mar 2 15:59 node0 -> ../../node/node0
-rw-r--r-- 1 root root 4096 Feb 15 19:43 online
drwxr-xr-x 2 root root 0 Mar 2 15:59 power
lrwxrwxrwx 1 root root 0 Mar 2 15:59 subsystem -> ../../../../bus/cpu
drwxr-xr-x 2 root root 0 Feb 15 19:45 thermal_throttle
drwxr-xr-x 2 root root 0 Feb 15 19:44 topology
-rw-r--r-- 1 root root 4096 Feb 15 19:43 uevent
具体请看
1、查看物理CPU个数
# 查看物理CPU个数
[root@ht2 src]# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
4
[root@ht2 src]# grep 'physical id' /proc/cpuinfo | sort -u
physical id : 0 //第1颗物理CPU,单个CPU的标号
physical id : 1 //第2颗物理cpu,单个CPU的标号
physical id : 2 //第3颗物理cpu,单个CPU的标号
physical id : 3 //第4颗物理cpu,单个CPU的标号
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
# 插槽上的CPU个数,物理cpu数量等于不同physical id的个数
2、看核数
查看每个物理CPU中core的个数(即核数)即查看是几核
[root@ht2 src]# cat /proc/cpuinfo| grep "cpu cores"| uniq
cpu cores : 10
3、是否启用超线程,这里core*2了
# 查看逻辑CPU的个数
[root@ht2 src]# cat /proc/cpuinfo| grep "processor"| wc -l
80
//查看是否启用超线程
[root@ht2 src]# cat /proc/cpuinfo |grep siblings
siblings : 20 //单个物理CPU逻辑物理核数
//查看是否启用超线程
[root@ht2 src]# cat /proc/cpuinfo | grep -e "cpu cores" -e "siblings" | sort | uniq
cpu cores : 10 (每颗物理cpu内部有10个核心)
siblings : 20
这里siblings是cpu cores的两倍,说明超线程打开。
一般,物理CPU个数 X cpu cores = 逻辑CPU的个数。如果不相等的话,则表示服务器的CPU支持超线程技术
4、查看几核(逻辑cpu), 输出CPU型号
[root@ht2 src]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
80 Intel(R) Xeon(R) CPU E7-4830 v2 @ 2.20GHz //查询E7-4830 cpu芯片信息,支持有最大cpu配置为4颗,最大内存容量32g,超线程技术支持,支持64bit
5、查看CPU的主频
[root@ht2 src]# cat /proc/cpuinfo |grep MHz|uniq //该机器是80核,一共是80个
cpu MHz : 1214.468
cpu MHz : 1248.500
cpu MHz : 1241.109
cpu MHz : 1272.992
cpu MHz : 1299.546
.... 省略了一共80个
//物理id,一共80个
//具有相同物理id的cpu都是同一物理套接字中的线程或内核(cpu执行是以线程为单位)
[root@ht2 src]# cat /proc/cpuinfo | grep physical | uniq -c
... 省略
1 physical id : 0
1 address sizes : 46 bits physical, 48 bits virtual
1 physical id : 01 physical id : 1
1 address sizes : 46 bits physical, 48 bits virtual
1 physical id : 1
1 address sizes : 46 bits physical, 48 bits virtual1 physical id : 2
1 address sizes : 46 bits physical, 48 bits virtual1 physical id : 3
1 address sizes : 46 bits physical, 48 bits virtual
...... 省略
[root@ht2 src]# cat /proc/cpuinfo | grep physical | wc -l
160
[root@ht2 src]# grep 'physical id' /proc/cpuinfo | sort -u
physical id : 0
physical id : 1
physical id : 2
physical id : 3
计算下我们能有多少个线程使用
逻辑CPU数量 = 物理cpu数量 x cpu cores这个规格值 x siblings/cpu cores(如果支持并支持超线程,此值大于1)
逻辑CPU数量 = 4 x 10 x 2
逻辑cpu即我们说的线程,线程(lwp,轻量级进程)是linux执行的基本单位,也是cpu执行的基本单位。
相关聚焦
1、逻辑CPU个数:
[root@ht2 src]# cat /proc/cpuinfo | grep "cpu cores" | wc -l
80
2、物理CPU个数:
[root@ht2 src]# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
4
3、每个物理CPU中Core的个数:
[root@ht2 src]# cat /proc/cpuinfo | grep "cpu cores" | wc -l
80
如何查看Linux相关信息
参看linux版本
uname -a
cat /proc/version
如何查看linux 系统版本
[root@ht2 src]# cat /etc/redhat-release
[root@ht2 src]# lsb_release -a
[root@ht2 src]# cat /etc/issue
如何查看linux 系统内存大小的信息,可以查看总内存,剩余内存,可使用内存等信息
cat /proc/meminfo
查看系统运行在多少位模式。例如:64位系统或32位系统。
[root@ht2 src]# getconf LONG_BIT
64
//getconf PAGE_SIZE 得到系统配置信息,这个getconf很有用
写个查看cpu的shell脚本,保存为cpu.sh ,执行 sh cpu.sh
#!/bin/bash
#1.查看物理cpu个数
physical=`cat /proc/cpuinfo |grep 'physical id'|sort -u|wc -l`
echo 物理cpu个数: "$physical"
#2.查看核心数量
core=`grep 'core id' /proc/cpuinfo | sort -u | wc -l`
echo 核心数: "$core"
#3.查看线程数
processor=`grep 'processor' /proc/cpuinfo | sort -u | wc -l`
echo 线程数:"$processor"
#4.查看cpu型号
cpu=`dmidecode -s processor-version`
echo -e 'cpu型号:\n'"$cpu"
windows上我们查看机器cpu信息方式如下:
C:\Users\qingshuic>wmic
wmic:root\cli>cpu get Name //cpu的芯片信息
Name
Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
//core个数
wmic:root\cli>cpu get NumberOfCores
NumberOfCores
2
//线程数
wmic:root\cli>cpu get NumberOfLogicalProcessors
NumberOfLogicalProcessors
4
wmic:root\cli>cpu get
AddressWidth Architecture Availability Caption ConfigManagerErrorCode ConfigManagerUse
64 9 3 Intel64 Family 6 Model 78 Stepping 3
windows也可以通过systeminfo命令查看相关硬件信息
主机名: QGSHUIC
OS 名称: Microsoft Windows 7 专业版
OS 版本: 6.1.7601 Service Pack 1 Build 7601
OS 制造商: Microsoft Corporation
OS 配置: 独立工作站
OS 构件类型: Multiprocessor Free
注册的所有人: lenovo
注册的组织:
产品 ID: 00371-8992671-00004
初始安装日期: 2016-03-18, 14:30:07
系统启动时间: 2022-02-25, 10:27:42
系统制造商: LENOVO
系统型号: 20ETA00ECD
系统类型: x64-based PC
处理器: 安装了 1 个处理器。
[01]: Intel64 Family 6 Model 78 Stepping 3 GenuineIntel ~2301 Mhz
BIOS 版本: LENOVO R00ET37W (1.12 ), 2016-01-17
Windows 目录: C:\Windows
系统目录: C:\Windows\system32
启动设备: \Device\HarddiskVolume1
系统区域设置: zh-cn;中文(中国)
输入法区域设置: zh-cn;中文(中国)
时区: (UTC+08:00) 北京,重庆,香港特别行政区,乌鲁木齐
物理内存总量: 15,860 MB
可用的物理内存: 1,646 MB
虚拟内存: 最大值: 31,718 MB
虚拟内存: 可用: 12,282 MB
虚拟内存: 使用中: 19,436 MB
页面文件位置: D:\pagefile.sys
域: WORKGROUP
登录服务器: \\QINGSHUIC
修补程序: 安装了 110 个修补程序。
[01]: KB2849697
[02]: KB2849696
[03]: KB2841134
......
网卡: 安装了 10 个 NIC。
[01]: Bluetooth 设备(个人区域网)
连接名: Bluetooth 网络连接
状态: 没有硬件
[02]: Intel(R) Ethernet Connection I219-V
连接名: 本地连接
状态: 媒体连接已中断
[03]: VMware Virtual Ethernet Adapter for VMnet1
连接名: VMware Network Adapter VMnet1
状态: 没有硬件
[04]: Intel(R) Dual Band Wireless-AC 3165
连接名: 1111
启用 DHCP: 是
DHCP 服务器: 132.11.101.1
IP 地址
[01]: 172.55.11.11
[02]: fe50::d77:658c:116a:7b4b
[05]: VMware Virtual Ethernet Adapter for VMnet8
连接名: VMware Network Adapter VMnet8
状态: 没有硬件
[06]: Microsoft Virtual WiFi Miniport Adapter
连接名: 无线网络连接 211111
状态: 没有硬件
[07]: Microsoft Virtual WiFi Miniport Adapter
连接名: 无线网络连接 31111
状态: 没有硬件
[08]: TAP-Windows Adapter V9
连接名: 本地连接 3
启用 DHCP: 是
DHCP 服务器: 11.2.0.53
IP 地址
[01]: 10.2.0.54
[02]: fe80::245e:2e7:134b:71a0
[09]: VirtualBox Host-Only Ethernet Adapter
连接名: VirtualBox Host-Only Network
状态: 没有硬件
[10]: VirtualBox Host-Only Ethernet Adapter
连接名: VirtualBox Host-Only Network #2
状态: 没有硬件
服务器的cpu 核心、线程的更多相关文章
- 关于CPU核心,线程,进程,并发,并行,及java线程之间的关系
前言:作为一个转行java的小白,一直搞不清楚java中的多线程.于是来梳理一下关于CPU核心,线程,进程,并发,并行,及java线程之间的关系, 1.CPU角度来看: 我们以Intel的Core i ...
- 如何查看服务器CPU核心数和线程数
知道服务器CPU型号,那么我们如何在服务器里面查看服务器CPU核心数和线程数呢? 步骤: 先用鼠标右键点击屏幕最下方的任务栏空白处.会弹出一个菜单. 在菜单中用鼠标左键点选“启动任务管理器”. 点击任 ...
- windows下绑定线程(进程)到指定的CPU核心
一个程序指定到单独一个CPU上运行会比不指定CPU运行时快.这中间主要有两个原因:1)CPU切换时损耗的性能.2)Intel的自动降频技术和windows的机制冲突:windows有一个功能是平衡负载 ...
- SetThreadAffinityMask windows下绑定线程(进程)到指定的CPU核心
原帖地址:https://www.cnblogs.com/lvdongjie/p/4476766.html 一个程序指定到单独一个CPU上运行会比不指定CPU运行时快.这中间主要有两个原因:1)CPU ...
- 根据CPU核心数确定线程池并发线程数(转)
一.抛出问题 关于如何计算并发线程数,一般分两派,来自两本书,且都是好书,到底哪个是对的?问题追踪后,整理如下: 第一派:<Java Concurrency in Practice>即&l ...
- CPU密集型和IO密集型(判断最大核心线程的最大线程数)
CPU密集型和IO密集型(判断最大核心线程的最大线程数) CPU密集型 1.CPU密集型获取电脑CPU的最大核数,几核,最大线程数就是几Runtime.getRuntime().availablePr ...
- 全面了解 Linux 服务器 - 1. 查看 Linux 服务器的 CPU 详细情况
1. 查看 Linux 服务器的 CPU 详细情况 判断依据: 具有相同的 core id 的 CPU 是同意个 core 超线程. 具有相同的 physical id 的 CPU 是同一个 CPU ...
- 关于服务器的CPU的几个概念学习总结
物理CPU 物理CPU: 物理CPU是指插在主板上面的CPU芯片.即指在主板上肉眼能看到的CPU的个数.一般而言,个人台式机或笔记本上只会有一个物理CPU芯片.而服务器主板上往往有多个物理CPU. L ...
- ubuntu下查看服务器的CPU详细情况
https://www.cnblogs.com/liuq/p/5623565.html 全面了解 Linux 服务器 - 1. 查看 Linux 服务器的 CPU 详细情况 ubuntu下查看服务器的 ...
随机推荐
- SQL语句的使用,SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT INTO - 向数据库表中插入数据
SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL). SQL (结构化查询语言)是用于执行查询的语法. 但是 SQL 语言也包含用于更新. ...
- 软件工程homework-002
博客信息 沈阳航空航天大学计算机学院2020软件工程作业 作业要求 https://edu.cnblogs.com/campus/sau/Computer1701-1705/homework/1058 ...
- 2022年官网下安装NodeJS最全版与官网查阅方法
目录 安装部署NodeJS 1.百度搜索NodeJS. 2.选择下载,windows版,选择64位下载 3.找到本地安装包位置,双击打开 4.选择同意,点击下一步 5.选择安装目录,点击下一步 6.选 ...
- Java &、&&、|、||、^、<<、>>、~、>>>等运算符
&(按位与) 运算规则:两个为真才为真 (1&1=1 , 1&0=0 , 0&1=0 , 0&0=0) 例:3&5=1 3的二进制位是0000 0011 ...
- WIRESHARK 提取百度云客户端中的下载地址
序言:近两年感觉云盘是越来越不行了,什么115,360,华为,新浪一些网盘纷纷关门,现在手里能用的就只剩下一个百度云坚挺着.可那速度,简直感人,好吧,没钱冲VIP,就去找了一个破解版,用了一年,爽得飞 ...
- C# WinForm 解决子窗体放大后,子窗体图标放大的问题
解决子窗体放大后,子窗体的图标占用主窗体的菜单栏的问题. C#子窗体最大化时, 那个图标跑到主窗体的前面去了, 造成界面不统一也不美观. 所以需要进行处理, 只要有主窗体的菜单ItemAdded事件中 ...
- 《浅谈产品》——加油APP的平台是如何做的
最近油价又上涨了,我们平常去加油站加油用到"某滴加油"."某团加油"这些APP,一般情况下加200的油,各种优惠下来,最终只需要付170左右就可以了,基本是优惠 ...
- 【freertos】002-posix模拟器设计与cortex m3异常处理
目录 前言 posix 标准接口层设计 模拟器的系统心跳 模拟器的task底层实质 模拟器的任务切换原理 cortex M3/M4异常处理 双堆栈指针 双操作模式 栈帧 EXC_RETURN 前言 如 ...
- Java代码块与构造器方法执行顺序
直接上源码: public class Demo4 { { //这里是代码块 System.out.println("这里是代码块"); } static { //这里是静态代码块 ...
- JDK,JRE,JVM的作用及关系
1.作用 JVM:Java虚拟机,保证Java语言跨平台 JRE:Java程序的运行环境 JDK:Java程序的开发环境 2.关系 JRE:JVM+类库 JDK:JRE+工具