top命令使用

了解Linux系统性能的利器:top命令详解

 

在测试和监控Linux系统性能时,top命令是一个不可或缺的工具。top命令以交互式方式提供实时系统性能数据,帮助深入了解系统的运行状况。top命令的主要功能:

  1. 实时性能监控:top命令默认以实时方式显示CPU使用率、内存占用、进程信息等关键性能指标。这使能够快速识别系统资源瓶颈。

  2. 进程管理:通过top,可以查看运行中的所有进程,并可以根据CPU或内存占用来排序它们。还可以发送信号来终止或暂停进程。

  3. 资源利用情况:top提供了关于系统内存和交换空间的详细信息,包括空闲内存、缓冲区和缓存。

  4. 用户界面:top的交互式界面允许动态调整显示的内容,例如更改排序方式、刷新频率和显示的进程数量。可以按 `M` 键切换到按内存排序。刷新频率:默认每隔 3 秒刷新一次。可以按 `d` 键来更改刷新频率。

    按 `o` 键,然后选择不同的排序选项,如 CPU 使用率、内存使用等。

    查看不同的系统资源:按 `1` 键查看 CPU 核心的详细信息,按 `2` 键查看内存的详细信息。退出 `top`:按 `q` 键退出 `top`

  5. 日志记录:top还可以将性能数据记录到文件,以便后续分析和审查。

 

top

启动 top将看到如下的主要部分:

顶部信息:包括系统运行时间、当前时间、登录用户数、系统负载等。

进程列表:按照 CPU 使用率(默认)降序排列的进程列表。每个进程都显示了相关信息,包括进程 ID(PID)、用户名、CPU 使用率、内存使用、进程状态等。以下是一个示例 `top` 输出的一部分:

top - 09:30:00 up 2 days, 2:15, 2 users, load average: 0.20, 0.17, 0.15Tasks: 174 total, 1 running, 173 sleeping, 0 stopped, 0 zombie%Cpu(s):  2.0 us,  0.7 sy,  0.0 ni, 97.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 stKiB Mem :  8015508 total,  1203420 free,  3466332 used,  3343756 buff/cacheKiB Swap:  2097148 total,  2097148 free,        0 used.  4093132 avail Mem 

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1067 john 20 0 1755128 134120 66072 S 6.3 1.7 2:25.23 firefox 2648 alice 20 0 407148 23660 13632 S 4.3 0.3 0:15.19 gnome-terminal 854 root 20 0 348440 14120 9532 S 2.3 0.2 0:31.64 Xorg ...

在示例中,可以看到系统的负载平均值、运行时间、CPU 使用率、内存信息和进程列表。进程列表按照 CPU 使用率降序排列,可以使用交互式命令来与 `top` 进行互动,查看不同的资源信息并进行操作。

在 `top` 命令的输出中,以下是一些常见的列以及它们的含义:

1. **PID**:进程的唯一标识符(进程ID)。

2. **USER**:运行进程的用户名。

3. **PR**:进程的调度优先级。这个值可能是动态变化的。

4. **NI**:进程的 Nice 值,表示进程的优先级。负数表示更高的优先级,正数表示较低的优先级。

5. **VIRT**:进程使用的虚拟内存大小(以千字节为单位)。

6. **RES**:进程占用的物理内存大小(以千字节为单位)。

7. **SHR**:进程使用的共享内存大小(以千字节为单位)。

8. **S**:进程的状态。常见的状态包括: - **R**:运行中(正在执行或等待 CPU 时间片)。 - **S**:睡眠状态(通常是等待某些事件的发生)。 - **D**:不可中断的休眠状态(通常是等待硬件操作完成)。 - **Z**:僵尸状态(进程已终止,但其父进程尚未清理资源)。 - **T**:已停止或暂停。

这些列提供了有关正在运行的进程的详细信息,如进程的标识符、所有者、资源使用情况(内存、虚拟内存等)、进程状态等。`PR` 和 `NI` 列是有关进程调度和优先级的信息,而 `VIRT`、`RES` 和 `SHR` 列则提供了有关进程内存使用的信息。VIRTRES 和 SHR 是与进程内存使用相关的列,它们代表不同类型的内存指标,各自具有以下含义:

  1. VIRT(虚拟内存):

    • 含义:VIRT 列表示进程所使用的虚拟内存大小,以千字节(KB)为单位。

    • 说明:虚拟内存是指进程可以访问的总内存空间的大小,包括实际物理内存(RAM)和交换空间(swap)。虚拟内存大小可能会比实际物理内存和交换空间的总和大,因为它包括了进程可能会使用但尚未实际分配的内存。

  2. RES(常驻内存):

    • 含义:RES 列表示进程实际占用的物理内存大小,以千字节(KB)为单位。

    • 说明:常驻内存是指进程实际使用的物理 RAM 大小。它表示进程当前正在占用的实际物理内存。RES 不包括交换空间中的数据,只包括实际物理 RAM。

  3. SHR(共享内存):

    • 含义:SHR 列表示进程使用的共享内存大小,以千字节(KB)为单位。

    • 说明:共享内存是多个进程之间共享的内存区域。这些进程可以访问相同的内存块,以减少内存的重复使用,从而减小内存占用。SHR 列显示的是进程使用的共享内存大小。

  • VIRT 表示进程所使用的虚拟内存大小,包括实际分配的和可能分配但尚未使用的内存。

  • RES 表示进程实际占用的物理内存大小,即进程当前正在使用的实际 RAM 大小。

  • SHR 表示进程使用的共享内存大小,这是多个进程共享的内存块。

在监视进程内存使用时,通常更关注 RES 列,因为它反映了进程实际占用的物理内存量,而 VIRT 则可能会包括许多未使用的虚拟内存。SHR 可以帮助了解进程是否共享了一些内存,以优化内存利用率。

top还可以将性能数据记录到文件,以便后续分析和审查。一种常见的方法是使用重定向操作符(">")将top的输出保存到文件中,如下所示:

top -b -n 7200 -d 1 > top_output.txt

 

这个命令将top以批处理模式运行,总共运行7200次(每秒1次,即2小时),并将每次的结果追加到名为top_output.txt的文本文件中。这将记录2小时内每秒的性能数据。请注意,这可能会生成一个非常大的文件,因此确保有足够的磁盘空间来存储这个文件,并在采集结束后及时处理和分析数据。

另外,还有其他专门用于系统性能数据采集和记录的工具,如sar、vmstat、iostat等,它们可以更全面地记录系统性能信息,并且通常提供更多的配置选项。这些工具可以将性能数据写入文件,以供稍后分析和审查。

posted @ 2023-10-17 13:44  往事已成昨天  阅读(49)  评论(0编辑  收藏  举报