linux系统设置cpu孤立
介绍
针对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孤立的目的。
linux系统设置cpu孤立的更多相关文章
- linux系统设置服务开机启动3种方法,Linux开机启动程序详解
linux系统设置服务开机启动 方法1:.利用ntsysv伪图形进行设置,利用root登陆 终端命令下输入ntsysv 回车:如下图 方法2:利用命令行chkconfig命令进行设置 简要说明 ...
- Linux 查看CPU,内存,硬盘 !转
Linux 查看CPU,内存,硬盘 本文转自:http://hi.baidu.com/mumachuntian/item/a401368dbe8a66cab07154e8 1 查看CPU 1.1 查看 ...
- Linux系统cpu 100%修复案例
Linux系统cpu 100%修复案例 阿里云技术支持团队:完颜镇江 案例背景: Linux主机连续三天CPU% 处理思路: 1. 登录服务器查看/var/log/messages+/var/lo ...
- linux系统CPU,内存,磁盘,网络流量监控脚本
前序 1,#cat /proc/stat/ 信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2,#vmstat –s 或者#vmstat 虚拟内存统计 3, #cat ...
- Linux查看CPU和内存使用情况 【转】
Linux查看CPU和内存使用情况 在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要.在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况.运行 ...
- Linux系统CPU相关信息查询
Linux系统CPU相关信息查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.lscpu常用参数介绍 1>.查看帮助信息 [root@node105 ~]# lscpu ...
- 查看linux服务器CPU相关
查看linux服务器CPU相关: 1.查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 2.查看 ...
- Linux服务器CPU、内存、磁盘空间、负载情况查看python脚本
[本文出自天外归云的博客园] 网上搜,东拼西凑,组装了一个可以查Linux服务器CPU使用率.内存使用率.磁盘空间占用率.负载情况的python脚本. 脚本内容如下: # -*- coding:utf ...
- Linux 监测CPU常用的工具sar iostat vmstat top uptime
sar -u 1 2 iostat -c 1 2 vmstat 1 2 top uptime Linux监控CPU整体性能常用的工具有: # mpstat: mpstat 不但能查看所有CPU的平均信 ...
随机推荐
- 简单实现springmvc框架(servlet+自定义注解)
个人水平比较菜,没有这么高的实力简单实现springmvc框架,我是看了一个老哥的博客,这老哥才是大神! 原文链接:https://www.cnblogs.com/xdp-gacl/p/4101727 ...
- Jenkins~配合Docker及dotnetCore进行生产和测试环境的灵活部署
回到目录 首先要清楚本文是讲dotnetcore项目在生产和测试环境部署的,这在过去的frameworks项目里,我们可以通过设置web.config的环境变量,然后再发布时指定具体的变量,去实现生产 ...
- 用tornado实现图片标记
背景介绍 在文章Keras入门(四)之利用CNN模型轻松破解网站验证码中,其中的验证码图片标记是采用tornado实现的网页实现的.本文将会讲述如何利用tornado来实现图片标记. 我们的示 ...
- C++项目中采用CLR的方式调用C#编写的dll
1.注意事项:在编写C#DLL类库时,最好不要出现相同的命名空间,否则在C++中调用可能会出现编译错误.2.将C#的源码生成的“dll”文件复制到C++项目中的Debug目录下3.将C++项目属性设置 ...
- C#实现.ini文件读写操作
1.ini文件是什么? 见百度百科:https://baike.baidu.com/item/ini%E6%96%87%E4%BB%B6/9718973?fr=aladdin 2.C#语 ...
- 【转载】 Sqlserver限制最大占用内存
在Sqlserver数据库管理软件中,Sqlserver对系统内存的管理原则是:按需分配,并且分配完成后为了查询有更好的性能,并不会立即自动释放内存,数据取出后,还会一直占用着内存,所以在Sqlser ...
- asp.net easyui 动态绑定下拉框
前台: <title>标题</title> <link href="EasyUi_v1.3.4/easyui/themes/default/easyui.css ...
- java基础(四):谈谈java中的IO流
1.字节流 1.1.字节输出流output 1.1.1.数据写入文件中 通过api查找output.找到很多,其中java.io.OutputStream,OutputStream: 输出字节流的超类 ...
- 日志分析工具Log Parser介绍
摘要: 微软动态CRM专家罗勇 ,回复321或者20190322可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 分析Dynamics 365 Customer Enga ...
- 渐进式Web应用程序的深入概述
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者.原文出处:https://www.grapecity.com.cn/blogs/wijmo-depth-ove ...