副标题[/!--empirenews.page--]
                        技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战
            
  
通过这篇教程提升你的 top 命令的知识。 
 
尝试找出你的机器正在运行什么程序,以及哪个进程耗尽了内存导致系统非常非常慢 —— 这是 top 命令所能胜任的工作。 
top 是一个非常有用的程序,其作用类似于 Windows 任务管理器或 MacOS 的活动监视器。在 *nix 机器上运行 top 将实时显示系统上运行的进程的情况。 
- $ top 
 
  
取决于你运行的 top 版本,你会看到类似如下内容: 
- top - 08:31:32 up 1 day,  4:09,  0 users,  load average: 0.20, 0.12, 0.10 
 - Tasks:   3 total,   1 running,   2 sleeping,   0 stopped,   0 zombie 
 - %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 
 - KiB Mem:   4042284 total,  2523744 used,  1518540 free,   263776 buffers 
 - KiB Swap:  1048572 total,        0 used,  1048572 free.  1804264 cached Mem 
 -  
 -   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND 
 -     1 root      20   0   21964   3632   3124 S   0.0  0.1   0:00.23 bash 
 -   193 root      20   0  123520  29636   8640 S   0.0  0.7   0:00.58 flask 
 -   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:启动命令,如之前描述那样 
 
确切知道 VIRT,RES 和 SHR 值代表什么在日常操作中并不重要。重要的是要知道 VIRT 值最高的进程就是内存使用最多的进程。当你在用 top 排查为什么你的电脑运行无比卡的时候,那个 VIRT 数值最大的进程就是元凶。如果你想要知道共享内存和物理内存的确切意思,请查阅 top 手册的 Linux Memory Types 段落。 
是的,我说的是 kibibytes 而不是 kilobytes。通常称为 kilobyte 的 1024 值实际上是  kibibyte。希腊语的 kilo(χίλιοι)意思是一千(例如一千米是 1000 米,一千克是 1000 克)。Kibi 是 kilo 和  binary 的合成词,意思是 1024 字节(或者 2^10 )。但是,因为这个词很难说,所以很多人在说 1024 字节的时候会说  kilobyte。top 试图在这里使用恰当的术语,所以按它说的理解就好。 
屏幕更新说明
                                                (编辑:泰州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |