Linux常用命令:top

常用

  • top 进程模式
  • top –H 线程模式

输出

第一行

** top - 23:57:58 up 9 days, 2:12, 4 users, load average: 0.38, 0.47, 0.43 **

  • 第一行描述的是系统负载的整体情况
    • load average(系统负载),用Linux内核的任务队列的平均长度表示。0.38, 0.47, 0.43这三个数值分别是系统1分钟前,5分钟前、15分钟前到现在的平均值。当load average的数值/CPU逻辑核心数==1.0时,表示系统满载运行。超过1.0时,表示系统已经超载运行,不堪重负。
    • 下面一段话引用自man page:

System load averages is the average number of processes that are either in a runnable or uninterruptable state. A process in a runnable state is either using the CPU or waiting to use the CPU. A process in uninterruptable state is waiting for some I/O access, eg waiting for disk.

第二行

** Tasks: 205 total, 2 running, 203 sleeping, 0 stopped, 0 zombie **

  • 第二行描述了系统进程/线程的基本情况。当使用top是,task表示进程;当使用top –H时,task表示线程。
  • running – 状态为TASK_RUNNING的task数量。
  • sleeping – 状态为TASK_INTERRUPTIBLE或TASK_UNINTERRUPTIBLE的task数量。
  • stopped – 状态为__TASK_STOPPED的task数量,正常的系统这种进程状态应该很少。在收到一些“致命”的signal时,task会进入这种状态。
  • zombie – 状态为EXIT_ZOMBIE的task。在Linux中,一个task退出后,会进入EXIST_ZOMBIE,需要由父task调用wait系列的函数对其进行回收。如果系统出现大量zombie的task,则很有可能是父task没有对子task调用wait进行回收或者产生太多task,父task还来不及回收。(如果父task在子task之前退出了,则由init task回收zombie task)。

第三行

** %Cpu(s): 4.3 us, 1.2 sy, 0.0 ni, 94.4 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st **

  • %Cpu(s)描述了多核CPU使用情况。在top命令的交互界面输入左上角的1可以看到不同CPU核的使用情况。
  • us, user: time running un-niced user processes
  • sy, system: time running kernel processes
  • ni, nice: time running niced user processes
  • id, idle: time spent in the kernel idel handler
  • wa, IO-wait: time waiting for I/O completion
  • hi: time spent servicing hardware interrupts
  • si: time spent servicing software interrupts
  • st: time stolen from this vm by the hypervisor

第四行

** KiB Mem: 3856200 total, 3201784 used, 654416 free, 221532 buffers **

  • 第四行Mem是从OS的角度描述物理内存的使用情况。具体见Linux命令:free。

第五行

** KiB Swap: 3999740 total, 485604 used, 3514136 free. 1374532 cached Mem **

  • 第五行Swap显示了虚拟内存的使用情况。
  • Cached Mem – 缓冲的交换区总量。内存中的内容被交换到Swap,而后又被换入到内存。内存中和Swap中的内容都未被修改,则相应的内存再次被换出时可不必再对Swap写入。

第六行

** PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND **

  • 这一行是下面描述各个进程/线程的情况的标题。

你可能感兴趣的:(Linux常用命令:top)