Linux top 命令详解

Linux top 命令详解

主要功能和用途

  1. 实时监控:提供一个实时的、动态的视图,展示系统当前的状态。
  2. 进程管理:允许用户查看系统中各个进程的运行状态。
  3. 资源监控
    • CPU使用情况:监控CPU的总体使用率、用户空间占用率、系统空间占用率等。
    • 内存使用情况:展示物理内存和交换空间(swap)的使用情况,包括总量、已用量、空闲量等。
    • 进程资源占用:显示每个进程的虚拟内存使用量、物理内存使用量等。

基本用法

在终端中输入top命令并回车,即可启动top程序。默认情况下,它会显示系统中所有进程的列表,并按照CPU使用率进行排序。

top

主要界面元素

  • 顶部区域:显示系统的整体状态,包括当前时间、系统运行时间、登录用户数、平均负载等。平均负载是指在特定时间间隔内,系统处于运行状态和不可中断状态的平均进程数,是衡量系统负载的重要指标。
  • 任务(Tasks)区域:显示当前系统中进程的总数、正在运行的进程数、睡眠中的进程数、停止的进程数以及僵尸进程数。
  • CPU状态:展示CPU的使用情况,包括用户空间占用率、系统空间占用率、空闲率、等待IO时间等。
  • 内存(Mem)和交换空间(Swap)状态:显示物理内存和交换空间的使用情况,包括总量、已用量、空闲量、缓存量等。
  • 进程列表:列出系统中各个进程的详细信息,包括PID(进程ID)、用户、优先级、虚拟内存使用量、物理内存使用量、共享内存量、状态(如运行、睡眠、停止等)、CPU使用率、内存使用率、运行时间以及命令行名称等。

示例分析

image

  1. 系统时间和状态
    • 00:07:32 up 4:29:表示当前时间是00:07:32,系统已经运行了4小时29分钟
    • 4 users:当前有4个用户登录系统。
    • load average: 0.17, 0.27, 0.17:分别表示过去1分钟、5分钟、15分钟的平均负载。平均负载是指系统在特定时间间隔内等待CPU的平均进程数。这里的值表明系统负载较低,但过去1分钟的负载略高于其他时间段。
  2. 任务统计
    • Tasks: 226 total:系统中共有226个进程
    • 2 running:当前有2个进程正在运行
    • 224 sleeping:有224个进程处于睡眠状态,等待某些条件触发(如I/O操作)。
    • 0 stopped没有进程被停止
    • 0 zombie没有僵尸进程。僵尸进程是已经结束但父进程尚未通过调用wait()或waitpid()等待其结束状态的进程。
  3. CPU使用情况
    %Cpu(s): 0.6 us, 24.8 sy, 0.0 ni, 74.5 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st:
    • us(用户空间占用CPU百分比):0.6%
    • sy(内核空间占用CPU百分比):24.8%,us + sy 就是我们常说的CPU利用率,即 0.6% + 24.8% = 25.4%
    • ni(改变过优先级的进程占用CPU百分比):0.0%
    • id(空闲CPU百分比):74.5%,表明CPU大部分时间处于空闲状态。
    • wa(等待输入输出的CPU时间百分比):0.0%
    • hi(硬件中断):0.0%
    • si(软件中断):0.1%
    • st(虚拟机偷取时间):0.0%
  4. 内存和交换空间使用情况
    • KiB Mem:
      • 5178152 total:物理内存总量为5178152KB。
      • 321828 free:空闲内存为321828KB,内存使用率通常用 (total - free) / total 来计算
      • 1063612 used:已使用的内存为1063612KB。
      • 3792712 buff/cache:用作缓冲/缓存的内存为3792712KB。
    • KiB Swap:
      • 2097148 total:交换空间总量为2097148KB。
      • 2096884 free:空闲交换空间为2096884KB。
      • 264 used:已使用的交换空间为264KB。
      • 3799532 avail Mem:估计可用内存为3799532KB,这个值考虑了缓冲/缓存的内存,因为这些内存可以在需要时释放给应用程序使用。
  5. 进程详细信息
    • PID:进程ID,是系统中唯一标识每个进程的数字。
    • USER:运行该进程的用户名。
    • PR:进程的优先级。较低的数值表示较高的优先级。
    • NI:nice值,是一个影响进程优先级的值。负值表示较高的优先级,正值表示较低的优先级。
    • VIRT:虚拟内存大小,是进程使用的虚拟内存总量,包括进程使用的库、数据段、堆栈等。
    • RES:常驻内存大小,是进程当前占用的物理内存量(不包括交换出去的部分)。
    • SHR:共享内存大小,是可被多个进程共享的内存量。
    • S:进程状态,常见的状态有S(睡眠/可中断)、R(运行/正在执行)、D(不可中断睡眠)等。
    • %CPU:自进程启动以来占用的CPU百分比。
    • %MEM:进程使用的物理内存占总内存的百分比。
    • TIME+:进程占用的CPU时间总计,格式为分钟:秒。
    • COMMAND:启动进程的命令名/命令行。

常用选项

-u 用户名:仅显示指定用户的进程。
-n 次数:指定top命令更新的次数,之后自动退出。
-d 秒数:设置屏幕更新的间隔时间,默认为3秒。
-b:以批处理模式运行,通常与重定向结合使用,将输出保存到文件中。
-H:以线程模式显示,显示每个线程的详细信息,而非仅显示进程。

交互命令

在top运行时,用户可以通过一系列交互命令来改变显示的内容或排序方式:

P:以CPU使用率排序。
M:以内存使用率排序。
T:以时间/累计时间排序。
fF:进入字段管理界面,允许用户自定义显示的字段。
k:杀死一个进程,需要输入进程的PID和信号。
r:重新设定进程的优先级。
q:退出top。

posted @ 2024-09-09 16:13  测试小罡  阅读(551)  评论(0编辑  收藏  举报