随笔 - 61,  文章 - 1,  评论 - 0,  阅读 - 58624

top命令用法

top命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。

top的使用方式 top [-d number] | top [-bnp]

参数解释:

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

在top命令显示的页面还可以输入以下按键执行相应的功能(注意大小写区分的):

1
2
3
4
5
6
7
8
9
10
11
1 产看cpu 个数,及各核的使用情况    
P 按照 进程 cpu 的使用率排序 (默认情况)
M 按照 内存的使用情况排序
q 退出
shift +< 上一页
shift +> 下一页
r 调整nice 值 renice
f 选择显示那一列
F,O 按那一列排序
k 杀死一个进程
c 显示command详细信息

 

top各输出参数含义

一、top前五条信息解释
1)第一行:top - 14:49:28 up 1:33, 1 user, load average: 0.00, 0.00, 0.00
内容    含义
14:49:28   ---- 表示当前时间
up 1:33    ---- 系统远行时间,格式为时:分
1 user      ---- 当前登陆用户数
load average: 0.00, 0.00, 0.00    系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值


2)第二行:Tasks: 80 total, 2 running, 78 sleeping, 0 stopped, 0 zombie
内容    含义
80 total          ----  进程总数
2 running       ---- 正在运行的进程数
78 sleeping      ----   睡眠的进程数
0 stopped        ---- 停止的进程数
0 zombie         ---- 僵尸进程数

3)第三行:Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

%Cpu(s):显示了 CPU 的使用情况,包括用户空间(user)、内核空间(system)、空闲(idle)、等待 I/O(iowait)和其他(steal, guest 等)。
内容    含义
0.0%us          ---- 用户空间占用CPU百分比
0.0%sy          ----  内核空间占用CPU百分比
0.0%ni           ----  用户进程空间内改变过优先级的进程占用CPU百分比
100.0%id           ---- 空闲CPU百分比
0.0%wa           ---- 等待输入输出的CPU时间百分比
0.0%hi          ----   硬中断(Hardware IRQ)占用CPU的百分比
0.0%si          ----   软中断(Software Interrupts)占用CPU的百分比
0.0 st            ---- 用于有虚拟cpu的情况,用来指示被虚拟机偷掉的cpu时间


4)第四行:Mem: 1922488k total, 406936k used, 1515552k free, 11940k buffers
内容    含义
1922488k total      物理内存总量
406936k used       使用的物理内存总量
1515552k free       空闲内存总量
11940k buffers      用作内核缓存的内存量

5)第五行:Swap: 835576k total, 0k used, 835576k free, 111596k cached
内容    含义
835576k total      交换区总量
0k used          使用的交换区总量
835576k free      空闲交换区总量
111596k cached      缓冲的交换区总量

二、进程信息

列名 含义
PID 进程ID
USER 进程所有者的用户名
PR 优先级
NI  nice值,负值表示高优先级,正值表示低优先级
VIRT  进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP 进程使用的虚拟内存中,被换出的大小,单位kb
RES  进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND 命令行

 


默认进入top时,各进程是按照CPU的占用量来排序的。

 

 

top 是一个 Linux 系统中的实时性能监控命令,主要用于显示系统中各个进程的实时状态。它可以提供了有关 CPU 使用率、内存使用情况、运行的任务数量、系统负载等信息。

1. top 命令的基本输出内容

当运行 top 命令时,屏幕上会显示以下几部分信息:

1.1 系统信息行(Summary Information)

位于 top 输出的顶部,包含以下内容:

  • uptime:系统已经运行的时间。
  • users:当前登录系统的用户数量。
  • load average:系统的平均负载,分别为过去 1 分钟、5 分钟和 15 分钟的平均值。这个值越高,表示系统的压力越大。
1.2 任务信息(Task Information)

显示当前系统的任务和进程状态:

  • Tasks:表示系统中总的进程数,分为运行(running)、睡眠(sleeping)、停止(stopped)和僵尸(zombie)进程的数量。
  • %Cpu(s):显示 CPU 使用情况,包括用户空间使用率、系统空间使用率、空闲率等。
1.3 内存信息(Memory Information)

显示系统内存的使用情况:

  • KiB Mem:显示物理内存的使用情况,包括总量(total)、已使用(used)、空闲(free)和缓存/缓冲(buffers/cache)。
  • KiB Swap:显示交换分区的使用情况。
1.4 进程列表(Process List)

