当前位置: 首页 > 面试题库 >

专为我的流程设计的一个核心

宦烈
2023-03-14
问题内容

Linux中是否有一种方法可以为除一个进程之外的所有进程禁用一个核心?我只想为我的流程保留一个核心。

预期的行为如下:

  1. 在我的过程之后将产生的过程不应看到此核心,而应使用其他核心。
  2. 生成我的进程时,所有正在使用此核心的进程都应切换到其他核心。

问题答案:

就在这里。您要创建两个cpuset,一个使用隔离的CPU,另一个使用所有其余的CPU。将您的特殊进程分配给隔离的cpuset,并将其余所有进程分配给另一个cpuset。

这是一个简单的示例脚本,可以执行此操作:

mkdir /cpuset 
mount -t cpuset none /cpuset/
cd /cpuset

mkdir sys                                   # create sub-cpuset for system processes
/bin/echo 0-2 > sys/cpuset.cpus             # assign cpus (cores) 0-2 to this set
                                            # adjust if you have more/less cores
/bin/echo 1 > sys/cpuset.cpu_exclusive
/bin/echo 0 > sys/cpuset.mems     

mkdir rt                                    # create sub-cpuset for my process
/bin/echo 3 > rt/cpuset.cpus                # assign cpu (core) 3 to this cpuset
                                            # adjust this to number of cores-1
/bin/echo 1 > rt/cpuset.cpu_exclusive
/bin/echo 0 > rt/cpuset.mems
/bin/echo 0 > rt/cpuset.sched_load_balance
/bin/echo 1 > rt/cpuset.mem_hardwall

# move all processes from the default cpuset to the sys-cpuset
for T in `cat tasks`; do echo "Moving " $T; /bin/echo $T > sys/tasks; done

现在开始您的过程并找出其PID并继续:

/bin/echo $PID > /cpuset/rt/tasks

如果要还原这些更改,只需重新启动系统或执行以下操作:

# move tasks back from sys-cpuset to root cpuset
for T in `cat /cpuset/sys/tasks`; do echo "Moving " $T; /bin/echo $T > /cpuset/tasks; done
# remove sys-cpuset
rmdir /cpuset/sys
# move tasks back from rt-cpuset to root cpuset
for T in `cat /cpuset/rt/tasks`; do echo "Moving " $T; /bin/echo $T > /cpuset/tasks; done
# remove rt-cpuset
rmdir /cpuset/rt
# unmount and remove /cpuset
umount /cpuset
rmdir /cpuset


 类似资料:
  • 本章将为大家讲解,EasySwoole的主体设计思路。 入口文件 EasySwoole\Core\Core Core类是一个单例对象,在整个EasySwoole生命周期中,Core对象只会被实例化一次,在实例化的时候,就定义了EASYSWOOLE_ROOT这个全局宏。 defined('EASYSWOOLE_ROOT') or define("EASYSWOOLE_ROOT",realpath(g

  • 本文描述了 V2Ray 内核(v2ray-core)的设计思路。 目标 V2Ray 内核提供了一个平台,支持必要的网络代理功能,在其之上可以进二次开发,以提供更好的用户体验; 以跨平台为首要原则,以减少二次开发的成本; 架构 内核分为三层:应用层、代理层和传输层。每一层内包含数个模块,模块间互相独立,同类型的模块可以无缝替换。 应用层 应用层包含一些代理层中常用的功能,这些功能被抽象出来,以便在不

  • 我年轻的时候,是一个前端工程师。那时候,有这样一个传说:美工是最受妹子的欢迎,其次是半个美工的前端工程师。 本故事纯属瞎掰,如有雷同纯属巧合——Phodal @PasteRight 未满 18 年时,想成为一名 Kernel Hacker,就是那种操着键盘,在屏幕洒下一行行汇编语言的大牛。在我学了一段时间 C++ 后,我觉得:『用记事本写代码,并运行起来』的故事都是骗人的。为了将代码转变为程序,你

  • 俗话说字如其人~生活中有很多场景都需要我们签名,如果是一些不重要的场景,我们的签名好坏基本无所谓了,但如果是一些比较重要的场景,如果我们的签名比较差的话,就有可能给别人留下不太好的印象了本文我们使用 Python 来制作一个艺术签名小工具,给自己设计一个签名吧~

  • 主要内容:DemoRecordAcumulator缓存里面会有多个队列(每个队列代表一个分区),每个队列存放发往同个分区的消息; sender会将消息分装为一个一个网络请求ClientRequest,并将ClientRequest发送给NetworkClient组件,做一些准备工作, clientrequest会暂存在kafkachannel;然后由sender发送给kafka集群; Demo

  • 主要内容:1. 概述,2. 框架设计,3 依赖关系,4 暴露服务时序,5 引用服务时序,6 远程调用细节1. 概述 本文主要分享 Dubbo 的核心流程。 在 《Dubbo 开发指南 —— 框架设计.》和《Dubbo 开发指南 —— 实现细节.》 2. 框架设计 2.1 整体设计 图例说明: 图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口。 图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层之间的依赖关系,每一层都可以