Linux查看CPU核数
**方法一:通过proc文件系统 获取cpu总数量 命令如下 **
cat /proc/cpuinfo |grep processor
方法二:nproc命令
nproc
方法三:lscpu 显示CPU详细信息
lscpu
Architecture: # 架构
CPU op-mode(s): # CPU 运行模式
Byte Order: # 字节序
CPU(s): # 逻辑CPU颗数
On-line CPU(s) list: # 在线CPU列表
Thread(s) per core: # 每个核的线程数
Core(s) per socket: # 每个CPU插槽核数/每颗物理CPU核数
CPU socket(s): # CPU插槽数
NUMA node(s): # NUMA节点
Vendor ID: # CPU厂商ID
CPU family: # CPU系列
Model: # 型号
Model name: # 型号名称
Stepping: # 步进
CPU MHz: # CPU主频
CPU max MHz: # CPU最大主频
CPU min MHz: # CPU最小主频
Virtualization: # CPU支持的虚拟化技术
L1d cache: # 一级缓存(CPU的L1数据缓存)
L1i cache: # 一级缓存(CPU的L1指令缓存)
L2 cache: # 二级缓存
查看 cpu0 线程数:
cat /sys/devices/system/cpu/cpu0/topology/core_cpus
(2)以可读格式显示 CPU 信息。
lscpu -e
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE
0 0 0 0 0:0:0:0 yes
1 0 0 1 1:1:1:0 yes
(3)显示 CPU 指定列的信息,如查看逻辑 CPU。
lscpu -e=CPU
CPU
0
1
可用列有:
CPU 逻辑 CPU 数量。
CORE 逻辑核心数量。一个核心可以包含多个CPU。
SOCKET 逻辑插座数量。一个 socket 可以包含多个核心。
BOOK 逻辑 book 数。一个 book 可以包含多个插座。
NODE 逻辑 NUMA 节点数量。
DRAWER 逻辑抽屉数(不太明白,好像和book有关系)
CACHE CPU 之间如何共享缓存
POLARIZATION 虚拟硬件上的 CPU 调度模式
ADDRESS CPU 物理地址
CONFIGURED 管理程序是否分配了CPU
ONLINE 显示 Linux 当前是否使用 CPU
MAXMHZ CPU 最大频率
MINMHZ CPU 最小频率
方法四:top 命令
参数详解
https://www.cnblogs.com/zhangmingcheng/p/15658923.html
执行top命令 控制台输入1,查看当前系统cpu总核数
top的使用方式 top [-d number] | top [-bnp]
参数解释:
-d:number代表秒数,表示top命令显示的页面更新一次的间隔。默认是5秒。 -b:以批次的方式执行top。 -n:与-b配合使用,表示需要进行几次top命令的输出结果。 -p:指定特定的pid进程号进行观察。
在top命令显示的页面还可以输入以下按键执行相应的功能(注意大小写区分的):
P 按照 进程 cpu 的使用率排序 (默认情况)
M 按照 内存的使用情况排序
q 退出
shift +< 上一页
shift +> 下一页
r 调整nice 值 renice
f 选择显示那一列
F,O 按那一列排序
k 杀死一个进程
c 显示command详细信息
样例图片
top各输出参数含义
top前5行统计信息
第1行:top - 21:09:34 up 2 days, 9:49, 2 users, load average: 3.90, 3.19, 2.49
第1行是任务队列信息,其参数如下:
内容 | 含义 |
---|---|
21:09:34 | 表示当前时间 |
up 2 days, 9:49 | 表示系统运行时间 |
2 users | 当前登录用户数 |
load average: 3.90, 3.19, 2.49 | 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。 |
load average: 如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
第2行:Tasks: 532 total, 2 running, 515 sleeping, 0 stopped, 15 zombie
第3行:%Cpu(s): 14.1 us, 5.6 sy, 0.0 ni, 80.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
第2、3行为进程和CPU的信息
当有多个CPU时,这些内容可能会超过两行,其参数如下:
内容 | 含义 |
---|---|
532 total | 进程总数 |
2 running | 正在运行的进程数 |
515 sleeping | 睡眠的进程数 |
0 stopped | 停止的进程数 |
15 zombie | 僵尸进程数 |
14.1 us | 用户空间占用CPU百分比,这个值是当前机器逻辑CPU占用百分比累加值/CPU逻辑核数所得,可以使用top 1命令查看各核CPU使用情况 |
5.6 sy | 内核空间占用CPU百分比,这个值是当前机器逻辑CPU占用百分比累加值/CPU逻辑核数所得,可以使用top 1命令查看各核CPU使用情况 |
0.0 ni | 用户进程空间内改变过优先级的进程占用CPU百分比 |
80.3 id | 空闲CPU百分比 |
0.0 wa | 等待输入输出的CPU时间百分比 |
0.0 hi | 硬中断(Hardware IRQ)占用CPU的百分比 |
0.0 si | 软中断(Software Interrupts)占用CPU的百分比 |
0.0 st | |
第4行:KiB Mem : 32780544 total, 7673504 free, 8104836 used, 17002204 buff/cache | |
第5行:KiB Swap: 0 total, 0 free, 0 used. 24058588 avail Mem | |
第4、5行为内存信息 | |
其参数如下: | |
内容 | 含义 |
32780544 total | 物理总内存 |
7673504 free | 空闲内存总量 |
8104836 used | 使用的物理内存总量 |
17002204 buff/cache | 用作内核缓存的内存量 |
KiB Swap | 交换空间 |
24058588 avail Mem | 代表可用于进程下一次分配的物理内存数量 |
缓冲的交换区总量即内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入。
计算可用内存数有一个近似的公式:
第四行的free + 第四行的buffers + 第五行的cached
二、进程信息
列名 | 含义 |
---|---|
PID | 进程ID |
USER | 进程所有者的用户名 |
PR | 优先级 |
NI | nice值,负值表示高优先级,正值表示低优先级 |
VIRT | 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES |
SWAP | 进程使用的虚拟内存中,被换出的大小,单位kb |
RES | 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA |
S | 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
%MEM | 进程使用的物理内存百分比 |
TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
COMMAND | 命令行 |