linux 进程 锁定cpu,如何在Linux中将进程限制为一个CPU核心?

类似于ulimit或cpulimit的东西会很好. (只是为了确保:我不想限制百分比使用或执行时间.我想强制app(包括所有孩子,进程(线程))使用一个cpu核心(或’n’cpu核心)).

解决方法:

在Linux下,执行sched_setaffinity系统调用.进程的亲和性是它可以运行的一组处理器.有一个标准的shell包装器:taskset.例如,要将进程固定到CPU#0(您需要选择一个特定的CPU):

taskset -c 0 mycommand --option # start a command with the given affinity

taskset -c -p 0 1234 # set the affinity of a running process

Perl(Sys::CpuAffinity)和Python(affinity)都有第三方模块来设置进程的亲和性.这两个都适用于Linux和Windows(Windows可能需要其他带有Sys :: CpuAffinity的第三方模块); Sys :: CpuAffinity也适用于其他几种unix变体.

如果要从出生时设置进程的亲和性,请在调用execve之前立即设置当前进程的亲和性.这是一个简单的包装器,它强制进程在CPU 0上执行.

#!/usr/bin/env perl

use POSIX;

use Sys::CPUAffinity;

Sys::CpuAffinity::setAffinity(getpid(), [0]);

exec $ARGV[0] @ARGV

标签:linux,cpu,process,limit

来源: https://codeday.me/bug/20190808/1621968.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值