查看原文
其他

一个强大的Linux命令:很少有人完全搞懂

李逸皓 运维book思议 2024-04-22

先放个链接,万一有人关注呢

优质文章推荐

↓ ↓ ↓ ↓ ↓

你不知道的是:一款新生代Linux系统正在崛起

国产Linux:OpenEuler能否完美替代CentOS系统?

CentOS与Ubuntu到底怎么选择?

或许这个系统真的可以成为国产版的CentOS

Linux系统服务巡检脚本



概述

top命令是Linux系统中常用的性能分析工具,它可以实时地查看系统的运行情况,例如内存、CPU、负载以及各个进程的资源占用情况。

作用:

查看系统的整体性能,包括CPU使用率、内存使用情况、负载等。

显示系统中每个进程的具体信息,包括进程ID、进程所有者、优先级、虚拟内存使用情况、物理内存使用情况等。

排序进程,可以按照CPU使用率、内存使用资源、进程ID等进行排序。

调整进程优先级,可以给某个进程重新定制一个nice值(即优先级)。

终止进程,可以给某一个进程一个信号,用来杀死进程。

设置top命令的参数,例如指定每两次屏幕信息刷新之间的时间间隔、监控特定进程的状态等。

使用场景:

监控系统整体运行状况,例如服务器负载、内存和CPU使用情况等。

查看系统中正在运行的进程信息,例如进程ID、进程名称、进程状态等。

监控某个特定进程的运行状态,例如查看某个服务或应用程序的运行情况。

调整进程优先级或终止进程,例如优化系统性能或解决某个进程引起的系统问题。

在多个用户或用户组之间监视活动和系统资源的使用情况,例如管理员可以通过top命令查看各个用户的进程使用情况,并进行相应的管理操作。

顶部信息

下面是一个标准的top页面信息:

top - 10:27:32 up 1 day, 3:41, 1 user, load average: 0.20, 0.16, 0.10 Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.2 us, 0.4 sy, 0.0 ni, 99.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.6 st Mem: 3894304k total, 259668k used, 3634636k free, 278844k buffers Swap: 1999828k total, 0k used, 1999828k free, 573756k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 1720m 1.3g 1.3g S 52.4 3.7 79:16.77 init 2 root 20 0 0 404 404 S 0.7 0.1 0:01.06 ksoftirqd/1 3 root RT 0 0 0 0 S 0.3 0.0 0:00.07 migration/1

下面逐个讲解每个部分:

第一行:显示系统的当前时间、已经运行了多久、有多少用户登录以及系统的平均负载。

“top - 10:27:32”:这是系统的当前时间,显示了小时、分钟和秒。

“up 1 day, 3:41”:这是系统已经运行了多久的时间,其中“1 day”表示系统已经运行了一天,而“3:41”表示系统已经运行了3小时41分钟。

“1 user”表示当前有1个用户登录到系统中。

“load average: 0.20, 0.16, 0.10”:这是系统的平均负载,它显示了系统在过去的1分钟、5分钟和15分钟内的平均负载。负载是系统在处理进程时的繁忙程度,这些值越低,表示系统的负载越轻。

第二行:显示系统中总共的进程数、正在运行的进程数、休眠的进程数、停止的进程数和僵尸进程数。

“Tasks: 123 total”:表示系统中总共的进程数为123个。

“1 running”:表示当前正在运行的进程数为1个。

“122 sleeping”:表示当前休眠的进程数为122个。

“0 stopped”:表示当前停止的进程数为0个。

“0 zombie”:表示当前僵尸进程数为0个。

第三行:显示CPU的使用率,包括用户空间、系统空间、nice值、空闲、等待、硬件中断、软件中断和 steal 的百分比。

“%Cpu(s)”表示CPU的使用率。

“user”表示用户空间使用的CPU百分比。

“system”表示系统空间使用的CPU百分比。

“nice”表示nice值指定的优先级调整后的进程使用的CPU百分比。

“idle”表示空闲的CPU时间百分比。

“wait”表示等待I/O操作的CPU时间百分比。

“irq”表示处理硬件中断的CPU时间百分比。

“softirq”表示处理软件中断的CPU时间百分比。

“steal”表示被其他(通常是虚拟机)占用的CPU时间百分比。

第四行:显示内存的使用情况,包括总内存、已使用的内存、空闲内存和缓冲区内存。

“Mem”表示内存的使用情况。

“total”表示总内存大小,以千字节(KB)为单位。

“used”表示已使用的内存大小,以千字节(KB)为单位。

“free”表示空闲的内存大小,以千字节(KB)为单位。

“buffers”表示用于存储文件系统元数据的缓冲区内存的大小,以千字节(KB)为单位。

第五行:显示交换空间的使用情况,包括总交换空间、已使用的交换空间和空闲的交换空间。

“Swap”表示交换空间的使用情况。

“total”表示总交换空间大小,以千字节(KB)为单位。

