(3)lscpu详解 (每周一个linux命令系列)

linux命令 lscpu详解


引言:今天的命令是用来看cpu信息的lscpu

lscpu

我们先看man lscpu


display information about the CPU architecture

翻译:显示cpu架构信息

具体的描述如下:


lscpu gathers CPU architecture information from sysfs, /proc/cpuinfo
and any applicable architecture-specific libraries (e.g. librtas on
Powerpc). The command output can be optimized for parsing or for
easy readability by humans. The information includes, for example,
the number of CPUs, threads, cores, sockets, and Non-Uniform Memory
Access (NUMA) nodes. There is also information about the CPU caches
and cache sharing, family, model, bogoMIPS, byte order, and stepping. In virtualized environments, the CPU architecture information dis‐
played reflects the configuration of the guest operating system which
is typically different from the physical (host) system. On architec‐
tures that support retrieving physical topology information, lscpu
also displays the number of physical sockets, chips, cores in the
host system. Options that result in an output table have a list argument. Use
this argument to customize the command output. Specify a comma-sepa‐
rated list of column labels to limit the output table to only the
specified columns, arranged in the specified order. See COLUMNS for
a list of valid column labels. The column labels are not case sensi‐
tive. Not all columns are supported on all architectures. If an unsup‐
ported column is specified, lscpu prints the column but does not pro‐
vide any data for it.

翻译如下:

lscpu命令从sysfs、/proc/cpuinfo、或者某些适用于特定架构的库中收集数据。命令的输出会以人类易读的方式展示如下信息:cpu、线程、核心、插槽和Non-Uniform MemoryAccess (NUMA)节点的数量,也有cpu共享缓存,cpu的族号,运行模式,处理指令的速度,大小端,步进等信息

在虚拟环境下,系统架构信息展示映射着客户操作系统的设置,这和物理主机是有明显差异的。在架构上支持检索物理拓扑信息,lscpu命令也显示主机系统中的物理插槽数量,芯片,内核数。

Options可以提供一些参数,用这些参数可以自定义命令输出。指定一个列表分隔符,指定一个逗号分隔的列标签列表,以将输出表限制为按指定的顺序排列的指定的列。按指定顺序排列。 有效列标签请参考COLUMNS的列表。列标签不区分大小写。(man的输出中有各种参数太多这里就不放出来了。可以自己去查看)

我们再来看一下命令执行结果

Architecture:          x86_64 //架构--这里的64指的位处理器
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian //小端法
CPU(s): 4 //cpu数量
On-line CPU(s) list: 0-3 //在线的cpu数量 有些时候为了省电或者过热的时候,某些CPU会停止运行
Thread(s) per core: 1 //每个核心的线程数
Core(s) per socket: 4 //每个插槽上有几个核心
座: 1
NUMA 节点: 1 //NUMA 这个太复杂,所以他的解释在下面
厂商 ID: GenuineIntel
CPU 系列: 6
型号: 94
型号名称: Intel(R) Xeon(R) CPU E3-1225 v5 @ 3.30GHz
步进: 3 //这个可以简单理解为版本号 也有A0这样的标识方式
CPU MHz: 900.023
CPU max MHz: 3700.0000
CPU min MHz: 800.0000
BogoMIPS: 6624.00 // MIPS是每秒百万条指令,Bogo是Bogus(伪)的意思,这里是估算MIPS值
虚拟化: VT-x //虚拟化技术,这个我不太懂,不敢乱说
L1d 缓存: 32K //一级高速缓存 dcache 用来存储数据
L1i 缓存: 32K //一级高速缓存 icache 用来存储指令
L2 缓存: 256K
L3 缓存: 8192K //缓存速度上 L1 > L2 > L3 > DDR(内存) 内存的理论速度在几十g一秒
NUMA 节点0 CPU: 0-3 //四个cpu在一个numa节点上
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 aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb invpcid_single intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 dtherm arat pln pts hwp hwp_notify hwp_act_window hwp_epp //Flags是标识了一些cpu的特征 具体可以查看https://blog.csdn.net/nemo2011/article/details/7531212

man中还有更多的描述,对大家来说意义也不大,接下来我们直接看选项了

    选项:
