Linux环境下的性能分析 之 CPU篇(二)

2、CPU的使用情况分析

a、类似任务管理器的top & htop

说到对CPU的性能分析,大家一定不会忘记windows下那个最熟悉的工具:任务管理器。

7b6bec2b235d4272bcff0c3a15d40a5c.png

 有了这个玩意儿,我们就可以看到CPU的利用率,以及每一个进程所占用的CPU资源。那在Linux下也有类似的工具,最出名的当然是top这个工具。

a583d5d4065f49358c29be23bc8bfce6.png

 

 

看起来是不是很windows的任务管理器很相似呢。在这个命令里,我们最关注的可能是这几样东东:

 

· load average:这里三个数字分别表示最近1分钟、5分钟和15分钟的负载。数值越高负载越重。一般要求最好不要超过cpu的核数。比如,单核就最好小于1。如果看到机器长期出于高于核数的情况,说明机器的cpu排队严重。

 

· cpu使用情况:这一行可以看出cpu的利用率、空闲等信息。如果按下数字键“1”,还可以看到每一个核的情况。

 

· 每一个进程的情况:这个能帮我们看清每一个进程的情况。如果想按照某种方式排序,只需要按下大写的字母“O”,即可选择排序。如果要看具体某个进程,可以运行的时候加上-p参数:top -p pid即可。

 

另一个工具,htop是一个改进型的,使用起来比top更方便。但大部分linux默认不会安装,可以使用yum或者apt-get安装即可使用。使用方法类似。

b5f88c4968b6485f8475ca84a0cf3ba2.png

 

 

b、vmstat

vmstat是老王用的最多的命令之一。通过这个命令,能基本看出当前机器的运行状态和问题。

73774eb4c67c412dabc5d8b20d4b23c0.png

 

运行vmstat 1,就会每隔1秒显示出现在系统的状态,包括cpu的,内存的,io的等等信息。因为今天只是介绍cpu的,所以我们今天先介绍如何看cpu的情况。

 

· r值:这个值是一个很关键的cpu运行数据,表示在cpu运行队列中等待的进程数。如果这个值很大,则说明很多进程在排队等待执行。更说明现在cpu忙的很,压力山大。

 

· in和cs:这两个值分别代表中断次数和上下文切换次数。这两个值越大,代表系统在进行大量的进程切换。这说明我们的进程数(或者线程数)太大,导致系统不断的在切换进程,应该尽量减少进程或线程数量。任何切换都是有代价的!

 

· us、sy、id和wa:这四个值分别代表用户进程、系统进程、空闲和等待的cpu时间占比。us越高说明用户进程占用cpu越高、sy则代表系统进程占用。如果id很高,恭喜你,你的机器很闲;如果wa很高,则说明你的机器因为io很忙而造成cpu等待。

 

这个工具除了分析cpu以外,还可以分析内存和io。特别是io性能的分析,能帮助我们对io型的程序优化有极大帮助(等到我们讲io分析的时候,再详细的来讲)。

 

c、ps和pstree

说到cpu分析,不得不说ps这个命令。这个命令类似于top一样,可以将所有进程(或某一进程)的信息打印出来。

 

这个命令配合watch命令,可以达到跟top一样的效果。比如:watch -n 1 "ps axu | grep java",就能看到如下效果:

a53b752dd262410db2cc2bc98c900eab.png

 每隔一秒中,就会更新一下名字叫java的进程的信息。

而pstree则可以打印出进程树的信息:

57d7d773e0134482886cc4b6213be52e.png

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值