Linux下,top命令查看结果解析

下面这段代码是在Linux系统,通过top命令查看到的服务器信息

app@pyplood:/opt/state_scheduler/runtime/logs$ top
top - 21:57:08 up 65 days, 10:36,  1 user,  load average: 0.07, 0.08, 0.02
Tasks: 290 total,   1 running, 289 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us, 50.0 sy,  0.0 ni, 50.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 
MiB Mem :   7462.6 total,    175.4 free,   1158.0 used,   6429.2 buff/cache     
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   6304.6 avail Mem

接下来对具体字段所代表的含义进行展开讲解:

一、系统状态信息
top - 21:57:08 up 65 days, 10:36,  1 user,  load average: 0.07, 0.08, 0.02
  • 时间:21:57:08 是当前系统时间
  • 系统运行时间:up 65 days, 10:36 表示系统已经连续运行了 65 天 10 小时 36 分钟,说明系统的稳定性较好
  • 登录用户数:1 user 表示当前有 1 个用户登录到系统
  • 系统负载平均值:load average: 0.07, 0.08, 0.02 分别代表系统在过去 1 分钟、5 分钟和 15 分钟内的平均负载。这些数值较低,表明系统当前的负载很轻,几乎没有什么压力
二、任务(进程)信息
Tasks: 290 total,   1 running, 289 sleeping,   0 stopped,   0 zombie
  • 总进程数:290 total 表示系统中当前总共有 290 个进程
    运行状态:
  • 1 running:有 1 个进程正在运行
  • 289 sleeping:有 289 个进程处于睡眠状态,即它们正在等待某个事件的发生,比如等待 I/O 操作完成
  • 0 stopped:没有被停止的进程
  • 0 zombie:没有僵尸进程。僵尸进程是指已经结束但父进程没有正确回收其资源的进程,过多的僵尸进程会占用系统资源
三、CPU 使用率信息
%Cpu(s):  0.0 us, 50.0 sy,  0.0 ni, 50.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 
  • 用户空间 CPU 使用率:0.0 us 表示用户进程占用 CPU 的时间比例为 0%
  • 系统空间 CPU 使用率:50.0 sy 表示系统内核进程占用 CPU 的时间比例为 50%。较高的系统 CPU 使用率可能意味着系统在进行大量的内核操作,比如设备驱动、内存管理等
  • 调整优先级后的进程 CPU 使用率:0.0 ni 表示经过 nice 值调整(改变进程优先级)的进程占用 CPU 的时间比例为 0%
  • 空闲 CPU 使用率:50.0 id 表示 CPU 处于空闲状态的时间比例为 50%。
  • 等待 I/O 的 CPU 使用率:0.0 wa 表示 CPU 等待 I/O 操作完成的时间比例为 0%,说明系统的 I/O 操作没有导致 CPU 长时间等待
  • 硬中断处理 CPU 使用率:0.0 hi 表示处理硬件中断占用 CPU 的时间比例为 0%
  • 软中断处理 CPU 使用率:0.0 si 表示处理软件中断占用 CPU 的时间比例为 0%
  • 被虚拟机偷走的 CPU 使用率:0.0 st 如果你使用的是虚拟机,该数值表示虚拟机管理程序从当前虚拟机中 “偷走” 的 CPU 时间比例为 0%
四、内存使用信息
MiB Mem :   7462.6 total,    175.4 free,   1158.0 used,   6429.2 buff/cache     
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   6304.6 avail Mem
  • 物理内存
    7462.6 total:系统总共有 7462.6 MiB 的物理内存
    175.4 free:当前可用的物理内存为 175.4 MiB
    1158.0 used:已使用的物理内存为 1158.0 MiB
    6429.2 buff/cache:用于缓存和缓冲区的物理内存为 6429.2 MiB。这部分内存可以被快速回收,以满足新的内存需求

  • 交换空间(Swap)
    0.0 total:系统没有配置交换空间
    0.0 free0.0 used:由于没有交换空间,所以可用和已使用的交换空间均为 0

  • 可用内存6304.6 avail Mem 表示系统实际可用于新进程的内存为 6304.6 MiB,这个数值考虑了缓存和缓冲区可以释放的内存

总结

从 top 命令的输出可以看出,系统当前负载较轻,有较多的空闲 CPU 和可用内存。
但是,较高的系统 CPU 使用率可能需要进一步检查,以确定是否存在内核层面的性能问题。
在 top 界面中,按 1 键可以查看每个 CPU 核心的使用情况;

%Cpu0  :  1.0 us,  0.0 sy,  0.0 ni, 98.6 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st 
%Cpu1  :  1.3 us,  0.0 sy,  0.0 ni, 98.3 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st

按 M 键按内存使用量排序进程;按 P 键按 CPU 使用量排序进程,以便更详细地了解系统状态。


内容延伸

关于文中提到的过去1/5/15分钟内的平均负载
系统平均负载(Load Average)是衡量 Linux 等系统繁忙程度的一个重要指标,它反映了系统在一段时间内正在运行和等待运行的进程数量。系统在过去 1 分钟内的平均负载为 0.07,这有以下几方面的含义:

系统负载程度解读

  • 负载很轻:平均负载数值较低,说明系统当前处于较为空闲的状态。在过去 1 分钟内,系统中几乎没有太多进程在竞争 CPU 资源,CPU 有大量的空闲时间来处理其他任务。一般来说,平均负载值越接近 0,系统就越空闲
  • 资源充足:0.07 的负载表明系统的 CPU、内存等资源充足,能够轻松应对当前的工作负载。这意味着在这个时间段内,新的进程或任务可以很容易地被系统调度和执行,不会因为资源竞争而导致性能下降

与系统 CPU 核心数的关系

平均负载的合理范围需要结合系统的 CPU 核心数来判断。假设系统有 n 个 CPU 核心:

  • 负载小于核心数:当平均负载小于 CPU 核心数时,通常表示系统能够正常处理当前的工作负载,不会出现明显的性能瓶颈。例如,对于一个具有 4 个 CPU 核心的系统,平均负载为 0.07 远远小于核心数,说明系统资源利用率非常低
  • 负载接近或大于核心数:如果平均负载接近或大于 CPU 核心数,那么系统可能已经处于高负载状态,部分进程可能需要等待 CPU 资源,从而导致响应时间变长。例如,对于一个 4 核系统,平均负载达到 4 或更高时,就需要关注系统的性能问题了

结合不同时间段分析

top 命令显示的平均负载有三个数值,分别代表过去 1 分钟、5 分钟和 15 分钟的平均负载。将这三个数值结合起来分析,可以更好地了解系统负载的变化趋势:

  • 三个数值接近且都较低:如 0.07、0.08、0.02,说明系统长期处于低负载状态,运行非常稳定
  • 1 分钟负载低,5 分钟和 15 分钟负载高:可能表示系统刚刚从高负载状态恢复,之前的负载压力较大,但现在已经得到缓解
  • 1 分钟负载高,5 分钟和 15 分钟负载低:这可能是系统突然遇到了一个短暂的高负载任务,如大量数据的导入操作,但这种高负载是暂时的

综上所述,上文提到的过去 1 分钟内平均负载为 0.07 表明系统当前处于非常轻松的工作状态,有足够的资源来处理新的任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值