显示当前系统中的各个进程,包括以下信息:

  • PID:进程 ID。
  • USER:运行该进程的用户。
  • PR:进程优先级。
  • NI:进程的 nice 值(影响进程优先级)。
  • VIRT:进程占用的虚拟内存大小。
  • RES:进程占用的物理内存大小。
  • SHR:进程使用的共享内存大小。
  • S:进程状态(S 表示休眠,R 表示运行,Z 表示僵尸进程等)。
  • %CPU:进程使用的 CPU 资源百分比。
  • %MEM:进程使用的内存资源百分比。
  • TIME+:进程使用的 CPU 时间总计。
  • COMMAND:运行该进程的命令名。

2. top 命令的常用选项和操作

  • -d <秒数>:设置 top 命令的刷新时间间隔。
  • -n <次数>:指定 top 命令运行的次数后自动退出。
  • -p <进程ID>:仅显示指定进程ID的信息。
  • -u <用户名>:仅显示指定用户名的进程信息。
  • -H:显示线程详细信息。
  • -i:不显示闲置或无用的进程。
  • -b:以批处理模式运行,直接将结果输出到文件。
  • -c:显示完整的命令行而不截断。
  • -S:累计显示进程的 CPU 使用时间。

3. 在 top 中的交互操作

  • h:显示帮助信息。
  • k:杀掉一个进程,输入进程的 PID 即可。
  • q :退出 top 命令。
  • r:重新调整某个进程的优先级。
  • s:更改屏幕刷新间隔时间。
  • P:按 CPU 使用率排序(默认排序)。
  • M:按内存使用率排序。
  • T:按运行时间排序。
  • c:显示完整的命令行(COMMAND)信息。
  • 1:显示每个 CPU 的负载信息。

4. 实际使用

  • 监控所有进程的 CPU 和内存使用情况

      
    bash 复制代码
    top
  • 以 5 秒的刷新间隔运行 top

      
    bash 复制代码
    top -d 5
  • 只查看指定用户的进程

      
    bash 复制代码
    top -u username
  • 将 top 的输出保存到文件中

      
    bash 复制代码
    top -b -n 1 > top_output.txt
  • 显示前 10 个 CPU 使用率最高的进程:

      
    bash 复制代码
    top -b -n 1 | head -n 10

5. 查看 I/O 情况

top 命令默认情况下不显示详细的 I/O 使用情况。要在 top 中查看基本的 I/O 等待情况,可以关注以下字段:

  • wa : 在 top 命令输出的第三行(%Cpu(s)行),wa 字段表示 I/O 等待时间的百分比。如果该值较高,表示系统大量时间在等待 I/O 操作完成,通常意味着 I/O 子系统可能是性能瓶颈。

6. 其他查看 I/O 情况的工具

要详细查看每个进程的 I/O 使用情况,可以使用 iotop 或 iostat 工具。

  1. iotop 命令 :类似于 top,但专门用于监控 I/O 使用情况。

    • 安装 iotop

        
      bash 复制代码
      sudo apt-get install iotop   # 对于 Debian/Ubuntu
      sudo yum install iotop       # 对于 CentOS/RHEL
    • 使用 iotop 查看 I/O 使用情况:

        
      bash 复制代码
      sudo iotop

      iotop 的输出会显示每个进程的 I/O 读取和写入速度,以及它们的 I/O 优先级。

  2. iostat 命令:用于显示设备级别的 I/O 统计信息。

    • 安装 iostat(通常在 sysstat 包中):

        
      bash 复制代码
      sudo apt-get install sysstat   # 对于 Debian/Ubuntu
      sudo yum install sysstat       # 对于 CentOS/RHEL
    • 使用 iostat 查看 I/O 使用情况:

        
      bash 复制代码
      iostat -x 1

      iostat -x 1 命令会以 1 秒的间隔显示设备级别的详细 I/O 统计信息,包括读取/写入速度、设备的使用率等。

总结

  • top 命令非常适合查看系统整体的 CPU 和内存使用情况,并可简单地查看 I/O 等待时间。
  • 对于更详细的 I/O 使用情况分析,推荐使用 iotop 和 iostat 工具,它们可以提供进程级别和设备级别的 I/O 数据。
  • top 命令是系统管理员和开发人员在 Linux 系统中进行实时监控的一个强大工具。熟练使用 top 可以有效地监控系统性能,发现和解决系统中的性能瓶颈问题。

 


                        
原文链接:https://blog.csdn.net/promise524/article/details/141691485

 

posted on   天外来客I  阅读(2823)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示