前几天调程序性能的时候使用到了top这个命令,觉得从这个命令中,我们能看到很多信息。top的功能也是很强大的,之前一直不了解,只是简单的使用top命令显示进程信息,接下就学一学top命令的详细用法。
最基本的使用方法:
在Linux终端窗口上输入top命令:
按下回车键之后会弹出一个实时刷新的列表如下图:
然后我们看看显示的都是些什么东西:
第一行:
系统时间对于我们来说用处不大,我们可以使用date命令获取更详细的时间
当前系统运行时长可以通过这个时间来推断我们的系统启动的时间。如果是服务器的话,就可知道上次重启的时间。
用户数可以知道当前有几个用户的程序在运行。
平均负载这个相对来说是比较重要的指标了,从图中我们可以看到后面有三个数字,第一个是最近1分钟内的平均负载,第二个是最近5分钟的平均负载,第三个是最近15分钟的平均负载。
平局负载的常用分析方法:
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
如果发现一分钟内的平均负载很大,五分钟内的平均负载较小,十五分钟内的平均负载很小,说明一分钟到五分钟内有程序出现异常,导致负载过大。
第二行:
这一行都是任务相关的东西,从不同的状态的数目分析,我们可以知道整个系统进程的运行情况。这里面的僵尸进程的数目一般为0,如果发现不为0,而且数量还很多的时候,很有可能是代码中子进程退出的时候,父进程没有做回收资源,导致子进程一直处于僵尸进程状态。这时候我们要查看一下僵尸进程的pid和ppid来判断是父进程是谁,然后在代码中定位。
第三行:
这一行是关于CPU状态的,我么你可以清楚的看到CPU的状态情况,cpu占用较高的进程需要重点关注一下了。
第四行
当一个进程运行一段试讲就挂掉,我们就需要注意一下这一行,有可能是程序OOM(out of memory)了,当空闲内存容量等于0的时候,系统会杀掉一些进程来保证内存可用,一般情况是优先杀掉内存占用高的进程。
第五行
主要列表
OK整个top命令的界面我们介绍完了,我们可以通过主表中找到我们自己的进程,分析进程的各项指标来了解自己项目代码的运行状态。
进阶-top参数的使用方法
top + 参数
版本信息
刷新时间
指定刷新次数
显示某个用户下的进程
显示指定的进程信息
显示完整用户名/命令
以积累模式显示程序信息
关闭交互式指令
以批处理模式显示程序信息
隐藏空闲的任务
按照某种属性排序
一般这种命令直接加参数的形式使用的较少,通常使用交互式命令比较多。
top 交互
显示帮助页面
h和?都可以进帮助页面,这里面介绍了很多交互命令,有不懂的可以直接按h来获得帮助。
下面我就简单介绍几个有意思的和有用的交互命令。
改变主题颜色
按下小z,我们发现界面颜色变了,再按一下小z就会还原,一般默认的颜色是红色。可以按大Z进入设置界面如下:
S M H T 来选择要设置的目标区域
0-7 八种颜色主题可以选择预览
q或enter 返回保存当前设置的颜色主题
a或w可以切换主题
高亮主排序的列
按下小x会发现有一列高亮,默认是cpu的列,因为默认是按CPU使用率排序的,我们可以按shift+ 进行排序列的切换,这个功能很方便,也很常用。
CPU的使用情况
数字1可以将CPU展开,显示每一个CPU的使用情况。
t可以用进度条的形式显示CPU的使用情况。
内存的使用情况
m可以让内存的状态,以进度条的形式显示。
其他常用交互命令
领取专属 10元无门槛券
私享最新 技术干货