Linux系统常用系统进程管理工具: ps、top、htop、dstat、glance使用介绍
我们先来简单说一下什么是进程,进程简单来说就是运行起来的程序,一个程序也可能有多个进程或者只有一个,进程也有用户自己运行发起的也有系统自身的,了解系统进程状态能让我吗知道系统在“干什么”而且“干的怎么样”。
在Linux中进程的属性有:PID:进程的ID号这个数值是唯一的,PPID:父进程和父进程的ID,UID:启动此进程的用户ID,GID:进程所属组。nice:进程执行的优先级,tty:进程有连接的终端,stat:进程的状态一般有R(运行)、S(睡眠)、Z(僵死),T(终端)、D(不可中断)、P (等待交换页)+(前台进程)l( 多线程进程)N(低优先级进程)<( 高优先级进程)s( 有子进程的)还有就是进程对系统资源的占用情况如CPU占用率,内存占用率。了解了这些我们通过上面介绍的工具来看一下在Linux中如何使用:
ps命令:显示当前的系统进程
参数:
-A 显示所有程序。
-e 此参数的效果和指定"A"参数相同。
-H 显示树状结构,表示程序间的相互关系。
-N 显示所有的程序,除了执行ps指令终端机下的程序之外。
-t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
a 显示现行终端机下的所有程序,包括其他用户的程序。
c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
e 列出程序时,显示每个程序所使用的环境变量。
s 采用程序信号的格式显示程序状况。
S 列出程序时,包括已中断的子程序资料。
u 以用户为主的格式来显示程序状况。
x 显示所有程序,不以终端机来区分。
参数可以组合使用例如:ps –aux 显示所有进程-a,以用户格式-u,不以终端机区分-x
在列表的顶部我们看到有显示格式的说明:这就是刚刚提到的进程的属性信息,其中%CPU和%MEM就是CPU和内存的使用率,VSZ是占用虚拟内存大小,command是进程启动的命令,TIME是时长。注意ps显示出来的结果并不是实时动态的。只是执行命令的那一刻进程的状态信息。
ps命令的常用组合:-aux 、-axo、-ef、-axf。
top命令:显示系统进程的信息,但不同与ps的是它能够动态显示,默认是5秒刷新一下进程的列表
top命令还把进程状态统计出来能直观的看到有某状态下有多少个进程,看图中我们可以知道当前运行在有432,个,睡眠的0个,停止的0个,僵死的0个还有内存的占用率还有我们swap的占用情况。类似于windows的任务管理器。如果我们想看某信息排名最高的也就是排序怎么办呢 这里top为我们提供了简单的内置命令,我们只需要在界面中输入即可:
M,(注意大写),按内存使用情况排序
P , 根据CPU使用百分比大小进行排序
T, 根据时间/累计时间进行排序。
d,改变刷新时间
q,退出
top也接受参数
-d #: 指定刷新时间间隔,默认为3秒;
-b: 以批次方式;
-n #: 显示多少批次
输入字母k(小写),然后再输入想要kill的PID 就可以终止这个进程
下面我们再看一个比top还要强大的工具htop
htop命令:htop是Linux系统中的一个互动的进程查看器,一个文本模式的应用程序,与Linux传统的top相比,htop更加人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。
我们在命令行中输入htop回车:
按键对应说明:
热键 |
功能按键 |
说明 |
h, ? |
F1 |
查看htop使用说明 |
S |
F2 |
htop 设定 |
/ |
F3 |
搜索进程 |
\ |
F4 |
增量进程过滤器 |
t |
F5 |
显示树形结构 |
<, > |
F6 |
选择排序方式 |
[ |
F7 |
可减少nice值,这样就可以提高对应进程的优先级 |
] |
F8 |
可增加nice值,这样就可以降低对应进程的优先级 |
k |
F9 |
可对进程传递信号 |
q |
F10 |
结束htop |
我们可以用个鼠标直接点击操作或者按上面提示的按键进行设置。按F1查看帮助里面的设置在这里我们可以看到更多的功能按键和功能的说明:
U 取消标记所有进程
s 选择某一进程,按s:用strace追踪进程的系统调用
l
显示进程打开的文件: 如果安装了lsof,按此键可以显示进程所打开的文件
I
倒转排序顺序,如果排序是正序的,则反转成倒序的,反之亦然
a (在有多处理器的机器上)
设置 CPU
affinity: 标记一个进程允许使用哪些CPU
u
显示特定用户进程
M 按Memory使用排序
P 按CPU 使用排序
T 按Time+使用排序
F 跟踪进程: 如果排序顺序引起选定的进程在列表上到处移动,让选定条跟随该进程。这对监视一个进程非常有用:通过这种方式,你可以让一个进程在屏幕上一直可见。使用方向键会停止该功能。
K 显示/隐藏内核线程
H 显示/隐藏用户线程
Ctrl-L
刷新
Numbers PID 查找: 输入PID,光标将移动到相应的进程上
dstat命令:
默认情况下会动态显示CPU,disk,net,page,system负载情况,如下所示,当然会有颜色不同标示的,还是比较直观的,执行 dstat 命令的时候,默认他会 收集-cpu-、-disk-、-net-、-paging-、-system-的数据,一秒钟收集一次并显示
常用参数:
-c:显示CPU系统占用,用户占用,空闲,等待,中断,软件中断等信息
-C: 当有多个CPU时候,此参数可按需分别显示cpu状态
-C 0,1: 显示cpu0和cpu1的信息
-d :显示磁盘读写数据大小
-D hda and total
-n :net 显示网络状态
-N: net 有多块网卡时,指定要显示的网卡
-l:显示系统负载情况
-m :memory 显示内存使用情况
-g :page 显示页面使用情况
-p :process 显示进程状态
-s: swap 显示交换分区使用情况
-S: 类似D/N
-r: I/O请求情况
-y: system status
--ipc 显示ipc消息队列,信号等信息
--socket 用来显示tcp udp端口状态
-a all 此为默认选项 等同于 –cdngy
参数可以组合使用.
未完留空....