linux 获取内核线程数,如何从命令行获取Linux中的CPU /内核数量?
前言:
基于/proc/cpuinfo的答案的问题是,它们parsing了供人类使用的信息,因此缺乏为机器分析devise的稳定格式 :输出格式可能因平台和运行时间条件而有所不同; 在Linux上使用lscpu -p (和OSX上的sysctl )可以绕过这个问题 。
getconf _NPROCESSORS_ONLN / getconf NPROCESSORS_ONLN不区分逻辑 CPU和物理 CPU。
这里有一个bash代码片断,它可以在Linux和macOS上运行,以确定在线 – 逻辑或物理 CPU的数量 ; 请参阅评论的细节。
Linux使用lscpu ,macOS使用sysctl 。
术语说明 : CPU指操作系统所见的最小处理单元。 非超线程核心每个对应1个CPU,而超线程核心包含多于1个(通常是2个)逻辑CPU。
Linux使用以下分类法,从最小单元开始: CPU < 核心 < 套接字 < 书 < 节点 ,每个级别包括下一个较低级别的一个或多个实例。
我的知识有些不稳定 – 如果我错了,请告诉我。 有没有人知道在这方面“书”是什么?
# macOS: Use `sysctl -n hw.*cpu_max`, which returns the values of # interest directly. # CAVEAT: Using the "_max" key suffixes means that the *maximum* # available number of CPUs is reported, whereas the # current power-management mode could make *fewer* CPUs # available; dropping the "_max" suffix would report the # number of *currently* available ones; see [1] below. # # Linux: Parse output from `lscpu -p`, where each output line represents # a distinct (logical) CPU. # Note: Newer versions of `lscpu` support more flexible output # formats, but we stick with the parseable legacy format # generated by `-p` to support older distros, too. # `-p` reports *online* CPUs only - ie, on hot-pluggable # systems, currently disabled (offline) CPUs are NOT # reported. # Number of LOGICAL CPUs (includes those reported by hyper-threading cores) # Linux: Simply count the number of (non-comment) output lines from `lscpu -p`, # which tells us the number of *logical* CPUs. logicalCpuCount=$([[ $(uname) = 'Darwin' ]] && sysctl -n hw.logicalcpu_max || lscpu -p | egrep -v '^#' | wc -l) # Number of PHYSICAL CPUs (cores). # Linux: The 2nd column contains the core ID, with each core ID having 1 or # - in the case of hyperthreading - more logical CPUs. # Counting the *unique* cores across lines tells us the # number of *physical* CPUs (cores). physicalCpuCount=$([[ $(uname) = 'Darwin' ]] && sysctl -n hw.physicalcpu_max || lscpu -p | egrep -v '^#' | sort -u -t, -k 2,4 | wc -l)
[1] macOS sysctl (3)文档
请注意,除macOS以外的BSD派生系统(例如FreeBSD)仅支持sysctl的hw.ncpu密钥,这在macOS上已弃用; 我不清楚哪个新密钥hw.npu对应于: hw.(logical|physical)cpu_[max] 。
帮助纠正物理CPU数量lscpu命令的帽子提示lscpu 。
注意 : lscpu -p输出不包括“book”列( man页提到“books”是分类层次结构中套接字和节点之间的实体)。 如果“books”在给定的Linux系统上运行( 是否有人知道何时以及如何? ),则可能会报告physical-CPU-count命令(这是基于lscpu报告非唯一跨 ID 更高级的实体 ;例如:来自2个不同套接字的2个不同的核心可以具有相同的ID)。
linux 获取内核线程数,如何从命令行获取Linux中的CPU /内核数量?相关推荐
- linux终端使用python3,3 个 Python 命令行工具 | Linux 中国
原标题:3 个 Python 命令行工具 | Linux 中国 用 Click.Docopt 和 Fire 库写你自己的命令行应用. -- Jeff Triplett, Lacey Williams ...
- linux 控制台存储,技术|使用 Stratis 从命令行管理 Linux 存储
通过从命令行运行它,得到这个易于使用的 Linux 存储工具的主要用途. 正如本系列的第一部分和第二部分中所讨论的,Stratis 是一个具有与 ZFS 和 Btrfs 相似功能的卷管理文件系统.在本 ...
- Linux 下五个顶级的开源命令行 Shell
这个世界上有两种 Linux 用户:敢于冒险的和态度谨慎的. 其中一类用户总是本能的去尝试任何能够戳中其痛点的新选择.他们尝试过不计其数的窗口管理器.系统发行版和几乎所有能找到的桌面插件. 另一类用户 ...
- linux的进程/线程/协程系列3:查看linux内核源码——vim+ctags/find+grep
linux的进程/线程/协程系列3:查看linux内核源码--vim+ctags/find+grep 前言 摘要: 1. 下载linux内核源码 2. 打标签方法:vim+ctags 2.1 安装vi ...
- NASM学习(二)——从命令行获取参数
NASM学习(二)--从命令行获取参数 学习汇编的目的是增强自己对硬件体系的熟悉与编译.链接等等阶段的熟悉 上文我们已经学会了怎么使用NASM来打印HELLO,WORLD了,总结一下,主要是使用系统调 ...
- 如何用cmd看计算机硬件配置,如何通过命令行获取计算机硬件详细信息
你可能会有很多的原因需要查清计算机硬件的详细信息.例如,你需要修复某些问题并在论坛上发出请求,人们可能会立即询问你的计算机具体的信息.或者当你想要升级计算机配置时,你需要知道现有的硬件型号和能够升级的 ...
- mac 钥匙串密码_从命令行获取钥匙串密码
mac 钥匙串密码 One of my favorite command line utilities is Guillermo Rauch's wifi-password, a utility th ...
- linux终端的重启命令有哪些,如何使用命令行重启Linux
有时在调试问题或更新内核时,您可能需要重新引导Linux系统.如果您有headless服务器,则需要了解如何从命令行重新启动系统. 在现代Linux发行版中,systemctl实用程序替换了较旧的Li ...
- linux wpa_supplicant连接无线网络(转),如何使用wpa_supplicant从命令行配置Linux无线
如何使用wpa_supplicant从命令行配置Linux无线 如何使用wpa_supplicant从命令行配置Linux无线 wpa_supplicant is used to connect wi ...
最新文章
- sql server2005 常用语句
- Redis缓存使用技巧
- Linux Grep 命令说明
- PHP第五周答案,算法设计与分析第五周作业——Word Ladder
- 几种纯css布局的导航栏
- sae中使用django migrate导致13013的问题
- java char i=2+#039;2#039;;_图说String(三)String中#039;+#039;和StringBuilder的区别
- jupyter怎么安装jieba_解决Jupyter无法导入已安装的 module问题
- 使用drawBitmapMesh扭曲图像
- todo elk搭建日志系统
- python大漠插件官网视频教程_python调用大漠插件教程01注册大漠
- PPT批量导入文字(Python实现)
- 合唱队形——线性dp
- Jeecgboot报错Failed to configure a DataSource: ‘unl‘ attribute is not specified and no embedded dataso
- 文字图片转成点阵的小工具
- Java生鲜电商平台-技术方案与文档下载
- Qter 遇见的大牛!
- 免费赠书啦!逃离帝都,书搬不动,大量AI类、技术类、科幻类书免费送给小伙伴...
- 验厂中首当其冲的BSCI是什么
- 在Ubuntu20.04中安装edb1.3.0