您的位置:首页 > 运维架构

top命令详解之深入了解CPU

2017-10-16 15:13 323 查看
top
taskset

30 个实例详解 TOP 命令

http://blog.jobbole.com/112873/?utm_source=blog.jobbole.com&utm_medium=relatedPosts

top命令之你不一定懂的cpu显示信息

http://www.cnblogs.com/wjoyxt/p/4918742.html

理解CPU steal time

http://blog.csdn.net/jessysong/article/details/73571878

http://www.cnblogs.com/menkeyi/p/6732020.html

是谁动了我的CPU!

http://www.csdn.net/article/2012-12-10/2812662-shei-dong-cpu

Linux下的绑核命令——taskset

所谓绑核,其实就是设定某个进程/线程与某个CPU核的亲和力(affinity)。设定以后,Linux调度器就会让这个进程/线程只在所绑定的核上面去运行。
但并不是说该进程/线程就独占这个CPU的核,其他的进程/线程还是可以在这个核上面运行的。如果想要实现某个进程/线程独占某个核,就要使用cpuset命令去实现。
其实,很多情况下,为了提高性能,Linux调度器会自动的实现尽量让某个进程/线程在同样的CPU上去运行。所以,除非必须,我们没有必要显式的去进程绑核操作。

http://time-track.cn/taskset-command.html

我这个是在启动虚拟机之后,在虚拟机中跑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情况查看

http://blog.csdn.net/u013920085/article/details/51085315

Linux进程或线程绑定到CPU

编译运行之后,输入命令top -p 进程id,输入f,输入j,输入回车,输入H,可以看到主线程一直保持在cpu0,一个线程在cpu12之前切换,另一个线程在cpu34之间切换。

http://www.linuxidc.com/Linux/2015-04/116867.htm

Linux编程之《进程/线程绑定CPU》

http://www.cnblogs.com/highway-9/p/5494977.html

为进程绑定CPU
http://purplegrape.blog.51cto.com/1330104/1252197/

1.taskset
taskset用来查看和设定“CPU亲和力”,说白了就是查看或者配置进程和cpu的绑定关系,让某进程在指定的CPU核上运行,即是“绑核”。

2.taskset的用法
(1)显示进程运行的CPU
taskset -p pid
注意,此命令返回的是十六进制的,转换成二进制后,每一位对应一个逻辑CPU,低位是0号CPU,依次类推。如果每个位置上是1,表示该进程绑定了该CPU。例如,0101就表示进程绑定在了0号和3号逻辑CPU上了
(2)绑核设定
taskset -pc 3 pid 表示将进程pid绑定到第3个核上(注:不用将3弄成二进制的)
taskset -c 3 command 表示执行command命令,并将command启动的进程绑定到第3个核上。

st 的全称是 Steal Time ,就是 Xen Hypervisor 分配给运行在其它虚拟机上的任务的实际  时间。
%st(Steal time) 是当 hypervisor 服务另一个虚拟处理器的时候,虚拟  等待实际  的时间的百分比。
Steal 值比较高的话,需要向主机供应商申请扩容虚拟机。服务器上的另一个虚拟机拥有更大更多的 CPU 时间片,需要申请升级以与之竞
争。另外,高 steal 值也可能意味着主机供应商在服务器上过量地出售虚拟机。如果升级了虚拟机, steal 值还是不降的话,应该寻找另一家服务供应商。
低 steal 值意味着应用程序在目前的虚拟机上运作良好。因为虚拟机不会经常地为了 CPU 时间与其它虚拟机激烈竞争,虚拟机会更快地响应。主机供应商没有过量地出售虚拟服务,绝对是一件好事情。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  top cpu 绑核