top命令输出详解

28 篇文章 2 订阅
10 篇文章 1 订阅

1.简介

top命令在Linux系统中用于实时显示系统中各个进程的资源占用情况。它提供了一个动态的、实时的视图,展示了系统中各个进程的CPU、内存占用率,以及运行状态等信息,是系统管理员和系统开发者常用的性能分析工具。

2.常用参数

  • -d:number代表秒数,表示页面刷新间隔。默认是5秒。
  • -n:与-b配合使用,表示需要进行几次top命令的输出结果。
  • -p:指定特定的pid进程号进行观察。

在进入top命令显示的页面还可以输入以下按键执行相应的功能

  • 1:监控每个逻辑cpu的状况
  • c:切换显示命令名称和完整命令行
  • M:可按内存情况进行排序
  • P:根据CPU百分比排序
  • T:根据时间/累积时间进行排序
  • f:选择可显示内容
     

3.输出详解

命令输出如下

第一行:top 系统概况

top - 21:50:46                             当前系统时间

up  1:07                                      系统本次稳定运行时间,从最近一次开机算起

3 users                                       当前在线用户数

load average: 0.00, 0.01, 0.05    系统平均负载时间(分别代表每分钟,每五分钟,每十五分钟),服务器性能重要依据,以单颗cpu为例(长期观察每十五分钟这一参数):

  • <1:系统资源很充足
  • =1:系统在全力处理任务
  • >1:CPU已在全力工作,但队队列仍然很长,任务量还很多

第二行:tasks 任务介绍

  • total 当前总进程
  • runing 个正在运行进程
  • sleeping 个睡眠进程
  • stopped 个停止进程
  • zombie 个僵尸进程

第三行:%cpu  CPU信息

  • us 表示 CPU 在用户运行的时间百分比,通常用户 CPU 高表示有应用程序比较繁忙。典型的用户程序有:数据库、Web 服务器等
  • sy 表示 CPU 在内核态运行的时间百分比(不包括中断),通常内核态 CPU 越低越好,否则表示系统存在某些瓶颈
  • ni 表示用 nice 修正进程优先级的用户进程执行的 CPU 时间。nice 是一个进程优先级的修正值,如果进程通过它修改了优先级,则会单独统计 CPU 开销
  • id 表示 CPU 处于空闲态的时间占比,此时,CPU 会执行一个特定的虚拟进程,名为 System Idle Process
  • wa 表示 CPU 在等待 I/O 操作完成所花费的时间,通常该指标越低越好,否则表示 I/O 存在瓶颈,可以用 iostat 等命令做进一步分析
  • hi 表示 CPU 处理硬中断所花费的时间。硬中断是由外设硬件(如键盘控制器、硬件传感器等)发出的,需要有中断控制器参与,特点是快速执行
  • si 表示 CPU 处理软中断所花费的时间。软中断是由软件程序(如网络收发、定时调度等)发出的中断信号,特点是延迟执行
  • st 表示CPU 被其他虚拟机占用的时间,仅出现在多虚拟机场景。如果该指标过高,可以检查下宿主机或其他虚拟机是否异常

注意:注意:一般我们关注多的是us、sy、id、wa、hi、wi这个6个数值,

  • 统计空闲的CPU我们直接统计%id的计数即可,当id持续过低的时候,表示系统迫切需要解决CPU资源问题。
  •     统计使用的是CPU需要用1-%id获取。或者us+sy+si.
  • wa:使用率过高的时候,我们需要考虑IO的性能是否有瓶颈,可以在使用iostat、sar等命令做进一步分析;
  • hi:使用率过高时,表示当前硬件中断占用很大的百分比。一般硬件中断我们可以分析文件/proc/interrupts、/proc/irq/pid/smp_affinity、服务irqbalance是否配置,以及CPU的频率设置,通过这些可以帮系统打散优化系统的硬件中断。
  • si:Linux kernel通过用一种软件的方法(可延迟函数)来模拟硬件的中断模式,通常叫做软中断。常见的软件中断一般都是和网络有关。从网卡到IP层的数据报文收发都是si处理的,长时间写日志也可能产生软件中断。
  • 当软中断出现瓶颈的时候,系统有个进行叫ksoftirqd,每个CPU都有自己对应的ksoftirqd/n(n为CPU的逻辑ID),每个ksoftirqd的内核线程都会去运行对应的ksoftirqd(函数)来处理自己的中断队列上的软件中断。所以,当网络出现阻塞的时候,软件中断程序ksoftirqd肯定会出现瓶颈。此时我们可以通过ps aux|grep ksoftirqd查看ksoftirqd的瓶颈。

第四行:MiB Mem(内存信息)

  • total 物理内存总量
  • free 空闲物理内存
  • used 已经使用的物理内存
  • buff/cache 内核缓存内存量
     

第五行:MiB Swap(交换分区)

  • total 交换区总量
  • free 空闲交换区总量
  • used 使用的交换区总量
  • avail Mem 缓冲的交换区总量。

 top进程信息

  • PID    进程id
  • USER    父进程id
  • PR    优先级
  • NI    谦让度值 nice值。负值表示高优先级,正值表示低优先级
  • VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
  • SHR    共享内存大小,单位kb
  • S    进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
  • %CPU    上次更新到现在的CPU时间占用百分比
  • %MEM    进程使用的物理内存百分比
  • TIME+    进程使用的CPU时间总计,单位1/100秒
  • COMMAND    命令名/命令行

 

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
top命令Linux下的一个常用命令,用于查看系统的性能状况,包括CPU、内存、进程等信息。下面是top命令用法的详细介绍: 1. 命令格式 top命令的基本格式为: ``` top [options] ``` 2. 命令参数 top命令的常用参数如下: - -d seconds:指定top命令的刷新时间,默认为3秒。 - -n iterations:指定top命令的刷新次数,执行完后自动退出。 - -p pid:显示指定进程的信息。 - -U username:显示指定用户的信息。 - -u username:显示指定用户或进程的信息。 - -b:以批处理模式运行,输出到文件。 - -c:显示完整的命令行信息。 - -i:不显示闲置的进程。 - -o field:按照指定的字段排序,可以用逗号分隔多个字段。 - -h:显示帮助信息。 3. 显示内容 top命令默认显示的内容包括: - 第一行:系统启动时间、系统运行时间、当前登录用户数、负载平均值。 - 第二行:总进程数、运行中的进程数、休眠进程数、停止进程数、僵尸进程数。 - 第三行:CPU的使用情况,包括用户进程、系统进程、空闲进程、等待输入/输出的进程、硬中断和软中断。 - 后面的行:按照CPU使用率从高到低排列的进程列表,包括进程ID、用户名、CPU使用率、内存使用率、进程状态、运行时间、命令行。 4. 常用操作 - h:显示帮助信息。 - q:退出top命令。 - k:结束指定进程。 - r:修改进程的优先级。 - s:修改top命令的刷新时间。 - Space:刷新top命令的显示内容。 总之,top命令Linux系统监控和调试的重要工具之一,掌握其用法可以更好地了解系统的性能状况,提高系统的稳定性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜灬狼丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值