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的主要内容,如果未能解决你的问题,请参考以下文章

CPU使用率过高问题排查及Linux之top命令用法详解

Linux top命令中CPU信息的详解(转)

Linux top命令中CPU信息的详解(转)

Linux查看CPU和内存使用情况详解

linux top命令详解

linux top命令详解