shell命令-top总结

前几天调程序性能的时候使用到了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可以让内存的状态,以进度条的形式显示。

其他常用交互命令

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181227G06BVG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励