介绍

针对cpu密集型的任务,消耗cpu较高,最好设置cpu亲和度,以提高任务执行效率,避免cpu进行上下文切换,浪费不必要的性能。
特定任务(进程/线程)需要独占一个cpu核心并且不想让其他任务(进程/线程)使用该核心。

默认情况下,linux系统任务(进程/线程)可以使用任意一颗核心,要想把指定的cpu孤立出来,不让普通进程使用,需要修改grub参数

修改grub配置文件

以debian为例,默认grub参数配置文件为/etc/default/grub

找到GRUB_CMDLINE_LINUX行,

我这里这一行默认为

GRUB_CMDLINE_LINUX="text console=tty0 console=ttyS0,115200n8"

想要孤立11-23号cpu,可以这么写

GRUB_CMDLINE_LINUX="text isolcpus=11,12,13,14,15,16,17,18,19,20,21,22,23 nohz_full=11,12,13,14,15,16,17,18,19,20,21,22,23 rcu_nocbs=11,12,13,14,15,16,17,18,19,20,21,22,23 console=tty0 console=ttyS0,115200n8"

所有的核心必须用逗号分隔开来写11,12,13,14,15,16,17,18,19,20,21,22,23,不能写为11-23

生成新的grub引导文件

修改/etc/default/grub文件后,需要重新生成grub引导文件

使用命令

update-grub

或者

update-grub2

或者

grub-mkconfig -o /boot/grub/grub.cfg

上面3个命令都可以,其实就是重新生成了/boot/grub/grub.cfg文件,
重启系统生效,系统默认就不会再使用11-23号cpu了

使用孤立cpu

我们要想使用这些cpu,可以在命令行中使用taskset命令

比如:

正常的命令运行为

python xx.py

这样运行,一定不会使用11-23号cpu,

如果想使用11-15号cpu运行该进程,可以写为

taskset -c 11,12,13,14,15 python xx.py

或者

taskset -c 11-15 python xx.py

除了在命令行中用taskset命令,也可以使用库函数在代码中设置cpu亲和度来使用这些cpu

注意

在docker容器中,这些已经被孤立的cpu仍然可以被使用,
比如上面我们孤立了11-23号cpu,在docker容器中运行命令默认也是可以使用这些cpu的

当然,我们肯定不希望docker也可以使用这些cpu,因为这些cpu是供特定服务(进程)使用的,
在创建docker容器时,通过参数--cpuset-cpus指定容器只能使用哪些cpu,可以达到将11-23号cpu孤立的目的。

转载于:https://www.cnblogs.com/yanhai307/p/10783771.html

linux系统设置cpu孤立相关推荐

  1. linux系统设置服务开机启动3种方法,Linux开机启动程序详解

    linux系统设置服务开机启动 方法1:.利用ntsysv伪图形进行设置,利用root登陆 终端命令下输入ntsysv 回车:如下图 方法2:利用命令行chkconfig命令进行设置 简要说明一下ch ...

  2. linux监测cpu 内存,Linux中CPU与内存性能监测.docx

    Linux中CPU与内存性能监测(出处://chenleixing/article/details 在系统维护的过程中,随时可能有需要查看 CPU 使用率内存使用情况的需要,尤其是涉及到JVM,程序调 ...

  3. linux系统CPU,内存,磁盘,网络流量监控脚本

    前序 1, #cat /proc/stat/  信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2, #vmstat –s   或者 #vmstat    虚拟内存统 ...

  4. linux查看CPU信息

    Linux查看cpu个数 1. 查看物理CPU的个数  cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l  2. 查看逻 ...

  5. 查看cpu使用率_腾讯游戏开发工程师:Linux 机器 CPU 毛刺问题排查

    作者:jasonzxpan,腾讯 IEG 运营开发工程师 本文排查一个Linux 机器 CPU 毛刺问题,排查过程中不变更进程状态.也不会影响线上服务,最后还对 CPU 毛刺带来的风险进行了分析和验证 ...

  6. Linux服务器CPU、内存、磁盘空间、负载情况查看python脚本

    [本文出自天外归云的博客园] 网上搜,东拼西凑,组装了一个可以查Linux服务器CPU使用率.内存使用率.磁盘空间占用率.负载情况的python脚本. 脚本内容如下: # -*- coding:utf ...

  7. 为VMware虚拟机中的Linux系统设置固定IP的方法

    这篇文章主要介绍了为VMware虚拟机中的Linux系统设置固定IP的方法,包括以nat方式固定ip上网的方法,需要的朋友可以参考下 1.配置DNS: 修改 /etc/resolv.conf 文件,添 ...

  8. Linux 机器 CPU 毛刺问题排查

    作者:jasonzxpan,腾讯 IEG 运营开发工程师 本文排查一个Linux 机器 CPU 毛刺问题,排查过程中不变更进程状态.也不会影响线上服务,最后还对 CPU 毛刺带来的风险进行了分析和验证 ...

  9. 使用top命令监控linux系统cpu变化

    #!/bin/bash #使用top命令监控linux系统cpu变化#取系统当前时间(以追加的方式写入文件>>) date >> /home/monitor_script/cp ...

  10. cpu不支持虚拟装linux,linux 查看cpu是不是支持虚拟化

    linux 查看cpu是否支持虚拟化 一.Windows平台: 使用cpu-Z即可查看. 二.Linux平台: 在终端执行#cat /proc/cpuinfo(或#grep -E '(vmx|svm) ...

最新文章

  1. 2021年大数据Flink(二十六):​​​​​​​State代码示例
  2. POJ--2391--Ombrophobic Bovines【分割点+Floyd+Dinic优化+二分法答案】最大网络流量
  3. 深度学习要点———神经网络的类型
  4. 公司为何要对薪水保密?
  5. 解锁bios学习总结
  6. SQL中的left outer join,inner join,right outer join用法
  7. SAP云平台开启Kyma功能时发送到后台的HTTP请求
  8. POJ2942 Knights of the Round Table 点双连通分量,逆图,奇圈
  9. C语言课后习题(57)
  10. CLion 的使用(一)
  11. 百变人脸,趣味容颜,ALAE 人脸玩出新高度!
  12. 计算机操作和电子技术应用,电子技术应用是学什么
  13. ThinkPHP 验证码错误
  14. Ubuntu系统清理工具
  15. PostgreSQL中创建空间拓展(创建空间数据库)并连接到空间数据库,导入数据表操作
  16. 3dmax常见的八十个问题汇总
  17. Nginx 负载均衡动静分离配置
  18. 带上萌宠去上班 | IT办公室宠物报告
  19. 微信小程序 -语音合成:将文字转为语音(小程序插件:微信同声传译)
  20. 怎么利用计算机传输文件到邮箱,电脑和电脑怎么传文件_电脑和电脑之间如何传文件-win7之家...

热门文章

  1. Jenkins持续集成环境, 如何自定义 maven 仓库
  2. HDU3065 AC自动机
  3. Java猜拳小游戏(剪刀、石头、布)
  4. JSP 中 pageEncoding 和 charset 区别以及中文乱码解决方案
  5. xcode 4.2 开发2——TabelView
  6. 用 TStringList 模拟 将字符串转换为变量的功能 - 回复 flq_00000 和 外来天客 的问题...
  7. 雷林鹏分享:PHP 实例 - AJAX 与 XML
  8. 在团队中我的索引卡任务
  9. 【BZOJ】1085 [SCOI2005]骑士精神(IDA*)
  10. NOIP2017 D2T1 奶酪