当前位置: 首页 > news >正文

CPU绑核并独占

要让一个进程绑定并独占一个 CPU 核(即确保该进程只在指定的核上运行,并且其他进程不会使用该核),可以按照以下步骤操作:

  1. 绑定进程到指定 CPU 核

使用 taskset 或 cpuset 将进程绑定到某个核(例如 CPU 3):

taskset -cp 3 <PID>  # 将进程绑定到 CPU 3

或启动时直接绑定:

taskset -c 3 ./your_program  # 启动时绑定到 CPU 3
  1. 确保该 CPU 核不被其他进程使用

默认情况下,Linux 调度器仍可能将其他进程调度到该核。要独占该核,需通过 isolcpus 内核参数隔离该核:
步骤:
修改 GRUB 配置(以隔离 CPU 3 为例):

sudo vim /etc/default/grub

找到 GRUB_CMDLINE_LINUX,添加 isolcpus=3(多个核用逗号分隔,如 isolcpus=2,3):

GRUB_CMDLINE_LINUX="isolcpus=3 ..."

更新 GRUB 并重启:

sudo update-grub   # 对于 Debian/Ubuntu
sudo reboot

验证隔离是否生效:

cat /proc/cmdline  # 检查是否包含 isolcpus=3
  1. 可选:进一步限制内核线程(IRQ 等)

默认情况下,内核线程和中断(IRQ)仍可能使用隔离的核。若要严格独占:
禁止 IRQ 使用隔离核:


sudo vim /etc/default/irqbalance

设置 IRQBALANCE_BANNED_CPUS(十六进制掩码,如隔离 CPU 3 对应 8=1000):


IRQBALANCE_BANNED_CPUS=8

重启服务:


sudo systemctl restart irqbalance

手动设置 IRQ 亲和性(可选):


echo 0 | sudo tee /proc/irq/*/smp_affinity_list  # 将所有 IRQ 绑定到 CPU 0
  1. 验证独占性
    检查进程绑定:

taskset -cp <PID>  # 应显示 CPU 3

监控该 CPU 的使用:

top -1 -p <PID>      # 查看进程是否只在 CPU 3 运行mpstat -P ALL 1      # 观察 CPU 3 是否仅被目标进程使用

注意事项

性能权衡:独占核会减少系统可用资源,可能影响整体吞吐量。实时性需求:若需更低延迟,可配合 chrt 设置实时优先级:
chrt -f 99 taskset -c 3 ./your_program
NUMA 架构:在多插槽服务器上,优先绑定到同一 NUMA 节点的核以减少跨节点延迟。

通过以上步骤,目标进程将完全独占指定的 CPU 核。

http://www.dtcms.com/a/296700.html

相关文章:

  • 网络编程之多路复用---mutilio
  • tauri实用教程:阻止除控制台关闭程序外的全部手动关闭
  • 大模型-batch之static batch
  • 基于Matlab图像处理的水果分级系统
  • 【软件与环境】--Visual Studio2022安装教程
  • JMeter压测黑马点评优惠券秒杀的配置及请求爆红问题的解决(详细图解)
  • 在Ubuntu上使用QEMU学习RISC-V程序(2)gdb调试
  • 2025年7月23日 AI 今日头条
  • C++ 基础入门
  • 144. 二叉树的前序遍历
  • rt-thread加一个库
  • matrix-breakout-2-morpheus靶机通关教程
  • Android Studio历史版本快速下载(二次修改记录)
  • Shell的正则表达式
  • (nice!!!)(LeetCode 每日一题) 2322. 从树中删除边的最小分数 (深度优先搜索dfs + 树)
  • linux C -glib库的基本使用
  • 【华为机试】1208. 尽可能使字符串相等
  • 蚁群优化算法(Ant Colony Optimization, ACO)简介
  • Scrcpy启动闪退
  • Function Calling:让大模型学会使用工具
  • es0102---语法格式、数据类型、整合springboot、创建库、创建映射、新增数据、自定义查询
  • tensorflow搭建神经网络
  • SQL基础⑩ | 数据类型篇
  • 哈希表模拟实现
  • Java学习日记_廖万忠
  • Spring Cloud Alibaba Sentinel 源码阅读之流量控制算法
  • C++编程基础四大件
  • Bright Data 实战指南:从竞品数据抓取到电商策略优化全流程
  • 探秘 VSAR软件:CAN报文转DBC信号的便捷工具
  • 力扣189:轮转数组