百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

「linux专栏」top命令用法详解,再也不怕看不懂top了

nanshan 2025-02-19 13:14 10 浏览 0 评论

在linux系统中,我们经常使用到的一个命令就是top,它主要是用来显示系统运行中所有的进程和进程对应资源的使用等信息,所有的用户都可以使用top命令。top命令内容量丰富,可令使用者头疼的是无法全部看懂它的含义,要么就是不用使用,要么就是不太掌握使用技巧。鉴于此,特地来讲解一下top命令。

基础篇——看懂top

这里我们列举一个top案例,以此案例来教大家如何看懂top。

top - 11:11:59 up  2:19,  3 users,  load average: 0.04, 0.06, 0.05
Tasks: 237 total,   1 running, 235 sleeping,   0 stopped,   1 zombie
%Cpu(s):  0.7 us,  0.2 sy,  0.0 ni, 99.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1863252 total,    64576 free,  1399920 used,   398756 buff/cache
KiB Swap:  2097148 total,  1720572 free,   376576 used.   117632 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                              
  8816 root      20   0 3633756 249440  55012 S   0.7 13.4   2:01.40 gnome-shell                                          
  6363 root      20   0  320332   2072   1660 S   0.3  0.1   0:18.19 vmtoolsd                                             
  6924 dmdba     39  19 2561364 187944     16 S   0.3 10.1   0:20.15 dmserver                                             
  7107 root      20   0  501060 157332 118028 S   0.3  8.4   0:41.72 X                                                    
 10105 dmdba     20   0 3297352 414348   6284 S   0.3 22.2   1:08.05 java                                                 
     1 root      20   0  191424   3392   1752 S   0.0  0.2   0:09.82 systemd                                              
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 kthreadd                                             
     3 root      20   0       0      0      0 S   0.0  0.0   0:01.98 ksoftirqd/0                                          
……

第一行:top

top - 11:11:59 up  2:19,  3 users,  load average: 0.04, 0.06, 0.05
含义:
- 11:11:59——指系统的当前时间
up  2:19——指当前系统运行的时间2小时19分(未重启,连续运行时间)
3 users——当前系统有三个用户登录
load average: 0.04, 0.06, 0.05——指系统分别在1分钟、5分钟、15分钟内运行的负载情况。
——load average算法是每隔5秒检查活跃进程数,按特定算法算出,如果结果除以逻辑CPU结果高于5表名系统超负荷运转。

第二行:系统当前进程数情况

Tasks: 237 total,   1 running, 235 sleeping,   0 stopped,   1 zombie
含义:
237 total:进程数,共237个、1 running:1个运行中、235 sleeping:235个休眠进程、0 stopped:0个停止状态进程、1 zombie:1个僵尸进程。

第三行:当前CPU的运行情况

%Cpu(s):  0.7 us,  0.2 sy,  0.0 ni, 99.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
含义:
0.7 us:用户空间占用CPU的百分比
0.2 sy:内核空间占用CPU的百分比
0.0 ni:改变过优先级的进程占用CPU的百分比
99.2 id:空闲CPU百分比
0.0 wa: IO等待占用CPU的百分比
0.0 hi:硬中断(Hardware IRQ)占用CPU的百分比
0.0 si: 软中断(Software Interrupts)占用CPU的百分比
0.0 st:系统百分之多少等待得到真正的cpu资源。在正常情况下最好为0,表明得到了所有必要的cpu资源。如果这个值为50,表明cpu时有一半时间在等待。

第四行:内存状态 KiB Mem(单位k)

KiB Mem :  1863252 total,    64576 free,  1399920 used,   398756 buff/cache
含义:
1863252 total:物理内存总量1863252kb
64576 free: 空闲内存总量64576kb
1399920 used:使用中的内存总量1399920kb
398756 buff/cache: 缓存的内存量398756kb

第五行:swap交换分区 KiB Swap(单位k)

KiB Swap:  2097148 total,  1720572 free,   376576 used.   117632 avail Mem 
2097148 total:交换区总量
1720572 free:空闲交换区总量
376576 used:使用的交换区总量
117632 avail Mem :可用的交换区总量

第六行:空行

top内部交互命令使用时,在此行显示

第七行以下:各进程(任务)的状态监控

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

进阶一:top命令参数用法

对于top命令的完整语法是:top [选项],而在我们日常使用过程中都是忽略选项的,下面来看看top命令的选项都有哪些。我们可以使用top -h查看命令帮助信息。

host bin]# top -h
  procps-ng version 3.3.10
Usage:
  top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]

top命令选项:

-b      以批处理模式操作
-c      显示完整的治命令
-d      屏幕刷新间隔时间
-I       忽略失效过程
-s      保密模式
-S      累积模式
-i<时间>    设置刷新间隔时间
-u<用户名> 指定用户名
-p<进程号> 指定进程
-n<次数>   循环显示的次数
注意:请忽略多余的选项,help中实际的选项较少,是因为本文在麒麟操作系统中进行的演示。

案例:在top显示中只查看dmdba用户的进程情况,并且要求每10秒进行刷新。

命令:top - u dmdba -d 10

进阶二:top命令中的交互命令参数用法

进入top命令后,提供了一些交互命令,可以帮助我们更好的对top结果进行管理,涉及的交互命令如下:

