如何指定cpu运行进程运行的CPU

新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 12, 距离下一级还需 188 积分
论坛徽章:0
我用的是onyx2,四个cpu的。比如现在有四个进程,想让每个进程对应一个cpu,也就是说四个cpu每个运行一个进程,同时工作。有无办法实现。
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
稍有积蓄, 积分 423, 距离下一级还需 77 积分
论坛徽章:0
高手指教:如何将一个进程指定到特定的CPU上运行
这是并行计算的问题,恰好是sgi的强项。并行我一点都不懂啊。去水木清华看看吧
白手起家, 积分 12, 距离下一级还需 188 积分
论坛徽章:0
高手指教:如何将一个进程指定到特定的CPU上运行
呵呵,谢谢了
,不过现在bbs都封外校,上不了水木啊。
白手起家, 积分 11, 距离下一级还需 189 积分
论坛徽章:0
高手指教:如何将一个进程指定到特定的CPU上运行
#miser_cpuset&&-q username -c -f conf_filename
%miser_cpuset -q username -A progname
白手起家, 积分 12, 距离下一级还需 188 积分
论坛徽章:0
高手指教:如何将一个进程指定到特定的CPU上运行
高人啊!呵呵,好几天没有上来看了,以为不会有人回帖了。
能不能留下你的qq号?我的是:3504480,希望能跟你多交流一下。多谢了 :wink:
白手起家, 积分 12, 距离下一级还需 188 积分
论坛徽章:0
高手指教:如何将一个进程指定到特定的CPU上运行
ncat你好,你说的是在Irix系统里的用法么,是不是直接在shell里面输入就可以了,为什么我输入以后提示:miser_cpuset command not found?
白手起家, 积分 20, 距离下一级还需 180 积分
论坛徽章:0
高手指教:如何将一个进程指定到特定的CPU上运行
他说的是你要先建立一个CPUSET
#miser_cpuset&&-q username -c -f conf_filename (建立一个CPUSET)
%miser_cpuset -q username -A progname (将一个程序指定给特定的CPUSET)Linux多核系统下绑定进程或线程到指定CPU核;;CPU绑定,有以下两种方式供大家参考:;1.命令行参数指定CPU;例:;$taskset0xmorley;如0x表示在第3号CPUCORE;如0x表示在第2,3号两个CPU;2.代码中锁定进程或线程对应的CPUID:;例:;#define_
Linux 多核系统下绑定进程或线程到指定CPU 核执行
CPU 绑定,有以下两种方式供大家参考:
1. 命令行参数指定CPU
$ taskset 0x morley
/* 将 morley 程序绑定在 1 号 CPU CORE 执行 */ 其中 0x 为 CPU 号 mask,
如 0x 表示在第 3 号CPU CORE 执行 /* 4 代表2进制的 100 所以是 3 号 CPU CORE . */
如 0x 表示在第 2,3 号两个CPU CORE 同时执行 /* 6 代表2进制的 110 所以是 2,3 号 CPU CORE . */
2. 代码中锁定进程或线程对应的 CPU ID:
#define _GNU_SOURCE
#include &sched.h&
#include &stdio.h&
#include &errno.h&
int main(void)
cpu_set_t *
int nrcpus = 1024; /* 此处为系统可供使用的 CPU CORE 总数*/
mask = CPU_ALLOC(nrcpus);
size = CPU_ALLOC_SIZE(nrcpus);
CPU_ZERO_S(size, mask);
if ( sched_getaffinity(0, size, mask) == -1 ) {
CPU_FREE(mask);
if (errno == EINVAL &&nrcpus & (1024 && 8)) {
nrcpus = nrcpus && 2;
perror(&sched_getaffinity&);
return -1;
for ( i = 0; i & i++ ) {
if ( CPU_ISSET_S(i, size, mask) ) {
/* 将 i 改为相应的进程号或者线程号,即可将 i 号进程或线程绑定在 i 号 CPU CORE */
printf(&CPU %d is set\n&, (i+1));
/* 此处插入第 i 号 进程或线程 对应的函数或代码 */
CPU_FREE(mask);
三亿文库包含各类专业文献、专业论文、高等教育、外语学习资料、中学教育、文学作品欣赏、应用写作文书、52Linux 多核系统下绑定进程或线程到指定CPU 核执行等内容。 
 多计算机系统:每个节点有独立内存。 多核与多处理器...1.主从模式:有一个核负责分配任务,其他核执行,主...Linux 下的同步工具读写锁有什么特点? 什么是线程...  Linux下查看进程和线程_计算机软件及应用_IT/计算机_...时间内有多少个进程企图独占 CPU zombie 进程 :不...是守护进程,叫 deamon 无终端,大多系统服务是此...  暂无评价|0人阅读|0次下载|举报文档 Linux 线程绑核_计算机软件及应用_IT/计算机...,只有当 其中一个 cpu 的可执行队列里进程数比其他 cpu 队列进程数多 25%...  多线程与多核编程 87页 免费 linux的多线程编程的...的优化:内存不够,CPU 速度过慢,系统中进程过多等...视整个处理流程,从头到尾梳理一遍,将能够并行执行的...  Win7下通过CPU核数提高启... 4页 免费 喜欢此文档的还喜欢 基于...Linux利用多核多线程进行... 13页 免费
Linux多核下绑定硬件中断... 4页 ...  信息系统工程技术名词研究 多核班级:07304 姓名:李宁...多核处理 器有利于同时开发 ILP 和线程级并行(TLP...由于多核处理器的各个核执行的程序之间有时需要进行...  多个线程(包括多核 CPU),Linux 内核会把多核的处理器当作多个单独的 CPU 来...器跟不上系统 的要求,导致可运行的进程会填满队列.队列愈大,程序执行时间就愈...  打算考虑一下将业务进程指定到 3 个 cpu 上运行,...cpu 的可执行队列里进程数比其他 cpu 队列进程数多...Linux 多核系统下绑定进... 2页 1下载券 基于Linux...  把进程/线程在多处理器系统上的调度策略暴露给系统...中指定的 CPU 之间进行调度执行;sched_getaffinity ...当前 Linux 系统下广泛采用的线程库 NPTL(Native ...如何查看进程运行在哪个具体的CPU上1台机器,配有1块8核心的CPU,想知道AIX下是否有命令能够查看到某个具体的进程运行在哪一个具体的CPU核心上的信息,谢谢先.回答邀答3回答&
交互工程师
, 国电通nmon之后按c 就基本可以看见你想要看的了nmon之后按c 就基本可以看见你想要看的了赞同1浏览97&
nmon按C键,显示的是所有CPU的概况,我想要的是看某个CPU下运行进程的情况。nmon按C键,显示的是所有CPU的概况,我想要的是看某个CPU下运行进程的情况。赞同浏览50&
软件开发工程师
, 北祥企業股份公司topas因該可以看到topas因該可以看到赞同浏览82回答问题关注评论35如何让进程运行在指定的CPU
我的图书馆
如何让进程运行在指定的CPU
可任意转载,但必须在醒目位置以超链接形式标明文章原始出处和作者信息
原文地址:
我的十分繁忙,在跑一些密集操作数据库的Rake任务时尤其如此。但我观察发现,Linode服务器的4核CPU,只有第1个核心(CPU#0)非常忙,其他都处于idle状态。
不了解Linux是如何调度的,但在Linode的这种状态下,显然有优化的余地。除了处理正常任务,CPU#0还需要处理各种中断。因此,若能将CPU#0分担的任务摊派到其他CPU核心上,可以预见,系统的处理能力将有更大的提升。
SMP (Symmetrical Multi-Processing):指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。 []
CPU affinity:中文唤作“CPU亲和力”,是指在CMP架构下,能够将一个或多个进程绑定到一个或多个处理器上运行。[]
一、在Linux上修改进程的“CPU亲和力”
在Linux上,可以通过 命令进行修改。以Ubuntu为例,运行如下命令可以安装taskset工具。
# apt-get install schedutils
对运行中的进程,文档上说可以用下面的命令,把CPU#1 #2 #3分配给PID为2345的进程:
# taskset -cp 1,2,3 2345
但我尝试没奏效,于是我关掉了MySQL,并用taskset将它启动:
# taskset -c 1,2,3 /etc/init.d/mysql start
对于其他进程,也可如此处理(nginx除外,详见下文)。之后用top查看CPU的使用情况,原来空闲的#1 #2 #3,已经在辛勤工作了。
二、配置nginx绑定CPU
刚才说nginx除外,是因为nginx提供了更精确的控制。
在conf/nginx.conf中,有如下一行:
worker_processes& 1;
这是用来配置nginx启动几个工作进程的,默认为1。而nginx还支持一个名为worker_cpu_affinity的配置项,也就是说,nginx可以为每个工作进程绑定CPU。我做了如下配置:
worker_processes& 3;
worker_cpu_affinity 00;
这里00是掩码,分别代表第2、3、4颗cpu核心。
重启nginx后,3个工作进程就可以各自用各自的CPU了。
三、刨根问底
如果自己写代码,要把进程绑定到CPU,该怎么做?可以用函数。在Linux上,这会触发一次。
如果父进程设置了affinity,之后其创建的子进程是否会有同样的属性?我发现子进程确实继承了父进程的affinity属性(其实用taskset启动进程就是一次fork+exec)。
四、Windows?
在Windows上修改“CPU亲和力”,可以通过任务管理器搞定。
* 个人感觉,Windows系统中翻译的“处理器关系”比“CPU亲和力”容易理解点儿
—————–
进行了这样的修改后,即使系统负载达到3以上,不带缓存打开blogkid.net首页(有40多次查询)依然顺畅;以前一旦负载超过了1.5,响应就很慢了。效果很明显。
TA的最新馆藏[转]&

我要回帖

更多关于 linux 指定cpu运行 的文章

 

随机推荐