理解 Unix 中的 top 命令

use*_*083 49 unix top

当我top -c在我的 UNIX 机器上运行命令时,我得到以下输出:

top - 03:09:34 up 5 days,  6:14,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 175 total,   1 running, 174 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.0%sy,  1.0%ni, 98.3%id,  0.2%wa,  0.0%hi,  0.0%si,  0.3%st
Mem:   8089600k total,  7953908k used,   135692k free,   271956k buffers
Swap: 10288440k total,  1155552k used,  9132888k free,  1934536k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                           
28552 ora       18   0 2131m 571m 3456 S  2.0  7.2  72:51.19 <some_path>
    1 root      15   0 10368  576  544 S  0.0  0.0   0:00.13 init [3]
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.85 [migration/0]
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.02 [ksoftirqd/0] 
Run Code Online (Sandbox Code Playgroud)

如何根据此输出分析系统?内存和交换有什么区别?我是 UNIX 新手并尝试了此命令的手册页,但我无法理解如何分析此数据。

ter*_*don 94

所有这些信息都可以在top手册页中找到,您可以通过运行man top. 这是一个细分:

在此处输入图片说明

  • CPU(s) 行显示:

    基于自上次刷新以来间隔的 CPU 状态百分比。下面显示了两个标签,首先显示了较新内核版本的标签。
    us, user : 运行 un-niced 用户进程
    sy 的 时间, system : 运行内核进程
    ni 的 时间, nice : 运行 niced 用户进程
    wa 的时间, IO-wait : 等待 I/O 完成的时间
    hi : 服务硬件中断所花费的时间
    si :服务软件中断所花费的时间
    st:虚拟机管理程序从此虚拟机中窃取的时间

  • MemSwap行显示:

    这部分由两行组成,可以根据当前安装的物理内存量以千比字节 (KiB)、兆字节 (MiB) 或吉比字节 (GiB) 表示值。

    第 1 行反映物理内存,分类为:total、used、free、buffers

    第 2 行反映虚拟内存,分类为:total、used、free、cached

    物理内存是您的 RAM,即提供随机存取内存的物理硬件。交换是虚拟内存,它可以是硬盘驱动器上的文件或分区,主要用作额外的 RAM。虽然它不是一个单独的 RAM 芯片,但它驻留在您的硬盘驱动器上。

  • 最后一部分提供有关当前正在运行的进程的信息。它由以下列组成:

    1. PID -- Process Id :这是用于标识进程的唯一编号。
    2. 用户:启动进程的用户的用户名。
    3. PR -- Priority:进程的优先级。具有较高优先级的进程将受到内核的青睐,并比具有较低优先级的进程获得更多的 CPU 时间。奇怪的是,这个值越低,实际优先级就越高;*nix 的最高优先级是 -20,最低是 20。
    4. NI -不错的价值:nice是一种设置流程优先级的方式。请参阅此处了解更多详情。
    5. VIRT—— 虚拟内存大小(KiB):进程使用的虚拟内存总量。
    6. RES—— 驻留内存大小(KiB):任务使用的非交换物理内存。
    7. SHR - 共享内存大小 (KiB):可用于任务的共享内存量,通常并非所有这些都是常驻的。它只是反映了可能与其他进程共享的内存。
    8. S—— 进程状态:任务的状态,可以是以下之一:

      • 'D' = 不间断睡眠
      • 'R' = 运行
      • 'S' = 睡觉
      • 'T' = 跟踪或停止
      • 'Z' = 僵尸
    9. %CPU -- CPU 使用率:进程使用的 CPU 百分比。默认情况下,将其top显示为单个 CPU 的百分比。在多核系统上,您可以拥有大于 100% 的百分比。例如,如果 3 个内核的使用率为 60%,top将显示 CPU 使用率为 180%。请参阅此处了解更多信息。您可以通过Shiftitop运行时点击以显示正在使用的可用 CPU 的总体百分比来切换此行为。
    10. %MEM -- 内存使用 (RES) :任务当前使用的可用物理内存 (RAM) 份额。
    11. TIME+ -- CPU 时间,百分之一:任务自启动以来使用的总 CPU 时间。
    12. COMMAND - 命令名称或命令行:要查看启动进程的完整命令行,请以-c标志 :开头top -c