nproc命令使用手册
目录
[一、 引言](#一、 引言)
[1. 文档概述](#1. 文档概述)
[2. 适用范围](#2. 适用范围)
[二、 安装说明](#二、 安装说明)
[三、 使用说明](#三、 使用说明)
[1. 基本语法结构](#1. 基本语法结构)
[2. 选项与参数说明](#2. 选项与参数说明)
[3. 使用示例](#3. 使用示例)
[四、 附录](#四、 附录)
- 引言
- 文档概述
本手册详细介绍了nproc命令的使用方法。nproc 是银河麒麟操作系统中的处理器资源查询工具,用于获取当前进程可使用的处理器(逻辑 CPU)数量,其返回值直接受 CPU 亲和性、cgroup 配额与容器资源限制的影响,是并行任务调度的基础依据。
主要功能:
- 输出当前进程可用的处理器数量(如 8、16、64)。
- 自动反映 taskset、cgroup 及容器 CPU 限制后的真实可用核数。
- 与 --all 选项配合,可对比系统逻辑核总数与可用核数差异。
- 输出为纯数字,可直接嵌入脚本参与并发度计算。
核心特点:
- 属于 coreutils 基础组件,无外部依赖。
- 执行开销极小,可在脚本中高频调用。
- 选项语义在主流 Linux 发行版间保持一致。
- 适用范围
本手册面向以下用户:
系统管理员:核对 CPU 资源分配是否与业务规格相符,规划进程并发规模。
技术支持工程师:排查容器、虚拟机内 CPU 核数识别异常。
开发人员:为并行编译、线程池与任务队列设置合理的并发度。
- 安装说明
nproc 工具默认集成于银河麒麟操作系统(属于 coreutils 软件包),无需额外安装。
验证安装与版本信息:
nproc --version
- 使用说明
- 基本语法结构
nproc 选项
选项:控制统计范围与输出形式,可省略。
-
- 选项与参数说明
|------------|-------------------------|------------------|
| 选项 | 描述 | 示例 |
| --all | 显示系统全部已安装处理器数量(忽略亲和性限制) | nproc --all |
| --ignore=N | 在可用处理器基础上再排除 N 个处理器 | nproc --ignore=2 |
| --help | 显示命令帮助信息 | nproc --help |
| --version | 显示版本及版权信息 | nproc --version |
-
- 使用示例
示例 1:查看当前可用的处理器数量
场景:确认容器或 taskset 限制后,当前进程实际可调度的 CPU 核数。
命令:
nproc
输出示例:
8
说明:
(1)输出值为当前进程可用处理器数量,受 CPU 亲和性与 cgroup 配额共同约束;
(2)该值可能与服务器物理核心总数不一致,需通过 --all 对比确认。
扩展用法:并行编译时按可用核数设置并发度:
make -j$(nproc)
示例 2:查看系统全部处理器数量
场景:核对系统实际识别的逻辑处理器总数,用于排查核数识别偏少问题。
命令:
nproc --all
输出示例:
16
说明:
(1)--all 忽略 CPU 亲和性限制,统计系统全部已安装处理器;
(2)若 --all 显示 16 而 nproc 显示 8,说明进程被限制在 8 个处理器上运行。
示例 3:为系统预留处理器资源
场景:为系统进程预留 2 个核,避免业务进程占满全部 CPU 导致管理通道卡顿。
命令:
nproc --ignore=2
输出示例:
6
说明:
(1)--ignore=N 表示在可用处理器数量基础上再排除 N 个;
(2)常用于脚本中动态计算业务进程并发度,如 nproc --ignore=1。
- 附录
无。