Linux系统如何查询CPU核心数? (怎么查看linux是几核的)

在Linux操作系统中,查询CPU核心数是一个非常基础和实用的操作,它可以帮助我们更好地了解计算机的硬件信息,也可以帮助我们优化计算机的性能。那么,在Linux系统中,如何查询CPU核心数呢?本文将详细介绍这个操作。

一、通过lscpu命令查询CPU核心数

lscpu是Linux系统中一个非常常用的命令,它可以显示CPU的信息,包括处理器架构、逻辑处理器数、单个处理器的核心数、缓存等信息。它的使用非常简单,只需要在终端中输入如下命令即可:

“`shell

lscpu

“`

执行该命令后,我们可以看到如下的输出:

“`shell

Architecture: x86_64

CPU op-mode(s): 32-bit, 64-bit

Byte Order: Little Endian

CPU(s): 4

On-line CPU(s) list: 0-3

Thread(s) per core: 2

Core(s) per socket: 2

Socket(s): 1

NUMA node(s): 1

Vendor ID: GenuineIntel

CPU family: 6

Model: 158

Model name: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz

Stepping: 10

CPU MHz: 711.077

CPU max MHz: 4000.0000

CPU min MHz: 400.0000

BogoMIPS: 3984.00

Virtualization: VT-x

L1d cache: 32K

L1i cache: 32K

L2 cache: 256K

L3 cache: 8192K

NUMA node0 CPU(s): 0-3

“`

在输出结果中,我们可以看到CPU(s)字段,它表示当前计算机的逻辑CPU数,也就是CPU核心数。在上面的例子中,我们可以看到该计算机有4个逻辑CPU。另外,我们还可以看到Thread(s) per core字段和Core(s) per socket字段,它们分别表示每个核心的线程数和每个插槽的核心数。

除了上面的输出外,lscpu命令还可以通过参数来输出更加详细的信息。例如,如果我们希望查看某个具体的CPU核心的信息,可以使用-l参数:

“`shell

lscpu -l

“`

执行该命令后,我们可以看到如下的输出:

“`shell

CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ

0 0 0 0 0:0:0:0 yes 4000.0000 400.0000

1 0 0 1 1:1:1:0 yes 4000.0000 400.0000

2 0 0 2 2:2:2:0 yes 4000.0000 400.0000

3 0 0 3 3:3:3:0 yes 4000.0000 400.0000

“`

在输出结果中,我们可以看到CPU、NODE、SOCKET、CORE等字段,它们分别表示CPU编号、NUMA节点编号、插槽编号和核心编号,L1d、L1i、L2和L3表示各级缓存大小,ONLINE表示该CPU是否在线,MAXMHZ和MINMHZ分别表示该CPU的更大和最小频率。

二、通过/proc/cpuinfo文件查询CPU核心数

除了使用lscpu命令以外,还可以通过查看/proc/cpuinfo文件来查询CPU核心数。该文件包含了本地CPU的详细信息。

我们可以使用如下命令来查看/proc/cpuinfo文件:

“`shell

cat /proc/cpuinfo

“`

执行该命令后,我们可以看到如下的输出:

“`shell

processor : 0

vendor_id : GenuineIntel

cpu family : 6

model : 158

model name : Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz

stepping : 10

cpu MHz : 711.077

cache size : 8192 KB

physical id : 0

siblings : 8

core id : 0

cpu cores : 4

apicid : 0

initial apicid : 0

fpu : yes

fpu_exception : yes

cpuid level : 22

wp : yes

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 art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti sd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgase tsc_adjust bmi1 avx2 ep bmi2 erms invpcid mpx rdseed adx ap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts md_clear flush_l1d

bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit srbds

bogomips : 3984.00

clflush size : 64

cache_alignment : 64

address sizes : 39 bits physical, 48 bits virtual

power management:

“`

在输出结果中,我们可以看到cpu cores字段,它表示每个物理CPU的核心数。在上面的例子中,我们可以看到该计算机共有8个物理CPU核心。

需要注意的是,上述命令的简单输出只提供了硬件的基本信息,如果想得到更加详细和完整的信息,可以使用grep命令等进一步解析/proc/cpuinfo文件。

三、通过top命令查询CPU核心数

除了使用lscpu命令和/proc/cpuinfo文件以外,还可以通过top命令来查询CPU核心数。

top命令是一个非常强大的Linux命令,它可以用于监视系统进程和资源利用情况,包括CPU利用率、内存使用情况、磁盘IO情况等。而在top命令的内部,也含有CPU核心数信息。我们只需要在终端中输入如下命令即可:

“`shell

top

“`

执行该命令后,我们可以看到如下的输出:

