Linux下多核CPU指定程序运行的核

设置程序在指定CPU核心运行

一、如何查看程序运行的CPU信息

1.1 查看当前系统CPU有几个核心

查看CPU核心数量:lscpu

1.2 查看程序的PID

shell 复制代码
ps aux|grep cpu_test

1.3 查看程序可运行的CPU

shell 复制代码
taskset -c -p pid

1.4 设置程序在指定核心上运行

1.4.1 通过运行时的参数设置

shell 复制代码
taskset -c 1 ./cpu_test

1.4.2 通过代码设置

c 复制代码
#define _GNU_SOURCE
#include <stdio.h>
#include <sched.h>
int main() {
        cpu_set_t mask;
        CPU_ZERO(&mask);
        CPU_SET(1,&mask);

        if(sched_setaffinity(0,sizeof(mask),&mask)== -1)
        {
                perror("sched setaffinity");
                return -1;
        }
    while(1)
    {
        printf("Hello, World!\n");
        sleep(1);

    }
    return 0;
}

二、未设置程序在指定CPU核心运行

c 复制代码
// cpu_test.c
#include <stdio.h>
int main() {

    while(1)
    {
        printf("Hello, World!\n");
        sleep(1);

    }
    return 0;
}

查看程序的PID

查看程序可运行的核

得出该程序可以在0-3 4个核上运行。

三、设置程序在指定CPU核心运行

假设我们要使程序运行在第2个核上:

c 复制代码
#define _GNU_SOURCE
#include <stdio.h>
#include <sched.h>
int main() {
        cpu_set_t mask;
        CPU_ZERO(&mask);
        CPU_SET(1,&mask);

        if(sched_setaffinity(0,sizeof(mask),&mask)== -1)
        {
                perror("sched setaffinity");
                return -1;
        }
    while(1)
    {
        printf("Hello, World!\n");
        sleep(1);

    }
    return 0;
}

查看程序的PID

查看程序可运行的CPU核

得出设置成功,已将程序绑定在CPU的第2个核上。

相关推荐
一位摩羯座DBA14 分钟前
Redhat&Centos挂载镜像
linux·运维·centos
学习3人组15 分钟前
CentOS配置网络
linux·网络·centos
计算机毕设定制辅导-无忧学长32 分钟前
西门子 PLC 与 Modbus 集成:S7-1500 RTU/TCP 配置指南(一)
服务器·数据库·tcp/ip
weixin_3077791344 分钟前
Hive集群之间迁移的Linux Shell脚本
大数据·linux·hive·bash·迁移学习
漫步企鹅1 小时前
【蓝牙】Linux Qt4查看已经配对的蓝牙信息
linux·qt·蓝牙·配对
cui_win1 小时前
【网络】Linux 内核优化实战 - net.core.flow_limit_table_len
linux·运维·网络
梦在深巷、1 小时前
MySQL/MariaDB数据库主从复制之基于二进制日志的方式
linux·数据库·mysql·mariadb
风清再凯2 小时前
自动化工具ansible,以及playbook剧本
运维·自动化·ansible
深圳安锐科技有限公司2 小时前
深圳安锐科技发布国内首款4G 索力仪!让斜拉桥索力自动化监测更精准高效
运维·安全·自动化·自动化监测·人工监测·桥梁监测·索力监测
猫头虎2 小时前
猫头虎 AI工具分享:一个网页抓取、结构化数据提取、网页爬取、浏览器自动化操作工具:Hyperbrowser MCP
运维·人工智能·gpt·开源·自动化·文心一言·ai编程