设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

在Linux中使用top命令的建议

发布时间:2018-08-22 07:32 所属栏目:117 来源:Katie Mclaughlin
导读:技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战 通过这篇教程提升你的 top 命令的知识。 尝试找出你的机器正在运行什么程序,以及哪个进程耗尽了内存导致系统非常非常慢 这是 top 命令所能胜任的工作。 top 是一个非常有用的程序
技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战

在Linux中使用top命令的建议

通过这篇教程提升你的 top 命令的知识。

尝试找出你的机器正在运行什么程序,以及哪个进程耗尽了内存导致系统非常非常慢 —— 这是 top 命令所能胜任的工作。

top 是一个非常有用的程序,其作用类似于 Windows 任务管理器或 MacOS 的活动监视器。在 *nix 机器上运行 top 将实时显示系统上运行的进程的情况。

  1. $ top 

取决于你运行的 top 版本,你会看到类似如下内容:

  1. top - 08:31:32 up 1 day,  4:09,  0 users,  load average: 0.20, 0.12, 0.10 
  2. Tasks:   3 total,   1 running,   2 sleeping,   0 stopped,   0 zombie 
  3. %Cpu(s):  0.5 us,  0.3 sy,  0.0 ni, 99.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 
  4. KiB Mem:   4042284 total,  2523744 used,  1518540 free,   263776 buffers 
  5. KiB Swap:  1048572 total,        0 used,  1048572 free.  1804264 cached Mem 
  6.  
  7.   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND 
  8.     1 root      20   0   21964   3632   3124 S   0.0  0.1   0:00.23 bash 
  9.   193 root      20   0  123520  29636   8640 S   0.0  0.7   0:00.58 flask 
  10.   195 root      20   0   23608   2724   2400 R   0.0  0.1   0:00.21 top 

你所用的 top 版本可能跟这个看起来不一样,特别是在显示的列上。

如何阅读输出的内容

你可以根据输出判断你正在运行的内容,但尝试去解释结果你可能会有些困惑。

前几行包含一堆统计信息(详细信息),后跟一个包含结果列的表(列)。让我们从后者开始吧。

这些是系统正在运行的进程。默认按 CPU 使用率降序排序。这意味着在列表顶部的程序正使用更多的 CPU 资源并对你的系统造成更重的负担。对于资源使用而言,这些程序是字面上的消耗资源最多的(top)进程。不得不说,top 这个名字起得很妙。

最右边的 COMMAND 一列报告进程名(启动它们的命令)。在这个例子里,进程名是 bash(一个我们正在运行 top 的命令解释器)、flask(一个 Python 写的 web 框架)和 top 自身。

其它列提供了关于进程的有用信息:

  • PID:进程 ID,一个用来定位进程的唯一标识符
  • USER:运行进程的用户
  • PR:任务的优先级
  • NI:Nice 值,优先级的一个更好的表现形式
  • VIRT:虚拟内存的大小,单位是 KiB(kibibytes)
  • RES:常驻内存大小,单位是 KiB(物理内存和虚拟内存的一部分)
  • SHR:共享内存大小,单位是 KiB(共享内存和虚拟内存的一部分)
  • S:进程状态,一般 I 代表空闲,R 代表运行,S 代表休眠,Z 代表僵尸进程,T 或 t 代表停止(还有其它更少见的选项)
  • %CPU:自从上次屏幕更新后的 CPU 使用率
  • %MEM:自从上次屏幕更新后的 RES 常驻内存使用率
  • TIME+:自从程序启动后总的 CPU 使用时间
  • COMMAND:启动命令,如之前描述那样

确切知道 VIRTRESSHR 值代表什么在日常操作中并不重要。重要的是要知道 VIRT 值最高的进程就是内存使用最多的进程。当你在用 top 排查为什么你的电脑运行无比卡的时候,那个 VIRT 数值最大的进程就是元凶。如果你想要知道共享内存和物理内存的确切意思,请查阅 top 手册的 Linux Memory Types 段落。

是的,我说的是 kibibytes 而不是 kilobytes。通常称为 kilobyte 的 1024 值实际上是 kibibyte。希腊语的 kilo(χίλιοι)意思是一千(例如一千米是 1000 米,一千克是 1000 克)。Kibi 是 kilo 和 binary 的合成词,意思是 1024 字节(或者 2^10 )。但是,因为这个词很难说,所以很多人在说 1024 字节的时候会说 kilobyte。top 试图在这里使用恰当的术语,所以按它说的理解就好。

屏幕更新说明

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读