“`shell

top – 13:23:12 up 13 days, 2:21, 3 users, load average: 0.43, 0.44, 0.45

Tasks: 279 total, 1 running, 278 sleeping, 0 stopped, 0 zombie

%Cpu(s): 10.0 us, 2.5 sy, 0.0 ni, 87.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem : 16290372+total, 2464016 free, 69575200 used, 71310644 buff/cache

KiB Swap: 1048572 total, 1048572 free, 0 used. 88117380+ avl Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

6797 root 20 0 21.545g 8.053g 1.002g S 0.7 5.2 497:15.89 Xorg

18377 zezhongz 20 0 388496 273160 34980 S 0.3 0.2 144:18.28 gnome-shell

1 root 20 0 168852 7508 4552 S 0.0 0.0 1:12.01 systemd

2 root 20 0 0 0 0 S 0.0 0.0 0:00.23 kthreadd

3 root 20 0 0 0 0 S 0.0 0.0 13:10.76 ksoftirqd/0

5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H

7 root 20 0 0 0 0 S 0.0 0.0 3:25.73 rcu_sched

8 root 20 0 0 0 0 S 0.0 0.0 0:58.74 rcu_bh

9 root rt 0 0 0 0 S 0.0 0.0 0:00.10 migration/0

10 root rt 0 0 0 0 S 0.0 0.0 0:05.91 watchdog/0

11 root rt 0 0 0 0 S 0.0 0.0 0:00.89 watchdog/1

12 root rt 0 0 0 0 S 0.0 0.0 0:05.87 migration/1

13 root 20 0 0 0 0 S 0.0 0.0 0:26.39 ksoftirqd/1

15 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0H

“`

在输出结果中,我们可以看到%Cpu(s)字段,它表示当前计算机的CPU使用率,其中us表示用户空间占用CPU的百分比,sy表示内核空间占用CPU的百分比,ni表示优先级较高的进程占用CPU的百分比,id表示CPU空闲的百分比。

除此以外,我们还可以使用数字键1来切换top命令的CPU模式。在CPU模式下,top命令也会显示所有CPU的使用率、进程数量和运行时间等统计信息。在CPU模式下,我们可以看到如下的输出:

“`shell

top – 13:32:25 up 13 days, 2:31, 3 users, load average: 0.53, 0.50, 0.48

Tasks: 282 total, 2 running, 279 sleeping, 0 stopped, 1 zombie

%Cpu0 : 13.9 us, 1.5 sy, 0.0 ni, 84.2 id, 0.4 wa, 0.0 hi, 0.0 si, 0.0 st

%Cpu1 : 15.1 us, 3.3 sy, 0.0 ni, 81.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

%Cpu2 : 9.7 us, 1.8 sy, 0.0 ni, 88.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

%Cpu3 : 3.3 us, 0.9 sy, 0.0 ni, 95.5 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st

%Cpu4 : 18.5 us, 2.9 sy, 0.0 ni, 78.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

%Cpu5 : 11.1 us, 1.7 sy, 0.0 ni, 86.6 id, 0.0 wa, 0.0 hi, 0.3 si, 0.3 st

%Cpu6 : 16.6 us, 2.6 sy, 0.0 ni, 80.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

%Cpu7 : 3.3 us, 0.7 sy, 0.0 ni, 95.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem : 16290372+total, 2437388 free, 69632788 used, 70298256 buff/cache

KiB Swap: 1048572 total, 1048572 free, 0 used. 87921028+ avl Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

24057 root 20 0 146464 3856 3076 R 19.9 0.0 0:00.00 top

1 root 20 0 168852 7508 4552 S 0.0 0.0 1:12.02 systemd

2 root 20 0 0 0 0 S 0.0 0.0 0:00.23 kthreadd

3 root 20 0 0 0 0 S 0.0 0.0 13:10.78 ksoftirqd/0

5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H

“`

在输出结果中,我们可以看到所有CPU的使用率和进程数量。

四、

在Linux系统中,查询CPU核心数是一个非常关键和实用的操作,它可以帮助我们更好地了解计算机的硬件信息,也可以帮助我们优化计算机的性能。在本文中,我们介绍了三种不同的查询CPU核心数的方法,它们分别是使用lscpu命令、查看/proc/cpuinfo文件和使用top命令。不同的方法各有优缺点,我们可以根据具体情况选择适合自己的方法。

相关问题拓展阅读:

AIX、Linux查看CPU及内存参数

一、AIX操作系统

1. 查询CPU信息

AIX的硬件信息可以通过prtconf命令看到。

1. 1 查看逻辑CPU个数

#pmcycles -m

CPU 0 runs at 4204 MHz

CPU 1 runs at 4204 MHz

CPU 2 runs at 4204 MHz

CPU 3 runs at 4204 MHz

CPU 4 runs at 4204 MHz

