合一贝网络合一贝网络
首页
案例
新闻
  • Linux
  • VueJs
  • .netcore
  • mysql
  • sqlserver
  • redis
  • 思利康
  • Acro Designe
  • vue3demo
关于
首页
案例
新闻
  • Linux
  • VueJs
  • .netcore
  • mysql
  • sqlserver
  • redis
  • 思利康
  • Acro Designe
  • vue3demo
关于
  • Linux

    • 1.1.1 Linux目录结构
    • 1.2.1 命令结构说明
    • 1.3.1 必备命令
    • 1.3.2 必备命令-sort
    • 1.4.1 用户权限管理
    • 1.5.1 信息查看
    • 1.6.1 参数调优-ulimit
    • 1.7.1 性能监看-free
    • 1.7.2 性能监看-ps
    • 1.7.3 性能监看-top

top 命令详解

top 是 Linux 系统中用于实时监视系统状态的工具。它可以显示系统中的 CPU 使用率、内存使用情况、运行中的进程等信息,并且还可以实时更新这些信息。

root@local:~# top 
top - 07:47:15 up 18:17,  3 users,  load average: 0.17, 0.24, 0.26
Tasks: 260 total,   1 running, 259 sleeping,   0 stopped,   0 zombie
%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
MiB Mem :  64308.4 total,    396.3 free,  48245.6 used,  15666.5 buff/cache
MiB Swap:  73728.0 total,  73727.5 free,      0.5 used.  15348.0 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                          
     10 root      20   0       0      0      0 I   0.3   0.0   0:12.14 rcu_sched                                                                        
   1017 redis     20   0   65548  10692   3472 S   0.3   0.0   0:43.57 redis-server                                                                     
   1166 mysql     20   0   55.1g  46.7g  38116 S   0.3  74.4 111:29.71 mysqld                                                                           
      1 root      20   0  167620  11252   8120 S   0.0   0.0   0:02.82 systemd                                                                          
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd                                                                         
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp                                                                           
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp                                                                       
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-kblockd                                                             
      8 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq                                                                     
      9 root      20   0       0      0      0 S   0.0   0.0   0:00.01 ksoftirqd/0                                                                      
     11 root      rt   0       0      0      0 S   0.0   0.0   0:00.13 migration/0          

1.详情面板解释

top - 07:47:15 up 18:17,  3 users,  load average: 0.17, 0.24, 0.26
Tasks: 260 total,   1 running, 259 sleeping,   0 stopped,   0 zombie
%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
MiB Mem :  64308.4 total,    396.3 free,  48245.6 used,  15666.5 buff/cache
MiB Swap:  73728.0 total,  73727.5 free,      0.5 used.  15348.0 avail Mem

1) top - 07:47:15 up 18:17, 3 users, load average: 0.17, 0.24, 0.26

  • top 这是命令本身,表示正在查看系统的实时状态。
  • 07:47:15 当前系统时间是 10 点 32 分 52 秒。
  • up 18:17: 系统已经运行了 18 小时 17 分钟。
  • 3 user: 有 3 个用户当前登录系统。
  • load average: 0.17, 0.24, 0.26: 这表示系统的平均负载。三个数字分别代表过去 1 分钟、5 分钟和 15 分钟的平均负载。负载是系统中等待运行的任务数量

2) Tasks: 260 total, 1 running, 259 sleeping, 0 stopped, 0 zombie

  • 260 total: 系统总共有 260 个进程。
  • 1 running: 有1个进程正在运行。
  • 259 sleeping: 有 259 个进程在休眠状态。
  • 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 的使用情况
  • us: user space,用户空间占用的 CPU 时间百分比。
  • sy: system space,内核空间占用的 CPU 时间百分比。
  • ni: nice value,改变过优先级的进程占用的 CPU 时间百分比。
  • id: idle,空闲的 CPU 时间百分比。
  • wa: wait,等待 I/O 的 CPU 时间百分比。
  • hi: hardware interrupt,硬件中断占用的 CPU 时间百分比。
  • si: software interrupt,软件中断占用的 CPU 时间百分比。
  • st: steal time,虚拟环境中被其他虚拟机占用的 CPU 时间百分比。

4) MiB Mem : 64308.4 total, 396.3 free, 48245.6 used, 15666.5 buff/cache

  • 这描述了系统的内存使用情况。
  • 64308.0 total: 总内存为 64308 MiB。
  • 396.3 free: 空闲的内存为 396.3 MiB。
  • 48245.6 used: 被使用的内存为 48245.6 MiB。
  • 15666.5 buff/cache: 被缓冲和缓存的内存为 15666.5 MiB。这部分内存是为了提高文件访问速度而被系统用作缓存的内存。

5) MiB Swap: 73728.0 total, 73727.5 free, 0.5 used. 15348.0 avail Mem

  • 这描述了交换空间的使用情况(在物理内存不足时,系统会使用硬盘作为额外的内存,称为交换空间)。
  • 73728.0 total: 总交换空间为 73728.0 MiB。
  • 73727.5 avail Mem: 可用的物理内存是 600.6 MiB(包括缓冲和缓存)。这部分内存可用于满足新的内存需求,而不必使用交换空间。

2.top数据列解释

  • PID:进程ID,唯一标识一个进程的编号。
  • USER:进程所有者的用户名。
  • PR:进程的优先级。
  • NI:nice值,用于调整进程的优先级。默认值是0,范围是-20到19。
  • VIRT:进程使用的虚拟内存总量,单位是KB。
  • RES:进程当前使用的、驻留在物理内存中的大小,单位是KB。
  • SHR:共享内存大小,单位是KB。
  • S:进程的状态。常见的状态有R(运行中)、S(休眠)、Z(僵尸进程)等。
  • %CPU:该进程占用的CPU使用率。
  • %MEM:该进程占用的物理内存使用率。
  • TIME+:该进程启动后总共运行的时间,单位是分钟:秒。
  • COMMAND:启动进程的命令名称或命令行。

3.常见指令

  • (1) 启动top命令:

top:直接输入top,回车后即可启动。

  • (2) 设置刷新时间:

top -d 3:设置信息更新周期为3秒。

  • (3) 指定刷新次数:

top -n 2:表示更新两次后终止更新显示。

  • (4) 显示指定进程:

top -p 139:显示进程号为139的进程信息,包括CPU、内存占用率等。

  • (5) 批处理模式:

top -b:以批处理模式显示程序信息。

  • (6) 累积模式:

top -S:以累积模式显示程序信息。

  • (7) 显示完整命令行:

top -c:此参数可以显示完整的命令行而不仅仅是命令名。

  • (8) 高亮显示排序列:

在top运行界面内,可以按z键进行高亮显示的切换。

  • (9) 按CPU或内存排序:

在top运行界面内,按M键可以按内存使用排序,按T键可以按CPU使用排序。

  • (10) 显示线程信息:

top -H -p 35648:显示进程ID为35648的进程下的所有线程信息。这个命令特别在定位多线程程序问题时非常有用。

  • (11) 过滤用户:

top -u username:只显示指定用户的进程。

  • (12) 帮助和退出:

在top运行界面内,按h或?键可以查看帮助文档,按q键或Ctrl+C可以退出top命令或帮助文档

Last Updated:
Contributors: Think