码迷,mamicode.com
首页 > 其他好文 > 详细

CPU性能命令

时间:2015-12-29 16:24:00      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:cpu   性能   

基本概念:

CPU使用率:通过测量一段时间内cpu实例忙于执行工作的时间比例获得,以百分比表示

CPI(每指令周期数):用来描述cpu如何使用它的时钟周期,同时也可以用来理解CPU使用率的本质;CPI较高代表cpu进场陷入停滞,通常都是在访问内存,较低的CPI表示cpu基本没有停滞,指令吞吐较高

IPC(每周期指令数):它为CPI的倒数

饱和度:一个100%使用率的cpu称为饱和

CPU使用说明例子:

        CPU 很无辜,是个任劳任怨的打工仔,每时每刻都有工作在做(进程、线程)并且自己有一张工作清单(可运行队列),由老板(进程调度)来决定他该干什么,他需要 和老板沟通以便得到老板的想法并及时调整自己的工作(上下文切换),部分工作做完以后还需要及时向老板汇报(中断),所以打工仔(CPU)除了做自己该做 的工作以外,还有大量时间和精力花在沟通和汇报上。

打工仔接受和完成多少任务并向老板汇报了(中断);

打工仔和老板沟通、协商每项工作的工作进度(上下文切换);

打工仔的工作列表是不是都有排满(可运行队列);

打工仔工作效率如何,是不是在偷懒(CPU 利用率)。

性能命令如下:

  • uptime

  • top

  • vmstart

  • mpstat

  • pidstat

说明如下:

  • uptime命令,用来统计系统当前的运行状态

12:02:32 up 235 days, 18:58,  4 users,  load average: 0.02, 0.10, 0.07

其中load average这三个值表示系统在1min,5min,15min内的平均负载,这三个值一般不能大于系统CPU的个数。如果长期大于cpu个数表示cpu不足以服务线程,说明cpu繁忙,有些线程在等待,可能会影响系统性能

平均负载:表示对cpu资源的需求,通过汇总正在运行的线程数(使用率)和正在排队等待运行的线程数(饱和度)计算得到.

  • top    查看负载情况 主要关注负载1,5,15min

该命令显示了最消耗cpu的任务,并带有cpu消耗百分比,TIME和%CPU显示了CPU占用的时间(这里是分钟时间)

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head  查看占用cpu资源最多的10个进程方法

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head  查看占用内存资源最多的10个进程方法

ps -eo comm,pid,pcpu,pmem --sort -pcpu | head -20

  • vmstart 命令(虚拟内存统计),最后几列显示了cpu平均负载,少于10%可能是一个有问题

vmstart [-V] [-n] [delay [count]]

-V  表示打印出版本信息,可选参数  

-n  表示在周期性循环输出,输出的头部信息仅显示一次

delay 表示两次输出之间的时间间隔

count 表示按照“delay”指定的时间间隔统计的次数,默认为1次

 vmstart 3 5

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0   7400 171448 171212 7667080    0    0    70   605    0    0  2  1 97  1  0
 0  0   7400 171828 171212 7667100    0    0     0  2387 1322 1572  1  1 99  0  0

在cpu评估中,主要注意procs项中的r项的值和cpu项中us、sy和id列的值

这些值都是所有cpu的系统平均数,r除外,是总数

r 应小于cpu个数

当脏页达到内存页面设置的值时,开始写入硬盘,通过  /sbin/sysctl -n vm.dirty_background_ratio   查看,默认值为10

当系统物理内存剩余量在该值范围时,开始大量使用swap交换空间

r,所有等待的加上正在运行的线程数,这些线程都是可运行状态,只不过 CPU 暂时不可用;

b,被 blocked 的进程数,正在等待 IO 请求;

in,被处理过的中断数

cs,系统上正在做上下文切换的数目

us,用户占用 CPU 的百分比

sys,内核和中断占用 CPU 的百分比

wa,所有可运行的线程被 blocked 以后都在等待 IO,这时候 CPU 空闲的百分比

id,CPU 完全空闲的百分比

swpd,已使用的 SWAP 空间大小,KB 为单位;

free,可用的物理内存大小,KB 为单位;

buff,物理内存用来缓存读写操作的 buffer 大小,KB 为单位;

cache,物理内存用来缓存进程地址空间的 cache 大小,KB 为单位;

si,数据从 SWAP 读取到 RAM(swap in)的大小,KB 为单位;

so,数据从 RAM 写到 SWAP(swap out)的大小,KB 为单位;

bi,磁盘块从文件系统或 SWAP 读取到 RAM(blocks in)的大小,block 为单位;

bo,磁盘块从 RAM 写到文件系统或 SWAP(blocks out)的大小,block 为单位;

  • mpstat命令(每个CPU统计信息),检查单个cpu是否繁忙

mpstat -P ALL 1 

05:43:50 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
05:43:51 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
05:43:51 PM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
05:43:51 PM    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
05:43:51 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
05:43:51 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
05:43:51 PM    4    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
05:43:51 PM    5    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
05:43:51 PM    6    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
05:43:51 PM    7    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

-P ALL 用来打印每个CPU的信息

-P 1 1  用来打印第二个cpu的信息

%usr :用户态时间

%nice :以nice优先级运行的进程用户态时间

%sys :系统态时间(内核)

%iowait :I/O等待

%irq   :硬件中断CPU用量

%soft  :软件中断CPU用量

%steal :耗费在服务其他租户的时间

%guest :花在访客虚拟机的时间

%idle:空闲时间

重要列有:usr,sys和idle

  • pidstat 按进程或线程来打印cpu用量,包括用户态和系统态时间的分解,默认情况下仅输出活动的进程的信息

pidstat 1

05:49:59 PM       PID    %usr %system  %guest    %CPU   CPU  Command
05:50:00 PM        37    0.00    0.99    0.00    0.99     3  kblockd/3
05:50:00 PM        60    0.00    0.99    0.00    0.99     0  kswapd0
05:50:00 PM     18520    0.99    0.99    0.00    1.98     0  pidstat
05:50:00 PM     18524    0.00   16.83    0.00   16.83     0  tar
05:50:00 PM     18525   53.47   13.86    0.00   67.33     0  gzip

-t  打印每个线程的统计信息

-p ALL  用来打印所有的进程,包括空闲进程


PS:相关内容参照《性能之巅-洞悉系统、企业与云计算》第6章-cpu章节



本文出自 “天天向上goto” 博客,请务必保留此出处http://ttxsgoto.blog.51cto.com/4943095/1729489

CPU性能命令

标签:cpu   性能   

原文地址:http://ttxsgoto.blog.51cto.com/4943095/1729489

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!