在单核单线程的传统CPU里,这个问题很简单,一个主机就只有一个CPU,现在的主机大多是多核的CPU系统,
通常有可能包括一个或者多个物理CPU(sockets),每个物理CPU又包含一个或者多个核心(cores),每个核又包含一个或者多个线程(threads,逻辑上的CPU)。
甚至高端的处理器里,每个线程还会包含一个或者多个可以做并行计算的运算单元。
作为开发或者测试人员等Linux专业用户,我们通常需要知道
1)当前系统有几个核
2)每个核支持哪些特性(比如主频,构架等)
3)需要知道当前每个核的CPU占用率是多少等信息
lscpu
可以看到有几个CPU(socket), 每个CPU几个核,每个核几个thread,在线的CPU有几个,大小端,CPU架构,CPU的最低,最高主频等。
注意这里的on-line CPU(s) list: 显示的0-3,指的是有0,1,2,3这四个CPU(这里的CPU指的是threads, 就是通常我们听到的4核8线程,
在一般情况下每个线程都可以被视为一个独立的CPU)
top
top进去后,按数字键1,也可以看到CPU编号,0到3,以及每个CPU目前的使用情况:
us 用户空间占用CPU百分比
sy 内核空间占用CPU百分比
ni 用户进程空间内改变过优先级的进程占用CPU百分比
id 空闲CPU百分比
wa 等待输入输出的CPU时间百分比
hi 硬中断
si 软中断
通常,我们只需要看id就可以了,100%减去id剩下的就是CPU被占用了的CPU LOAD。
cat /proc/cpuinfo
这里可以看到每个core core的一些信息,实际普通的开发者通常不需要这些信息。
cd /sys/devices/system/cpu/cpu0/cpufreq
ls -l
可以看到CPU以下信息:哪些CPU,最大,最小,当前频率等,注意下图中得到当前主频是需要管理员权限的,所以需要用
sudo cat cpuinfo_cur_freq