top命令详解之深入了解CPU
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了top命令详解之深入了解CPU相关的知识,希望对你有一定的参考价值。
top | |
taskset | |
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 时间与其它虚拟机激烈竞争,虚拟机会更快地响应。主机供应商没有过量地出售虚拟服务,绝对是一件好事情。
本文出自 “运维自动化” 博客,请务必保留此出处http://shower.blog.51cto.com/4926872/1972820
以上是关于top命令详解之深入了解CPU的主要内容,如果未能解决你的问题,请参考以下文章