前言:

基于/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 /内核数量?相关推荐

  1. linux终端使用python3,3 个 Python 命令行工具 | Linux 中国

    原标题:3 个 Python 命令行工具 | Linux 中国 用 Click.Docopt 和 Fire 库写你自己的命令行应用. -- Jeff Triplett, Lacey Williams ...

  2. linux 控制台存储,技术|使用 Stratis 从命令行管理 Linux 存储

    通过从命令行运行它,得到这个易于使用的 Linux 存储工具的主要用途. 正如本系列的第一部分和第二部分中所讨论的,Stratis 是一个具有与 ZFS 和 Btrfs 相似功能的卷管理文件系统.在本 ...

  3. Linux 下五个顶级的开源命令行 Shell

    这个世界上有两种 Linux 用户:敢于冒险的和态度谨慎的. 其中一类用户总是本能的去尝试任何能够戳中其痛点的新选择.他们尝试过不计其数的窗口管理器.系统发行版和几乎所有能找到的桌面插件. 另一类用户 ...

  4. linux的进程/线程/协程系列3:查看linux内核源码——vim+ctags/find+grep

    linux的进程/线程/协程系列3:查看linux内核源码--vim+ctags/find+grep 前言 摘要: 1. 下载linux内核源码 2. 打标签方法:vim+ctags 2.1 安装vi ...

  5. NASM学习(二)——从命令行获取参数

    NASM学习(二)--从命令行获取参数 学习汇编的目的是增强自己对硬件体系的熟悉与编译.链接等等阶段的熟悉 上文我们已经学会了怎么使用NASM来打印HELLO,WORLD了,总结一下,主要是使用系统调 ...

  6. 如何用cmd看计算机硬件配置,如何通过命令行获取计算机硬件详细信息

    你可能会有很多的原因需要查清计算机硬件的详细信息.例如,你需要修复某些问题并在论坛上发出请求,人们可能会立即询问你的计算机具体的信息.或者当你想要升级计算机配置时,你需要知道现有的硬件型号和能够升级的 ...

  7. mac 钥匙串密码_从命令行获取钥匙串密码

    mac 钥匙串密码 One of my favorite command line utilities is Guillermo Rauch's wifi-password, a utility th ...

  8. linux终端的重启命令有哪些,如何使用命令行重启Linux

    有时在调试问题或更新内核时,您可能需要重新引导Linux系统.如果您有headless服务器,则需要了解如何从命令行重新启动系统. 在现代Linux发行版中,systemctl实用程序替换了较旧的Li ...

  9. linux wpa_supplicant连接无线网络(转),如何使用wpa_supplicant从命令行配置Linux无线

    如何使用wpa_supplicant从命令行配置Linux无线 如何使用wpa_supplicant从命令行配置Linux无线 wpa_supplicant is used to connect wi ...

最新文章

  1. sql server2005 常用语句
  2. Redis缓存使用技巧
  3. Linux Grep 命令说明
  4. PHP第五周答案,算法设计与分析第五周作业——Word Ladder
  5. 几种纯css布局的导航栏
  6. sae中使用django migrate导致13013的问题
  7. java char i=2+#039;2#039;;_图说String(三)String中#039;+#039;和StringBuilder的区别
  8. jupyter怎么安装jieba_解决Jupyter无法导入已安装的 module问题
  9. 使用drawBitmapMesh扭曲图像
  10. todo elk搭建日志系统
  11. python大漠插件官网视频教程_python调用大漠插件教程01注册大漠
  12. PPT批量导入文字(Python实现)
  13. 合唱队形——线性dp
  14. Jeecgboot报错Failed to configure a DataSource: ‘unl‘ attribute is not specified and no embedded dataso
  15. 文字图片转成点阵的小工具
  16. Java生鲜电商平台-技术方案与文档下载
  17. Qter 遇见的大牛!
  18. 免费赠书啦!逃离帝都,书搬不动,大量AI类、技术类、科幻类书免费送给小伙伴...
  19. 验厂中首当其冲的BSCI是什么
  20. 在Ubuntu20.04中安装edb1.3.0

热门文章

  1. python写入txt文件正常,但是写入csv文件中文乱码问题
  2. 类选择器选择非唯一属性无法精确取值的问题
  3. 5.25. Spring boot with Git version
  4. SVG基本形状及样式设置
  5. Android EditText如何去除边框添加下划线
  6. Spring Task配置
  7. 怎样一步一步删除(linux amp; UNIX)环境下 oracle 11g 集群节点
  8. 暂无,进程那篇深度不够
  9. MongoDB replSet
  10. Lync Server 2013之初次安装