-a, --all 同时打印在线和离线 CPU (-e 选项默认值) 此选项只能与选项-e 或-p 一起指定
-b, --online 只打印在线 CPU (-p 选项默认值) 此选项只能与选项-e 或-p 一起指定
-c, --offline 只打印离线 CPU 此选项只能与选项-e 或-p 一起指定。
-e, --extended[=<列表>] 打印扩展的可读格式 (类似表格的形式)
如果省略该列表参数, 则在命令输出中包括所有可用数据的列
指定列表参数时, 选项字符串、等号 (=) 和列表不能包含任何空格或其他空白。
结果如下:
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ
0 0 0 0 0:0:0:0 是 3700.0000 800.0000
1 0 0 1 1:1:1:0 是 3700.0000 800.0000
2 0 0 2 2:2:2:0 是 3700.0000 800.0000
3 0 0 3 3:3:3:0 是 3700.0000 800.0000
带list示例: lscpu -e=cpu,node
-p, --parse[=<列表>] 打印可解析格式
如果省略该列表参数, 则命令输出与早期版本的 lscpu 兼容。
在此兼容格式中, 两个逗号用于分隔 CPU 缓存列。
如果未标识任何 CPU 缓存, 则忽略缓存列。
如果使用列表参数, 则缓存列将用冒号 (:) 分隔
示例: lscpu -p=cpu,node,,L1d:L1i
我在使用上面命令的时候,不带缓存列正常显示,带缓存列不能输出数据也没报错,迷茫
-s, --sysroot <目录> 以指定目录作为系统根目录
收集 lscpu 命令所发出的实例以外的 Linux 实例的 CPU 数据。
指定的目录是要检查的 Linux 实例的系统根。
-x, --hex 打印十六进制掩码而非 CPU 列表
-y, --physical print physical instead of logical IDs
显示所有列的物理 id。 除了由 lscpu 分配的逻辑 id 之外
物理 id 是由内核提供的特定于平台的值。无法检索元素的物理 ID 用破折号 (-) 字符显示
此选项不影响 CPU 逻辑编号。 -h, --help 显示此帮助并退出
-V, --version 输出版本信息并退出 可用的列:
CPU 逻辑 CPU 数量
CORE 逻辑核心数量
SOCKET 逻辑(CPU)座数量
NODE 逻辑 NUMA 节点数量
BOOK 逻辑 book 数
DRAWER logical drawer number //逻辑抽屉数(不太明白,好像和book有关系)
CACHE shows how caches are shared between CPUs //cpu之间如何共享缓存
POLARIZATION CPU dispatching mode on virtual hardware //虚拟硬件上的CPU调度模式
ADDRESS physical address of a CPU //cpu物理地址
CONFIGURED shows if the hypervisor has allocated the CPU //管理程序是否分配了cpu
ONLINE shows if Linux currently makes use of the CPU //在使用的cpu
MAXMHZ shows the maximum MHz of the CPU //最大频率
MINMHZ shows the minimum MHz of the CPU //最小频率

NUMA(Non-Uniform MemoryAccess)

中文名:分布式体系结构 (非统一内存体系结构)
区别于 UMA,统一内存体系结构

由于展开来讲设计到很多问题,也需要单独写一篇长文章才能说完,这里可以精简的说一下:

UMA中,多个CPU访问内存是没有区别的,成本和速度相同。而在NUMA中,可以看成每个CPU有自己的内存,被称为本地内存,CPU之间通过一种方式联结,使得CPU可以访问非管辖范围内的内存(非本地内存),但是。由于不属于自己的一亩三分地,需要通过另一个通道获取,速度回比访问本地内存要慢。但是好处是这种方式增加了扩展性。缺点是速度会受影响,尤其是对mysql这类的数据库软件有较大影响。一般应该是接触不到,接触到了再去详细了解吧

(3)lscpu详解 (每周一个linux命令系列)的更多相关文章

  1. (5)ps详解 (每周一个linux命令系列)

    (5)ps详解 (每周一个linux命令系列) linux命令 ps详解 引言:今天的命令是用来看进程状态的ps命令 ps 我们先看man ps ps - report a snapshot of t ...

  2. (4)top详解 (每周一个linux命令系列)

    (4)top详解 (每周一个linux命令系列) linux命令 top详解 引言:今天的命令是用来看cpu信息的top top 我们先看man top top - display Linux pro ...

  3. (2)free详解 (每周一个linux命令系列)

    (2)free详解 (每周一个linux命令系列) linux命令 free详解 引言:今天的命令是用来看内存的free free 换一个套路,我们先看man free中对free的描述: Displ ...

  4. (6)sudo命令详解(每周一个linux命令系列)

    首先说句抱歉,最近事情比较复杂,停更了一阵子.我又回来啦 多用户管理 我们常用的windows个人系统虽然可以设置多用户,但是实际上是不可以多用户同时登陆的(这个我实验过,我以前用windows服务器 ...

  5. (7)awk命令(每周一个linux命令系列)

    简介 awk是一个强大的文本分析工具,尤其是在应对格式化比较好的日志文件时,简单来说awk就是把文件逐行的读入,以空格为默认分隔符(也可以指定分隔符)将每行切片处理. 语法 awk [选项参数] 's ...

  6. 每周一个linux命令之---uptime详解

    每周一个linux命令之---uptime详解 linux命令 uptime详解 引言:从今天开始,每周更新一个对程序员有用的linux命令,我真的没敢写每天一个,我怕我坚持不下去,每周一个还是可以的 ...

  7. 企业sudo权限规划详解 (实测一个堆命令搞定)

    简述问题:         随着公司的服务器越来越多,人员流动性也开始与日俱增,以往管理服务器的陈旧思想应当摒弃,公司需要有 更好更完善的权限体系,经过多轮沟通和协商,公司一致决定重新整理规划权限体系 ...

  8. (11)nc命令(每周一个linux命令)

    nc(netcat)实用程序几乎可用于所有涉及TCP或UDP的事情.它可以打开TCP连接,发送UDP数据包,监听任意TCP和UDP端口,进行端口扫描,处理IPv4和IPv6.与telnet不同,nc可 ...

  9. 【转载】每天一个Linux命令

    目  录 每天一个linux命令(1)  : ls 命令 每天一个linux命令(2)  : cd 命令 每天一个linux命令(3)  : pwd 命令 每天一个linux命令(4)  : mkdi ...

随机推荐

  1. LInux Crontab及命令

    定时任务(cron job)被用于安排那些需要被周期性执行的命令.利用它,你可以配置某些命令或者脚本,让它们在某个设定的时间内周期性地运行.cron 是 Linux 或者类 Unix 系统中最为实用的 ...

  2. Repeater 控件的嵌套使用

      Repeater 控件的嵌套使用   ItemDataBound:数据绑定的时候(正在进行时)发生,多用在Repeater控件嵌套,对子Repeater控件进行数据绑定及模板列中统计列的计算处理等 ...

  3. MapReduce核心 - - - Shuffle

    大数据名词(1) -Shuffle     Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle是必须要了解的.我看过很多相关的资料,但每 ...

  4. 2017-10-10 都市传说: "部分"中文出现乱码

    知乎原链, 作者亦本人 事情起源于项目另一开发者在中文Windows下构建时遇到的部分中文出现乱码问题. 当时很不解的是, 为什么会只有部分出现乱码. 第一感觉是, 如果编码转换不正确, 要么全乱码, ...

  5. NFS共享权限挂载

    mount -t nfs 192.168.2.203:/data/lys /lys -o proto=tcp -o nolock mount 172.16.2.18:/home/arcgisserve ...

  6. KVM虚拟化研究-1

    使用qemu-img创建镜像 例子: [root@HOST31 rybtest]# qemu-img create -f raw /rybtest/test1.raw 1G 使用qemu-img查看镜 ...

  7. Angular基础(八) Observable & RxJS

    对于一个应用来说,获取数据的方法可以有很多,比如:Ajax, Websockets, LocalStorage, Indexdb, Service Workers,但是如何整合多种数据源.如何避免BU ...

  8. 【JS单元测试】Qunit 和 jsCoverage使用方法

          近日在网上浏览过很多有关js单元测试相关的文档,工具,但是,针对Qunit 和 jsCoverage使用方法,缺少详细说明,对于初入前端的人来说,很难明白其中的意思,特此整理这篇文章,希望 ...

  9. 洗礼灵魂,修炼python(56)--爬虫篇—知识补充—编码之url编码

    其实在最前面的某一篇博文里,是绝对提过编码的,有ASCII,有UTF-8,有GB2312等等,这些我绝对说过的. url编码 首先,Http协议中参数的传输是"key=value" ...

  10. Unity Chan 2D Asset

    Unity Chan 2D Asset 4月份時,UNITY CHAN 官方網站推出了3D大島こはく,之後也有更新1.11版,而在六月12日時,則釋出了2D版本素材,一樣可以在UNITY CHAN 官 ...