Linux下监控类命令
- top命令
- top信息解释
- top参数使用
- ps命令
- ps信息解释
- ps参数使用
- du和df
- free命令
top命令
top命令,是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,一般系统资源导致的崩溃问题可以使用top实时监控各进程,输出到日志文件分析某个进程是否假性释放… …
top信息解释
在这里引用之前文章的top命令截图 linux系统如何查看内存:文中第四项top命令。下面对图中所示信息逐行说明。
第一行:任务队列信息,同uptime命令的执行结果
16:29:14: 当前系统时间
up 4min: 系统已经运行了4分钟
3 user: 当前有3个用户登录系统
load average: 0.01, 0.06, 0.03: 1分钟,5分钟,15分钟的平均负载情况
第二行:Tasks任务(进程)信息
共有128个进程,处于运行状态的有2个,81个在休眠,stoped(停止)状态0个,zombie(僵尸)状态有1个
第三行:CPU状态信息
us: 用户空间占用CPU的百分比
sy: 内核空间占用cpu的百分比
ni: 改变优先级的进程占用CPU的百分比
id: 空闲CPU百分比
wa: I/O等待只用CPU的百分比
hi: 硬中断(Hardware IRQ)占用CPU的百分比
si: 软中断(Software Interrupts)占用CPU的百分比
st: 虚拟机占用CPU的百分比
第四行:内存状态
total: 物理内存总量
used: 使用中的内存总量
free: 空闲内存总量
buffers: 缓冲的内存量
第五行:swap交换分区信息
total: 交换分区总量
used: 使用的交换区总量
free: 空闲交换区总量
cached: 缓存的内存量
第六行:空行
第七行:给出的各进程(任务)的状态监控
PID(Process ID):进程标示号。
USER:进程所有者的用户名。
PR:进程的优先级别。
NI:进程的优先级别数值。
VIRT:进程占用的虚拟内存值。
RES:进程占用的物理内存值。
SHR:进程使用的共享内存值。
S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。
%CPU:该进程占用的CPU使用率。
%MEM:该进程占用的物理内存和总内存的百分比。
TIME+:该进程启动后占用的总的CPU时间。
Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。
top参数使用
top [-d number] | top [-bnp]
-a # 将进程按照使用内存排序
-b # 批处理的模式显示进程信息,输出结果可以传递给其他程序或写入到文件中,配合-n使用,一直打到-n设置的阈值
-c # 显示进程的整个命令路径,而不是只显示命令名称
-d # number代表秒数,表示top命令显示的页面更新一次的间隔。默认是5秒。
-H # 指定这个可以显示每个线程的情况,否则就是进程的总的状态
-i # 不显示闲置或者僵死的进程状态
-n # top输出信息更新的次数,完成后将退出top命令
-p # 显示指定的进程信息
在top命令显示的页面还可以输入以下按键执行相应的功能(注意大小写区分的):
?(h):显示在top当中可以输入的命令
P:以CPU的使用资源排序显示
M:以内存的使用资源排序显示
N:以pid排序显示
T:由进程使用的时间累计排序显示
k:给某一个pid一个信号。可以用来杀死进程
r:给某个pid重新定制一个nice值(即优先级)
q:退出top(用ctrl+c也可以退出top)
只是为了查看资源信息,一般的写法如:
!!!
top:显示进程信息
top -n 1:显示1秒后终止更新显示
top -d 3:表示更新时间为3秒
top -p PID:显示进程号为PID的进程信息
top -u userName:显示用户userName的进程信息
top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。但是,它的缺点是会消耗很多系统资源。
使用top命令可以监视指定用户,缺省情况是监视所有用户的进程。如果想查看指定用户的情况,在终端中按“U”键,然后输入用户名,系统就会切换为指定用户的进程运行界面。
ps命令
ps命令是最基本的进程查看命令,格式为:ps [options]
,通过执行man ps命令进行查看文档说明,使用ps可以看到有哪些进程正在运行,并且可以看到进程的运行状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。
注意的是:ps是显示瞬间进程的状态,并不动态连续,如果想对进程进行实时监控应该用top命令。
ps信息解释
以ps -aux为例(图片引自YoungerChina)
# USER:表示该进程属于哪个用户
# PID:进程id
# %CPU:该进程占用CPU资源的百分比
# %MEM:该进程占用内存的百分比
# VSZ:该进程使用掉的虚拟内存量 (Kbytes)
# RSS:该进程占用的固定的内存量 (Kbytes)
# TTY:该进程是在那个终端机上面运行,若与终端机无关,则显示?,另外,tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
# STAT:代表该进程目前的状态,主要的状态有:
R:该进程正在运行
S:该进程正在休眠,但可被某些信号(signal)唤醒
D:无法中断的休眠状态(通常为IO进程)
T:该进程已经停止
Z:僵死状态,该进程应该已经终止,但是其父进程却无法正常的终止它,造成zombie(疆尸)程序的状态
W:等待状态,等待内存的分配
<:高优先级的进程
# N:低优先级的进程
# START:该进程被触发启动的时间
# COMMAND:该进程的实际指令
ps参数使用
ps的参数组合种类非常多,但是常用的也就是几个,下面列出:
- -a:显示当前终端下的所有进程信息,包括其他用户的进程信息。与x选项结合使用可以显示系统中所有进程的信息。
- -x:显示当前用户在所有终端下的进程信息。
- -u: 显示当前用户的进程状态
- -e:显示系统内的所有进程信息。与-A选项功能相同。
- -f:使用完整的(full)格式显示进程信息。还会打印命令参数,当与-L一起使用时,将添加NLWP(线程数)和LWP(线程ID)列。
- -f:以ASCII字符显示进程层次树结构。
- -j:BSD风格控制格式输出进程信息。
- -L:显示线程信息,包含LWP(线程ID)列和NLWP(线程数)。
常用组合:
# ps -aux:查看系统所有进程
//ps -aux默认是无序的,可以通过--sort命令来排序
# ps -aux --sort -pcpu|less -N #按照cpu占用来排序
# ps -aux --sort -pmem|less -N #按照内存占用来排序
# ps -aux | grep debug #查看指定进程(此为查看名为debug的进程)
# ps -l #查看当前用户的进程
# ps -axjf #以进程树结构显示过程
# ps -efL #获取有关线程的信息
常见使用场景一:找出电脑中的某一个进程,配合kill命令,结束该进程
①使用ps和grep命令,查找出对应程序的进程号,比如查看找tail的进程号:ps -ef |grep “tail”
②找出进程号,使用kill -9 进程号命令结束该进程
常见使用场景二:用于确定某一个程序是否已经启用:ps -ef |grep “tail”
du和df
du显示每个文件和目录的磁盘使用空间,使用格式:du [选项] [文件]
-a或-all 列出所you的文件与目录容量,因为默认仅统计目录下面的文件量
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes 以KB(1024bytes)为单位输出。
-m或--megabytes 以MB为单位输出。
-s或--summarize 仅显示总量,只列出最后加总的值,而不列出每个个别的目录占用容量。
-S或--separate-dirs 不包括子目录下的总计,与 -s 有点差别
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
-D或--dereference-args 显示指定符号链接的源文件大小。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或--count-links 重复计算硬件链接的文件。
----------------------------------------------------------------------------------
df 显示磁盘分区上可以使用的磁盘空间,使用格式:df [选项] [文件]
显示指定磁盘文件的可用空间。如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以 1KB为单位进行显示,除非环境变量 POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示。
-a 列出所有的文件系统,包括系统特有的 /proc 等文件系统
-k 以 KBytes 的容量显示各文件系统。命令 df -k 同命令 df
-m 以 MBytes 的容量显示各文件系统
-h 以人们较易阅读的 GBytes、MBytes、KBytes 等格式自行显示
-H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
-i 不用磁盘容量,而以 inode 的数量来显示
-l 只显示本地文件系统。命令 df -l 同命令 df
-T 连同该磁盘分区的文件系统名称(例如 xfs)也列出
--block-size=<区块大小> 指定区块大小
-t <文件系统类型> 只显示选定文件系统的磁盘信息
-x <文件系统类型> 不显示选定文件系统的磁盘信息
du和df区别
du 是通过搜索文件来计算每个文件的大小然后累加,du所计算的文件是当前存在为被删除的。而df 通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件,df计算的是通过文件系统获取到的文件的大小。严格意义上说df比du计算的更为精确,当文件系统也确定删除了该文件后,这时候du与df就一致了。
以上引JMW1407
free命令
free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等,使用格式为:free [-bkmhotV][-s <间隔秒数>]
命令参数:
-b 以Byte为单位显示内存使用情况。
-k 以KB为单位显示内存使用情况。
-m 以MB为单位显示内存使用情况。
-h 以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:
B = bytes
K = kilos
M = megas
G = gigas
T = teras
-o 不显示缓冲区调节列。
-s<间隔秒数> 持续观察内存使用状况。
-t 显示内存总和列。
-V 显示版本信息。
参数含义:
Mem行(单位均为M):
total 系统总的可用物理内存大小
used 已被使用的物理内存大小
free 还有多少物理内存可用
shared 被共享使用的物理内存大小
buff/cache 被 buffer 和 cache 使用的物理内存大小
available 还可以被 应用程序 使用的物理内存大小
(-/+ buffers/cache)行:
(-buffers/cache): 真正使用的内存数,指的是第一部分的 used - buffers - cached
(+buffers/cache): 可用的内存数,指的是第一部分的 free + buffers + cached
Swap行指交换分区
该文为整合,有误请指正!
参考列表:
https://blog.csdn.net/daboluo521/article/details/79507194
https://blog.csdn.net/JMW1407/article/details/107902100