“used”表示已使用的交换空间大小,以千字节(KB)为单位。通常情况下,这个值为0,因为很少有进程会使用交换空间。

“free”表示空闲的交换空间大小,以千字节(KB)为单位。

“cached”表示被缓存的内存大小,包括页面缓存和目录缓存等。
列表字段

第六行以下:这部分显示了每个进程的详细信息。每行显示了一个进程的如下信息:

PID:进程ID。

USER:进程所有者。

PR:进程优先级。

NI:nice值。

VIRT:进程使用的虚拟内存大小。

RES:进程使用的物理内存大小。

SHR:进程使用的共享内存大小。

S:进程状态。

%CPU:进程使用的CPU百分比。

%MEM:进程使用的内存百分比。

TIME+:进程使用的CPU时间总计。

COMMAND:进程名称或命令。

这些信息可以帮助用户了解系统中每个进程的状态和资源使用情况。通过查看这些信息,可以判断哪些进程正在使用大量的资源,或者是否存在异常进程。

常规操作

在top页面下,除了基本的显示和查看进程信息外,还有一些常规操作可以帮助您更好地管理和监控系统中的进程。

1.排序进程:

默认情况下,进程按照CPU使用率进行排序,可以使用“P”键切换按照CPU使用资源降序排序显示。

按下“M”键可以按照内存使用资源降序排序显示。

按下“N”键可以按照PID降序排序显示。

按下“T”键可以按照进程使用的时间累计排序显示。

2.改变列的显示内容:

按“f”键可以选择显示的内容,例如按“f”键之后会显示列的列表,按“a-z”即可显示或隐藏对应的列。

按“o”键可以改变列的显示顺序。

按小写的“a-z”可以将相应的列向右移动,而大写的“A-Z”可以将相应的列向左移动。最后按回车键确定。

3.调整进程优先级:

按“r”键可以给某个pid重新定制一个nice值(即优先级)。

4.终止进程:

按“k”键可以给某一个pid一个信号,用来杀死进程。例如输入PID再按“回车”即可终止该进程。

5.退出top:

除了使用“q”键退出top外,还可以使用“ctrl+c”组合键退出。

6.设置top命令的参数:

可以使用“-d”参数指定每两次屏幕信息刷新之间的时间间隔(秒数),例如“top -d 5”表示每5秒刷新一次屏幕信息。

可以使用“-p”参数指定监控进程ID来仅仅监控某个进程的状态。例如“top -p 12345”表示只监控PID为12345的进程。

可以使用“-n”参数与“-p”配合使用,表示需要进行几次top命令的输出结果。例如“top -n 3 -p 12345”表示监控PID为12345的进程,并输出3次结果。

7.其他交互式命令:

按“?”或者“h”键可以显示在top当中可以输入的命令。

按大写的“F”或“O”键,然后按“a-z”可以将进程按照相应的列进行排序。而大写的“R”键可以将当前的排序倒转。例如按大写的“O”键后按“a-z”可以将进程按照CPU使用率进行降序排序显示。

常用参数

top命令是一个非常实用的Linux系统监控工具,它能够实时地显示系统中各个进程的资源占用情况,使用以下常用参数可以更好地了解和掌握系统运行的状况。

1.显示特定进程信息:

使用“-p [进程ID]”参数后跟进程ID可以查看特定进程的信息。

2.不同显示方式:

“-b”以批处理模式操作:该参数用于在top命令运行时禁止交互命令所带来的潜在危险,使得top命令以批处理模式运行。

“-c”显示完整的治命令:该参数用于在top命令输出中显示完整的治疗命令,方便用户了解进程的详细信息。

“-d [时间间隔]”:该参数用于指定每两次屏幕信息刷新之间的时间间隔,例如“top -d 5”表示每5秒刷新一次屏幕信息。

“-I”忽略失效过程:该参数用于忽略失效过程的进程信息,使得top命令输出更加清晰。

“-s”保密模式:该参数用于在top命令运行时去除交互命令所带来的潜在危险,使得top命令以保密模式运行。

“-S”累积模式:该参数用于在top命令运行时显示进程使用的CPU和内存的累积值。

3.其他参数:

“-i [时间]”设置间隔时间:该参数用于设置间隔时间,例如“top -i 10”表示每10秒输出一次进程信息。

“-u [用户名]”指定用户名:该参数用于查看特定用户的进程信息。

“-n [次数]”循环显示的次数:该参数用于设置top命令循环显示的次数,例如“top -n 5”表示输出5次进程信息后退出。


来不及解释了,快上车!(进群看公告,已加群的小伙伴无需重复添加)

欢迎新的小伙伴加入!在这里,我们鼓励大家积极参与群内讨论和交流,分享自己的见解和经验,一起学习和成长。同时,也欢迎大家提出问题和建议,让我们不断改进和完善这个平台。

              ↓↓↓ 点个在看,无需赞赏!

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存