linux命令行多核
linux命令行多核详细介绍
在 Linux 命令行中,多核 CPU 的利用涉及系统信息查看、任务并行处理、进程调度优化等方面。以下是相关的常用操作和工具:
一、查看多核 CPU 信息
- 查看 CPU 核心配置
使用lscpu命令快速获取 CPU 核心数、线程数、Socket 数等信息:
bashlscpu- 物理核心数:
Core(s) per socket×Socket(s) - 逻辑核心数(含超线程):
CPU(s)(通常等于物理核心数 × 线程数 / 核心,如超线程开启时为 2)
- 物理核心数:
- 详细 CPU 核心信息
通过/proc/cpuinfo查看每个逻辑核心的详细信息,统计processor条目数即为逻辑核心数:
bash/proc/cpuinfo
二、利用多核并行执行任务
- GNU Parallel(并行任务工具)
安装:sudo apt install parallel(Debian/Ubuntu)或yum install parallel(RHEL/CentOS)
示例:并行处理 100 个文件(按 CPU 核心数分配任务):
bashparallel- 指定核心数:
parallel -j 4(使用 4 个核心)。
- 指定核心数:
- Make 并行编译
在编译代码时,通过-j选项指定使用的核心数(建议不超过逻辑核心数):
bash-jnproc - Xargs 并行执行
通过-P选项指定并行任务数:
bashf convert resized_ - 多核压缩 / 解压
gzip多核版(需支持-@选项,如 pigz):bashpigz input.txt output.txt.gzpigz input.txt
bzip2多核版:lbzip2 -n 4 input.txt
三、监控多核 CPU 使用情况
- 实时监控工具
- htop:交互式查看每个进程在各核心上的分布(按
F2开启 CPU 核心显示):bash - nmon:多功能监控工具,显示 CPU 核心利用率:bash
nmon
- htop:交互式查看每个进程在各核心上的分布(按
- 命令行统计
- 查看各核心负载(平均负载反映多核压力):bash
- 按核心统计 CPU 使用率:bash
ALL
- 查看各核心负载(平均负载反映多核压力):bash
四、进程绑定特定核心(CPU 亲和力)
使用 taskset 命令将进程固定到指定核心,避免内核调度开销:
- 启动时绑定核心:bash
taskset ./program - 修改已运行进程的亲和力:bash
taskset pidof program-c后跟核心编号(逻辑核心),-p操作现有进程。
五、多核性能优化相关命令
- 调整内核调度参数(需 root 权限)
- 查看 / 设置 CPU 调度策略(如实时任务优先级):bash
sched
- 查看 / 设置 CPU 调度策略(如实时任务优先级):bash
- NUMA 架构支持
若系统支持 NUMA(非统一内存访问),可使用numactl优化内存分配:
bashnumactl ./program
总结
Linux 命令行对多核的支持主要通过并行工具(如 GNU Parallel、make)、进程调度(taskset、numactl)和监控工具(htop、nmon)实现。合理利用这些工具可充分发挥多核 CPU 性能,尤其在编译、数据处理、高性能计算等场景中效果显著。根据任务类型(CPU 密集型 / IO 密集型)选择合适的并行策略和核心数,避免过度占用系统资源。