h    显示快捷键帮助
k    终止一个进程
i     开/关忽略闲置和僵死进程
q    退出程序
r     重新安排一个进程的优先级别
S    切换到累计模式
s    更改刷新间隔时间,单位秒
f,F   从当前显示中添加或者删除项目
o,O   改变显示项目的顺序
l     切换显示平均负载和启动时间信息
m    切换显示内存信息
t     切换显示进程和CPU状态信息
c    切换显示命令名称和完整命令行
M    根据内存使用大小排序
P    根据CPU使用率进行排序 (默认排序)
T    根据时间/累计时间进行排序
w    将当前设置写入~/.toprc文件中
1    展开多核cpu显示

案例:进入top后查看多核cpu的运行情况。

进入top后,按下1键,此时看看到2个cpu都显示了各自的cpu运行情况。

更多实用技能敬请期待,收藏+关注才不会迷路哦

相关推荐

Linux 的磁盘系统,和你了解的Windows差别很大

我的C盘去哪了?一个系统,如果没有存储,那么也就不能称之为系统。存储性是一个完整系统的重要组成部分。例如AWS最开始的服务就是S3(用来存储数据的云服务),足以见得存储对于一个应用平台是多么的重要。...

一文读懂 Linux 硬盘挂载:从问题到解决方案

各位互联网大厂的后端开发伙伴们!在咱们日常工作中,操作Linux系统是常有的事儿吧。你们有没有遇到过这样的场景:新添加了一块硬盘,满心欢喜准备用来存储重要数据或者部署新的应用服务,却突然发现不知道...

硬盘分区(硬盘分区格式)

 磁盘(硬盘)分区,可以分C、D、E等分区,大家可能都会用,会根据自已的需要确定所需的空间,但分区是如何工作的呢,内容如下。Windows中有3类:MBR分区:MasterBootRecord,也...

parted命令工具分区介绍(particle命令)

linux系统磁盘分区通常可以使用fdisk和parted命令,当分区大小小于2TB的时候,两种皆可以使用,当分区大于2TB的话,就需要用parted分区。以下介绍parted命令相关使用,以sdb为...

Linux 服务器上查看磁盘类型的方法

方法1:使用lsblk命令lsblk输出说明:TYPE列显示设备类型,如disk(物理磁盘)、part(分区)、rom(只读存储)等。NAME列显示设备名称(如sda、nvme0n1)。TR...

Linux分区命令fdisk和parted使用介绍

摘要:一般情况下,Linux分区都是选择fdisk工具,要求硬盘格式为MBR格式,能支持的最大分区空间为2T。但是目前在实际生产环境中使用的磁盘空间越来越大,呈TB级别增长;而常用的fdisk这个工具...

linux 分区原理与名词解释(linux操作系统中的分区类型)

分区的意义将磁盘分成几份,每份挂在到文件系统的那个目录在linux里的文件系统Ext2:早期的格式,不支持日志功能Ext3:ext2改良版,增加了日志功能,是最基本且最常用的使用格式了Ext4:针对e...

linux 分区合并(linux合理分区)

查看虚拟机当前磁盘挂载情况fdisk-l选择磁盘fdisk/dev/sda查看磁盘分区情况p重新选择分区n选择主分区p保存w创建物理卷pvcreate/dev/sda3查看物理卷信息pvdi...

如何在 Linux 系统中永久禁用交换分区 ?

Linux操作系统中的交换分区或交换文件充当硬盘上的临时存储区域,当物理内存(RAM)满时,系统使用该存储区域。它用于交换较少使用的内存页,这样系统就不会因为运行应用程序而耗尽物理内存。随着技术的发...

Linux 如何知道硬盘已用多少空间、未用多少空间

刚出社会时,去了一家公司上班,老板为了省钱,买的服务器是低配的,硬盘大小只有40G,有一次网站突然不能访问了,排查半天才知道原来服务器的硬盘空间已用完,已无可用空间。第一步是查看硬盘的使用情况,第二步...

用Linux系统管理磁盘空间 就该这么来

要想充分有效的管理使用Linux系统中的存储空间,用户必须要做的就是双管齐下,一边扩充空间一边限制空间。不得不说的就是很多时候磁盘空间就像水资源,需节制水流。说到要如何实现限制空间就离不开使用LVM技...

Windows 11 磁盘怎么分区?(windows11磁盘怎么分区)

Windows11磁盘分区技术解析与操作指南:构建高效存储体系一、磁盘分区的技术本质与系统价值磁盘分区作为存储系统的基础架构,通过逻辑划分实现数据隔离与管理优化。Windows11采用NTF...

linux上创建多个文件分区,格式化为 ext2、ext3、ext4、XFS 文件

以下是在Linux系统上创建多个20GB文件分区并格式化为不同文件系统的分步指南:步骤1:创建基础文件(4个20GB文件)bash#创建4个20GB稀疏文件(实际占用空间随写入量增长)ddif=/...

救命的U盘低格哪家最强?(低格优盘)

周二时有位童鞋留言说U盘之前做过引导盘,现在格式化不了,用各种工具都不行,而且因为U盘厂商的关系,查不到U盘主控,无法量产恢复,特来求助。小编花了点时间特意弄坏一个U盘分区,终于试出方法了,特来分享一...

Linux 查看硬件磁盘存储大小和磁盘阵列(RAID)的组合方式

一、查看硬件磁盘存储大小查看所有磁盘信息:#lsblk该命令会列出所有磁盘(如/dev/sda、/dev/nvme0n1)及其分区和挂载点。查看磁盘总容量:fdisk-l#或parted-...

取消回复欢迎 发表评论: