lscpu - 显示 CPU 架构信息
概要
lscpu [选项]
描述
lscpu 从 sysfs、/proc/cpuinfo 以及任何适用的体系结构特定库(例如,Powerpc 上的 librtas)收集 CPU 架构信息。该命令的输出可以针对解析或人类轻松阅读进行优化。信息包括 CPU、线程、内核、套接字和非统一内存访问 (NUMA) 节点的数量。它还包括有关 CPU 缓存和缓存共享、系列、型号、bogoMIPS、字节顺序和步进的信息。
终端上的默认输出格式可能会发生变化,并且可以优化以提高可读性。非终端(例如,管道)的输出不受此优化影响,并且始终采用“字段:数据\n”格式。例如,使用“lscpu | less”可以查看默认输出,而无需进行优化。
在虚拟化环境中,显示的 CPU 架构信息反映了来宾操作系统的配置,这通常与物理(主机)系统不同。在支持检索物理拓扑信息的体系结构上,lscpu 还显示主机系统中物理套接字、芯片和内核的数量。
产生输出表的选项具有列表参数。使用此参数自定义命令输出。指定逗号分隔的列标签列表,以仅将输出表限制为指定的列,并以指定的顺序排列。请参阅“列”以获取有效列标签的列表。列标签不区分大小写。
并非所有体系结构都支持所有列。如果指定了不受支持的列,lscpu 将打印该列,但不提供任何数据。
缓存大小是所有 CPU 的汇总报告。在 v2.34 之前的版本报告每个内核的大小,但由于复杂的 CPU 拓扑和缓存共享方式,此输出令人困惑。有关缓存的更多详细信息,请参阅 --cache。从 v2.37 版本开始,lscpu 遵循 Linux 内核提供的缓存 ID,并且不一定从零开始。
选项
-a, --all
在输出中包含在线和离线 CPU 的行(-e 的默认设置)。此选项只能与选项 -e 或 -p 一起指定。
-B, --bytes
以字节而不是人类可读的格式打印大小。
默认情况下,大小的单位是字节,并且单位前缀是 2^10 的幂(1024)。为了达到更好的可读性,符号的缩写被截断,仅显示它们的第一个字母;例如,“1 KiB”和“1 MiB”分别显示为“1 K”和“1 M”,并且故意省略了“iB”,它是这些缩写的组成部分。
-b, --online
将输出限制为在线 CPU(-p 的默认设置)。此选项只能与 -e 或 -p 选项一起使用。
-C, --caches[=list]
显示有关 CPU 缓存的详细信息。有关可用信息的详细信息,请参阅 --help 输出。
如果省略 list 参数,则包含命令输出中的所有可用数据的列。
当指定 list 参数时,选项字符串、等号 (=) 和 list 字符串中不能包含任何空格或其他空白字符。示例:-C=NAME,ONE-SIZE 或 --caches=NAME,ONE-SIZE。
如果以 +list 格式指定 list(例如,lscpu -C=+ALLOC-POLICY),则可以扩展默认列列表。
-c, --offline
将输出限制为离线 CPU。此选项只能与 -e 或 -p 选项一起使用。
--hierarchic[=when]
在摘要输出中使用子部分。为了向后兼容,默认情况下,只有在输出到终端时才使用子部分,而在非终端输出中使用扁平输出。可选参数 when 可以是 never、always 或 auto。如果省略 when 参数,则其默认为“always”。
-e, --extended[=list]
以人类可读的格式显示 CPU 信息。
如果省略 list 参数,则包含默认列。默认输出可能会发生变化。
当指定 list 参数时,选项字符串、等号 (=) 和 list 字符串中不能包含任何空格或其他空白字符。示例:'-e=cpu,node' 或 '--extended=cpu,node'。
如果以 +list 格式指定 list,则可以扩展默认列列表(例如,lscpu -e=+MHZ)。
-J, --json
为默认摘要或扩展输出(参见 --extended)使用 JSON 输出格式。为了向后兼容,JSON 输出遵循非终端(例如管道)的默认摘要行为,在这种情况下,子部分缺失。另请参见 --hierarchic。
-p, --parse[=list]
优化命令输出,以便于解析。
如果省略 list 参数,则命令输出与早期版本的 lscpu 兼容。在这种兼容格式中,使用两个逗号分隔 CPU 缓存列。如果未识别任何 CPU 缓存,则省略缓存列。如果使用 list 参数,则缓存列使用冒号 (:) 分隔。
当指定 list 参数时,选项字符串、等号 (=) 和 list 字符串中不能包含任何空格或其他空白字符。示例:'-p=cpu,node' 或 '--parse=cpu,node'。
如果以 +list 格式指定 list,则可以扩展默认列列表(例如,lscpu -p=+MHZ)。
-r, --raw
以其原始格式生成输出。此选项仅适用于 --extended、--parse 和 --caches 输出。
-s, --sysroot directory
收集与要执行 lscpu 命令的实例不同的 Linux 实例的 CPU 数据。指定的目录是要检查的 Linux 实例的系统根目录。
-x, --hex
使用十六进制掩码表示 CPU 集(例如 "ff”)。默认情况下,以列表格式打印集(例如 0,1)。请注意,在 2.30 版本之前,掩码是以 0 前缀打印的。
-y, --physical
为所有包含拓扑元素的列(核心、插槽等)显示物理 ID。除了由 lscpu 分配的逻辑 ID 之外,物理 ID 是平台特定的值,由内核提供。物理 ID 不一定唯一,并且可能不是按顺序排列的。如果内核无法检索元素的物理 ID,则 lscpu 打印破折号 (-) 字符。
CPU 逻辑编号不受此选项的影响。
--output-all
输出所有可用的列。此选项必须与 --extended、--parse 或 --caches 结合使用。
错误
CPU 模型的概述基于启发式方法,考虑到 CPU 模型名称和实现者 ID 等差异。在某些(不寻常的)情况下,CPU 可能在标志或 BogoMIPS 方面有所不同,但在 lscpu 概述中会忽略这些差异。
有时在 Xen Dom0 中,内核会报告错误的数据。
在虚拟硬件上,每个插槽中的核心数量等可能会出错。
作者
Cai Qian <_>、Karel Zak <_>、Heiko Carstens <_>
参见
chcpu(8)
报告错误
如需报告错误,请使用问题跟踪器 [https://github.com/util-linux/util-linux/issues]。
可用性
lscpu 命令是 util-linux 软件包的一部分,可以从 Linux 内核存档 [https://www.kernel.org/pub/linux/utils/util-linux/] 下载。