linux执行命令时绑核 linux绑定核

linux下cpu的核绑定和隔离有什么不同

额 刚刚编辑完,结果没保存,然后·····只能重新总结一份。

平武网站建设公司创新互联公司,平武网站设计制作,有大型网站制作公司丰富经验。已为平武上千多家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的平武做网站的公司定做!

我这个是在启动虚拟机之后,在虚拟机中跑DPDK,测试结果很不理想,然后我的领导说可以做CPU的隔离核绑定,然后做了之后发现确实效果有所提升。所以写一下小结。仅供大家参考。

1、首先创建隔离核,在系统启动的时候在INTEL_IOMMU=OFF那一行最后添加上isolcpus=2,3,4,5,6 隔离出5个核

2、系统启动,检查host上是否隔离成功,命令如下:

# ps –eLo ruser,pid,ppid,lwp,psr,args | awk ‘{if($5==1) print $0}’

# ps –eLo ruser,pid,ppid,lwp,psr,args | awk ‘{if($5==2) print $0}’

# ps –eLo ruser,pid,ppid,lwp,psr,args | awk ‘{if($5==3) print $0}’

# ps –eLo ruser,pid,ppid,lwp,psr,args | awk ‘{if($5==4) print $0}’通过查看线程确定是否隔离,如果隔离成功,则只有几个线程。

3、启动虚拟机之后,查看qemu的线程

# ps –eLo ruser,pid,ppid,lwp,psr,args | grep qemu | grep –v grep

4、绑定qemu的进程,绑定核

# taskset –p 0x4 28423

# taskset –p 0x8 28424

5、查看QEMU绑定是否生效

# ps –eLo ruser,pid,ppid,lwp,psr,args | grep qemu | grep –v grep

6、查看cpu2/3/4/5上运行的线程

# ps –eLo ruser,pid,ppid,lwp,psr,args | awk ‘{if($5==2) print $0}’

没什么技术含量,仅供大家参考。

Linux如何将进程绑定运行在指定CPU上

绑定cpu方式:

c语言:

sched_setaffinity(0, sizeof(mask), mask)

shell命令:

在grup启动时传给内核参数: isolcpus=2-15, 这里表示隔离第3到16个CPU, Linux程序只跑在第一和第二个CPU上, 空闲的CPU我们可以指定跑进程了.

这是内核文档里对内核参数的解释:

isolcpus= [KNL,SMP] Isolate CPUs from the general scheduler.

Format:

cpu number,...,cpu number

or

cpu number-cpu number

(must be a positive range in ascending order)

or a mixture

cpu number,...,cpu number-cpu number

This option can be used to specify one or more CPUs

to isolate from the general SMP balancing and scheduling

algorithms. You can move a process onto or off an

"isolated" CPU via the CPU affinity syscalls or cpuset.

cpu number begins at 0 and the maximum value is

"number of CPUs in system - 1".

This option is the preferred way to isolate CPUs. The

alternative -- manually setting the CPU mask of all

tasks in the system -- can cause problems and

suboptimal load balancer performance.

linux nice 命令详解

功能说明:设置优先权。

语法:nice [-n 优先等级][--help][--version][执行指令]

补充说明:nice指令可以改变程序执行的优先权等级。

参数:-n优先等级或-优先等级或--adjustment=优先等级  设置欲执行的指令的优先权等级。等级的范围从-20-19,其中-20最高,19最低,只有系统管理者可以设置负数的等级。

--help  在线帮助。

   --version  显示版本信息。

linux renice 命令详解

功能说明:调整优先权。

语法:renice [优先等级][-g 程序群组名称...][-p 程序识别码...][-u 用户名称...]

补充说明:renice指令可重新调整程序执行的优先权等级。预设是以程序识别码指定程序调整其优先权,您亦可以指定程序群组或用户名称调整优先权等级,并修改所有隶属于该程序群组或用户的程序的优先权。等级范围从-20--19,只有系统管理者可以改变其他用户程序的优先权,也仅有系统管理者可以设置负数等级。

参数:

-g 程序群组名称  使用程序群组名称,修改所有隶属于该程序群组的程序的优先权。

-p 程序识别码  改变该程序的优先权等级,此参数为预设值。

-u 用户名称  指定用户名称,修改所有隶属于该用户的程序的优先权。

taskset设定cpu亲和力,cpu亲和力是指

CPU调度程序属性关联性是“锁定”一个进程,使他只能在一个或几个cpu线程上运行。对于一个给定的系统上设置的cpu。给定CPU亲和力和进程不会运行在任何其他CPU。注意,Linux调度器还支持自然CPU关联:(不能让这个cpu只为这一个进程服务)

这里要注意的是我们可以把某个程序限定在某一些CPU上运行,但这并不意味着该程序可以独占这些CPU,其实其他程序还是可以利用这些CPU运行。如果要精确控制CPU,taskset就略嫌不足,cpuset才是可以

-a, --all-tasks 操作所有的任务线程-p, --pid 操作已存在的pid-c, --cpu-list 通过列表显示方式设置CPU

(1)指定1和2号cpu运行25718线程的程序

taskset -cp 1,2 25718

(2),让某程序运行在指定的cpu上 taskset -c 1,2,4-7 tar jcf test.tar.gz test

(3)指定在1号CPU上后台执行指定的perl程序

taskset –c 1 nohup perl pi.pl

linux下把进程/线程绑定到特定cpu核上运行?

你那个是系统下把CPU的核说钉在五河以下是比较好的,因为吧和内心压力非常大,发热量非常大。


网页标题:linux执行命令时绑核 linux绑定核
文章起源:http://ybzwz.com/article/ddddoii.html