top命令常用参数
Linux top命令的常用参数及使用方法
Linux top命令是一个非常实用的工具,它可以实时地显示系统中各个进程的资源占用情况,包括CPU、内存、交换区、磁盘I/O 等。通过top命令,我们可以了解系统的运行状态,发现性能瓶颈,优化系统配置,排查故障等。本文将介绍top命令的常用参数及使用方法,帮助大家更好地掌握这个强大的工具。
2021新年祝福语大全 简短一、top命令的基本格式
top命令的基本格式如下:
top [options]
其中,options是可选的参数,可以指定top命令的一些行为和显示方式。如果不指定任何参数,top命令将以默认的方式运行,并显示所有进程的信息。
二、top命令的常用参数
top命令有很多参数,可以在命令行中指定,也可以在运行时通过交互式输入来改变。下面介绍一些常用的参数及其作用。2.1 -d 参数:指定刷新时间间隔
-
d 参数可以指定top命令刷新显示页面的时间间隔,单位是秒。默认情况下,top命令每5秒刷新一次页面。如果想要改变这个时间间隔,可以在命令行中使用-d 参数,例如:
top -d 2# 每2秒刷新一次页面
也可以在运行时通过输入d来改变刷新时间间隔,例如:
d 2# 每2秒刷新一次页面
2.2 -n 参数:指定运行次数
-n 参数可以指定top命令运行的次数后自动退出。默认情况下,top命令会一直运行,直到用户按q或者Ctrl+C来退出。如果想要让top命令只运行一定次数后自动退出,可以在命令行中使用-n 参数,例如:
top -n 10# 运行10次后自动退出
注意,这里的次数是指刷新页面的次数,而不是显示进程的个数。
2.3 -b 参数:以批处理模式运行
-b 参数可以让top命令以批处理模式运行。这意味着top命令不会显示交互式界面,而是直接输出结果
到标准输出或者文件中。这对于需要记录或者分析系统性能数据的场景很有用。例如:
top -b > top.log # 将结果输出到文件中
通常情况下,-b 参数会和-n 参数配合使用,以限制输出结果的数量。
2.4 -c 参数:显示完整的命令行
-c 参数可以让top命令显示完整的进程命令行。默认情况下,top命令只显示进程名(COMMAND列),而不显示进程启动时使用的参数。如果想要查看完整的进程命令行,可以在命令行中使用-c 参数,例如:
top -c # 显示完整的进程命令行
也可以在运行时通过输入c来切换显示方式。
2.5 -p 参数:指定要监控的进程
-p 参数可以让top命令只监控指定的进程。默认情况下,top命令会监控所有进程,并按照CPU占用率从高到低排序。如果只想要监控某些特定的进程,可以在命令行中使用-p 参数,并指定要监控的进程ID(PID),例如:
top -p 1234# 只监控PID为1234的进程
如果要监控多个进程,可以使用多个-p 参数,例如:
top -p 1234 -p 5678# 只监控PID为1234和5678的进程
也可以在运行时通过输入o来指定要监控的进程,例如:
o PID=1234# 只监控PID为1234的进程
三、top命令的输出结果解析
top命令的输出结果可以分为两部分:系统整体的统计信息和各个进程的信息。下面分别对这两部分进行解析。
3.1 系统整体的统计信息
系统整体的统计信息占据了输出结果的前五行,包括了系统时间、运行时间、用户数、负载、进程数、CPU利用率、内存使用情况等信息。下面逐行进行说明。
3.1.1 第一行:系统时间、运行时间、用户数、负载
第一行的格式如下:
top - HH:MM:SS up X days, Y:Z, N users, load average: a, b, c
其中,各个字段的含义如下:
HH:MM:SS:当前系统时间,24小时制。
up X days, Y:Z:系统运行时间,格式为天数:小时:分钟。
N users:当前登录用户数。
load average: a, b, c:系统负载,即任务队列的平均长度。三个数值分别为1分钟、5分钟、15分钟前到现在的平均值。
系统负载是反映系统性能的一个重要指标,它表示在一段时间内,CPU正在处理以及等待CPU处理的进程数之和。一般来说,系统负载不应该超过CPU核数,否则可能会导致CPU过载。如果系统负载过高,需要进一步分析是由于CPU密集型的计算还是由于I/O阻塞造成的。
3.1.2 第二行:进程数
第二行的格式如下:
Tasks: M total, N running, O sleeping, P stopped, Q zombie
其中,各个字段的含义如下:
Tasks: M total:当前系统中总共有M个进程。
N running:当前有N个进程处于运行状态。
O sleeping:当前有O个进程处于睡眠状态。
P stopped:当前有P个进程处于停止状态。
Q zombie:当前有Q个进程处于僵尸状态。
这里需要注意的是,运行状态和睡眠状态都是活跃的进程,只是运行状态表示正在使用CPU,而睡眠状态表示正在等待某些事件发生(比如I/O完成)。停止状态和僵尸状态都是非活跃的进程,只是停止状态表示可以被唤醒,而僵尸状态表示已经结束但还没有被父进程回收。
3.1.3 第三行:CPU利用率
第三行的格式如下:
%Cpu (s): U us, V sy, W ni, X id, Y wa, Z hi, A si, B st
其中,各个字段的含义如下:
%Cpu (s):CPU利用率统计信息。
U us:用户空间占用CPU百分比。用户空间指运行在用户态的进程占用的CPU时间百分比,比如shell程序、编译器、应用程序等。
V sy:内核空间占用CPU百分比。内核空间指运行在内核态的进程占用的CPU时间百分比,比如系统调用、中断处理等。
W ni:改变过优先级的进程占用CPU百分比。这里指通过nice命令调整过优先级的用户态进程占用的CPU时间百分比。
X id:空闲CPU百分比。这里指没有被任何进程使用的CPU时间百分比,比如系统空闲时的CPU时间百分比。
Y wa:等待输入输出的CPU时间百分比。这里指由于等待I/O操作而阻塞的CPU时间百分比,比如读写磁盘、网络等。
Z hi:硬件中断占用CPU百分比。这里指由于硬件设备产生的中断而占用的CPU时间百分比,比如键盘、鼠标、网卡等。
A si:软件中断占用CPU百分比。这里指由于软件事件产生的中断而占用的CPU时间百分比,比如定时器、信号等。
B st:虚拟机占用CPU百分比。这里指由于运行在虚拟机中的客户机操作系统而占用的CPU时间百分比。
CPU利用率是反映系统性能的另一个重要指标,它表示CPU的工作效率。一般来说,CPU利用率越高,表示系统越忙,越接近性能极限。如果CPU利用率过高,需要进一步分析是由于哪些进程造成的,以及是否可以优化或者调整这些进程的运行方式。
3.1.4 第四行:内存使用情况
第四行的格式如下:
KiB Mem : T total, U used, V free, W buff/cache
其中,各个字段的含义如下:
KiB Mem:内存使用情况统计信息,单位为KB。
T total:系统总共有T KB的物理内存。
U used:系统已经使用了U KB的物理内存。
V free:系统还有V KB的物理内存未使用。
W buff/cache:系统已经使用了W KB的物理内存作为缓冲区或者缓存。
内存使用情况是反映系统性能的第三个重要指标,它表示系统对物理内存的需求和利用程度。一般来说,内存使用情况越高,表示系统越需要更多的物理内存,越容易出现内存不足或者交换区过载的问题。如果内存使用情况过高,需要进一步分析是由于哪些进程造成的,以及是否可以优化或者调整这些进程的内存占用。
3.1.5 第五行:交换区使用情况
第五行的格式如下:
KiB Swap: X total, Y used, Z free, A avail Mem
其中,各个字段的含义如下:
憧憬的拼音KiB Swap:交换区使用情况统计信息,单位为KB。
X total:系统总共有X KB的交换区。
Y used:系统已经使用了Y KB的交换区。
Z free:系统还有Z KB的交换区未使用。
A avail Mem:系统可用内存。这里指除了已经使用和缓冲/缓存之外,还可以被进程使用的物理内存。
交换区是一种扩展物理内存的技术,它可以将一部分磁盘空间作为虚拟内存来使用。当物理内存不足时,系统会将一些不常用或者低优先级的进程从物理内存中移出,放到交换区中,从而释放出物理内存给其他进程使用。交换区使用情况是反映系统性能的第四个重要指标,它表示系统对虚拟内存的需求和利用程度。一般来说,交换区使用情况越高,表示系统越需要更多的虚
拟内存,越容易出现磁盘I/O过高或者进程响应缓慢的问题。如果交换区使用情况过高,需要进一步分析是由于哪些进程造成的,以及是否可以优化或者调整这些进程的虚拟内存占用。
3.2 各个进程的信息
各个进程的信息占据了输出结果的后面部分,每一行表示一个进程的相关信息,包括了进程ID、用户、优先级、CPU占用率、内存占用率、虚拟内存大小、状态、启动时间、运行时间、命令名等信息。下面逐列进行说明。
3.2.1 PID列:进程ID
PID列表示进程的唯一标识符,即进程ID。每个进程在创建时都会被分配一个唯一的正整数作为其ID,用于区分不同的进程。进程ID是操作系统管理和控制进程的重要依据,也是用户和其他进程与进程通信和交互的重要手段。
3.2.2 USER列:用户
USER列表示进程的所有者,即运行该进程的用户。每个进程都会有一个用户ID和一个组ID,用于确定该进程的权限和资源限制。用户可以通过su或者sudo命令来切换用户或者提升权限,从而运行其他用户或者超级用户(root)的进程。
3.2.3 PR列:优先级
PR列表示进程的优先级,即决定该进程获取CPU时间的重要性。每个进程都会有一个静态优先级和一个动态优先级,用于确定该进程在多个可运行状态的进程中的调度顺序。静态优先级是由用户或者系统管理员指定的,可以通过nice或者renice命令来调整。动态优先级是由内核根据进程的行为和资源需求动态计算的,可以通过sched_get_priority_min和sched_get_priority_max 函数来获取。一般来说,优先级越高,表示该进程越重要,越容易获得CPU时间。
3.2.4 NI列:nice值
NI列表示进程的nice值,即影响静态优先级的因素。nice值是一个介于-20到19之间的整数,表示该进程对CPU时间的需求和友好度。nice值越低,表示该进程对CPU时间的需求越高,静态优先级越高;nice值越高,表示该进程对CPU时间的需求越低,静态优先级越低。nice值可以通过nice或者renice命令来调整。
3.2.5 VIRT列:虚拟内存大小
VIRT列表示进程使用的虚拟内存大小,单位为KB。虚拟内存是一种扩展物理内存的技术,它可以让每个进程都有一个独立的地址空间,并通过内存映射和交换机制来实现对物理内存和磁盘空间的动态管理。虚拟内存大小包括了以下几部分:
代码段:存放程序的指令。
数据段:存放程序的全局变量和静态变量。
堆:存放程序动态分配的内存。
栈:存放程序的局部变量和函数调用信息。
共享库:存放程序使用的动态链接库。
内核空间:存放程序使用的内核相关数据结构。
3.2.6 RES列:常驻内存大小
RES列表示进程常驻在物理内存中的内存大小,单位为KB。常驻内存是指进程实际使用的物理内存,它是虚拟内存的一个子集。常驻内存大小包括了以下几部分:
代码段:存放程序的指令。
数据段:存放程序的全局变量和静态变量。
堆:存放程序动态分配的内存。
栈:存放程序的局部变量和函数调用信息。
常驻内存不包括以下几部分:
共享库:存放程序使用的动态链接库。这部分内存可以被多个进程共享,因此不计入每个进程的常驻内存。
交换区:存放被移出物理内存的进程数据。这部分内存不在物理内存中,因此不计入每个进程的常驻内存。
内核空间:存放程序使用的内核相关数据结构。这部分内存属于内核,因此不计入每个进程的常驻内存。
3.2.7 SHR列:共享内存大小
SHR列表示进程使用的共享内存大小,单位为KB。共享内存是一种进程间通信的方式,它可以让多个进程访问同一块物理内存,从而实现数据的共享和传递。共享内存大小包括了以下几部分:
共享库:存放程序使用的动态链接库。这部分内存可以被多个进程共享,因此计入每个进程的共享内存。
共享内存段:通过shmget或者mmap等系统调用创建的共享内存段。这部分内存可以被多个进程映射到自己的地址空间中,因此计入每个进程的共享内存。
3.2.8 %CPU列:CPU占用率
%CPU列表示进程占用CPU时间的百分比。这里的CPU时间是指自上次刷新页面以来,该进程占用CPU的时间与总时间的比值。如果系统有多个CPU或者CPU核心,那么这个百分比可能会超过100%。例如,如果一个进程在双核CPU系统中占用了两个核心各50%的时间,那么它的%CPU值就是100%。
3.2.9 %MEM列:内存占用率
%MEM列表示进程占用物理内存的百分比。这里的物理内存是指常驻内存,即实际使用的物理内存。这个百分比是该进程常驻内存与系统总物理内存的比值。
重庆武隆旅游攻略3.2.10 TIME+列:运行时间
TIME+列表示进程运行的总时间,格式为小时:分钟:秒。这里的运行时间是指该进程实际占用CPU的时间,并不包括等待或者阻塞的时间。
纸短情长歌词好老公的标准3.2.11 COMMAND列:命令名
COMMAND列表示进程的命令名,即启动该进程时使用的命令。默认情况下,只显示命令本身,不显示参数。如果想要显示完整的命令行,可以使用-c 参数或者运行时输入c来切换显示方式。
四、top命令的交互式操作
top命令除了可以在命令行中指定参数外,还可以在运行时通过输入一些字符来进行交互式操作,从而改变top命令的行为和显示方式。下面介绍一些常用的交互式操作及其作用。
4.1 h或者?:显示帮助信息
h或者?可以显示top命令支持的所有交互式操作及其说明,按q或者Ctrl+C可以退出帮助信息。
4.2 q或者Ctrl+C:退出top命令
q或者Ctrl+C可以退出top命令,返回到命令行界面。
4.3 k:杀死进程
k可以杀死一个进程,即向该进程发送一个信号,让其结束运行。输入k后,会提示输入要杀死的进程ID(PID)和要发送的信号(signal),按回车键确认。如果不输入信号,默认发送SIGTERM(15)
信号,表示正常终止进程。如果进程不响应SIGTERM信号,可以发送SIGKILL(9)信号,表示强制终止进程。注意,杀死进程可能会导致数据丢失或者系统不稳定,因此需要谨慎操作。
4.4 r:调整优先级
r可以调整一个进程的优先级,即改变该进程的nice值,从而影响其获取CPU时间的重要性。输入r后,会提示输入要调整的进程ID(PID)和要设置的nice值(NI),按回车键确认。注意,只有超级用户(root)才能降低进程的nice值,即提高进程的优先级。
4.5 P:按照CPU占用率排序
P可以让top命令按照CPU占用率从高到低排序显示进程信息。这是默认的排序方式,可以帮助我们出占用CPU最多的进程。
4.6 M:按照内存占用率排序
中国交通银行信用卡M可以让top命令按照内存占用率从高到低排序显示进程信息。这可以帮助我们出占用内存最多的进程。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。