CPU 5 runs at 4204 MHz

CPU 6 runs at 4204 MHz

CPU 7 runs at 4204 MHz

上面描述有8个CPU,CPU的主频为4.2G赫兹

1.2 查看物理CPU个数

#prtconf|grep Processors

Number Of Processors: 4

1.3 确定CPU是几核

用逻辑CPU除以物理CPU就是核数。

1.4 查看单个CPU的详细信息

#lsattr -E -l proc0

2. 查询内存信息

2.1 # lsdev -Cc memory

查看配置的物理内存设备,下面为其输出示例:

L2cache0 Available L2 Cache

mem0 Available Memory

# lsattr -El mem0

输出类似如下所示:

goodsize 7936 Amount of usable physical memory in Mbytes False

size 7936 Total amount of physical memory in Mbytes False

此例说明机器的物理内存为5888MB。如果前面lsdev的输出中有设备名 mem1,则使用同样的命令查看其对应的大小并依此类推。

2.2 # bootinfo -r

此例说明机器清宴的物理内存为kB。

2.3 # prtconf

输出类似下面所示:

Memory Size: 7936 MB

本命令会打出当前主机的详细配置信启正碧息悄举,输出中有Memory Size属性,指示其当前物理内存大小

2.4 # svmon -G

输出类似下面所示:

size inuse free pin virtual

memory

pg space

work pers clnt

pin

in use532

PageSize PoolSize inuse pgsp pin virtual

s 4 KB2

m 64 KB 2970

其中:size表示真实的物理内存的大小,单位是4k.因此当前物理内存大小为4k*=kB

二、Linux操作系统

1. 查询CPU信息

Linux下的CPU信息全部都在/proc/cpuinfo这个文件中,可以直接打开看。

1.1 查看物理CPU的个数

#cat /proc/cpuinfo |grep “physical id”|sort |uniq|wc -l

1.2 查看逻辑CPU的个数

#cat /proc/cpuinfo |grep “processor”|wc -l

1.3 查看CPU是几核

#cat /proc/cpuinfo |grep “cores”|uniq

1.4 查看CPU的主频

#cat /proc/cpuinfo |grep MHz|uniq

2. 查询内存信息

#free -m

linux查看cpu个数命令

(一)概念

① 物理CPU

实际Server中插槽上的CPU个数

物理cpu数量,可以数不重复的 physical id 有几个

② 逻辑CPU

/proc/cpuinfo 用来存储cpu硬件信息的

信息内容分别列出了processor 0 –processor n 的规格。这里需要注意,n是逻辑cpu数

一般情况,我们认为一颗cpu可以有多核,加上散丛intel的超线程技术(HT), 可以在逻辑上再分一倍数量的cpu core出来

逻辑CPU数量=物理cpu数量 x cpu cores 这个规格值 x 2(如果支持并开启ht)

备注一下:Linux下斗掘租top查看的CPU也是逻辑CPU个数

③ CPU核数

一块CPU上面能处理数据的芯片组的数量、比如现在的i5 760,是双核心四线程的CPU、而 i是四核心四线程的CPU

一般来说,物理CPU个数×每颗核数就应该等于逻辑CPU的个数,如果不相等的话,则表示服务器的CPU支持超空兆线程技术

二 查看CPU信息

当我们 cat /proc/cpuinfo 时、

具有相同core id的CPU是同一个core的超线程

具有相同physical id的CPU是同一个CPU封装的线程或核心

三 下面举例说明

① 查看物理CPU的个数

#cat /proc/cpuinfo |grep “physical id”|sort |uniq|wc -l

2

② 查看逻辑CPU的个数

#cat /proc/cpuinfo |grep “processor”|wc -l

24

③ 查看CPU是几核

#cat /proc/cpuinfo |grep “cores”|uniq

6

我这里应该是2个Cpu,每个Cpu有6个core,应该是Intel的U,支持超线程,所以显示24

cat /proc/cpuinfo

我记得里面有

linux cpu使用率是单核还是多核的

和睿频没有关系。。。 Linux 的CPU占用率是按照单核心计算的,如果该进程支持多线程,就可以占用多个核心,裂雀单个进程超过100%也是很正常如漏的事。但如果服务器本身没什么负载,单进程或很多进程CPU占用率超过100%就渣源烂需要查看原因了。

这个是要看具体你的机器配置的

1、使用top命令查看

top运行拆蚂后,蠢御枣按1,即可看到几核

2、看cpuinfo 信息

cat /proc/cpuinfo |grep “cores”|uniq

3、带拆关于cpu使用率,可以看每核心的占比,然后算一下平均值

关于怎么查看linux是几核的的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Linux系统如何查询CPU核心数? (怎么查看linux是几核的)