zoukankan      html  css  js  c++  java
  • linux cpu亲和性设置

     1、设置进程的cpu亲和性程序如下,

    #Using:g++ setCpuAffinity.c -o setCpuAffinity
    
    #include<sys/types.h>
    #include<sys/sysinfo.h>
    #include<unistd.h>
    
    //#define __USE_GNU
    #include<sched.h>
    #include<ctype.h>
    #include<string.h>
    #include<stdio.h>
    #include<stdlib.h>
    
    int main(int argc, char* argv[])
    {
            int num = sysconf(_SC_NPROCESSORS_CONF);
            int created_thread = 0;
            int myid, pid;
            int i;
            int j = 0;
    
            cpu_set_t mask;
            cpu_set_t get;
    
            if (argc < 3)
            {
                    printf("usage : ./setAffinity pid num1,num2,..,numn 
    ");
                    exit(1);
            }
    
            pid = atoi(argv[1]);
            CPU_ZERO(&mask);
            for (i = 2; i < argc; i++)
            {
                    myid = atoi(argv[i]);
                    CPU_SET(myid, &mask);
            }
            if (sched_setaffinity(pid, sizeof(mask), &mask) == -1)
            {
                    printf("warning: could not set CPU affinity, continuing...
    ");
            } else {
                    printf("sched_setaffinity succeed !!!
    ");
    
            }
    }

     2、获取进程的CPU亲和性程序如下,

    #Using:g++ getCpuAffinity.c -o getCpuAffinity
    
    #include<sys/types.h>
    #include<sys/sysinfo.h>
    #include<unistd.h>
    
    //#define __USE_GNU
    #include<sched.h>
    #include<ctype.h>
    #include<string.h>
    #include<stdio.h>
    #include<stdlib.h>
    
    int main(int argc, char* argv[])
    {
            int num = sysconf(_SC_NPROCESSORS_CONF);
            int pid;
            int i;
    
            cpu_set_t get;
    
            if (argc != 2)
            {
                    printf("usage : ./setAffinity pid 
    ");
                    exit(1);
            }
    
            pid = atoi(argv[1]);
    
            CPU_ZERO(&get);
            if (sched_getaffinity(pid, sizeof(get), &get) == -1)
            {
                    printf("warning: cound not get cpu affinity, continuing...
    ");
            }
            for (i = 0; i < num; i++)
            {
                    if (CPU_ISSET(i, &get))
                    {
                            printf("this process %d is running processor : %d
    ", pid, i);
                    }
            }
    }
  • 相关阅读:
    HDU 6106 Classes【水题】
    HDU 6106 Classes【水题】
    ACM常用解题技巧方法
    ACM常用解题技巧方法
    程序员语录
    数据库设计的三大范式
    IDEA中Java代码存入DB中为乱码
    IDEA中如何添加jar包
    Java的Protected
    Hibernate JPA 如何使用SQL文直接查询
  • 原文地址:https://www.cnblogs.com/VincentXu/p/3596547.html
Copyright © 2011-2022 走看看