Linux下监控类命令

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: 缓存的内存量

第六行:空行

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

linux系统命令topfree的使用及参数详解_linux命令详解手册chm_linux命令详解之df命令

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”键,然后输入用户名linux系统命令topfree的使用及参数详解,系统就会切换为指定用户的进程运行界面。

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:该进程的实际指令

linux命令详解之df命令_linux命令详解手册chm_linux系统命令topfree的使用及参数详解

ps参数使用

ps的参数组合种类非常多linux伊甸园论坛,但是常用的也就是几个,下面列出:

常用组合:

# 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                          #获取有关线程的信息

常见使用场景一:找出电脑中的某一个进程linux系统命令topfree的使用及参数详解,配合kill命令,结束该进程

①使用ps和grep命令linux怎么读,查找出对应程序的进程号,比如查看找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行指交换分区		

该文为整合,有误请指正!

参考列表:

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复