要对进程进行监测和控 制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。

ps为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用 top 工具。

 

PS命令使用:

 

1、ps命令:进程状态查看命令

/proc/:内核中的状态信息;

1)、内核参数:

调用参数:设置其值从而调整内核运行特性的参数;/proc/sys/

状态变量:其用于输出内核中统计信息或状态信息,仅用于查看

 

2)、参数:模拟成文件系统类型;

 

3)、进程:

/proc/#:

#:PID  进程号   PID TTY          TIME CMD

 3004 pts/0    00:00:00 bash

  3783 pts/0   00:00:00 ps

ps- report a snapshot of the current processes.

 

2、语法及参数:

1)、语法格式:  ps [options]:选项有三种风格

1)、UNIX options, which may be grouped and mustbe preceded by a dash.

 -符号

2)、BSD options, which may be grouped and mustnot be used with a dash.

-符号

3)、GNU long options, which are preceded by twodashes.

两个 -符号

 

(2)、启动进程的方式:

系统启动过程中自动启动:与终端无关的进程;守护进程

用户通过终端启动:与终端相关的进程;前台进程

 

3)、选项:

a:所有与终端相关的进程;

x:所有与终端无关的进程;

u:以用户为中心组织进程状态信息显示;

 

常用组合之一:aux

wKiom1aE3znjAqpfAABEWUDTSvc918.png

VSZ:虚拟内存集;

RSS:Resident Size,常驻内存集;

STAT:

R:running  正在运行

S:interruptable sleeping  可中断睡眠

D:uninterruptable sleeping不可中断睡眠

T:Stopped停止  相当于Crtl+C

Z:zombie['zmb]  僵尸模式

 

+:前台进程

l:多线程进程

N:低优先级进程

<:高优先级进程

s:session leader  引导进程

-e:显示所有进程

-f:显示完整格式的进程信息

 

常用组合之二:-ef

wKiom1aE3zuhWUI2AABPLQsNmms962.png

 

-F:显示完整格式的进程信息;

C: cpu utilization  CPU利用率

wKioL1aE31nhsjzDAAAUw9h0Dak344.png

PSR:运行于哪颗CPU之上

-H:以层级结构显示进程的相关信息;

 

常用组合之三:-eFH后面有[] 表示系统进程  wKioL1aE31vQJrkUAABnT2GQ10Q937.png

 

o field1, field2,...:自定义要显示的字段列表,以逗号分隔;注:o必须在后面,因为要加文件

常用的field:pid,ni, pri, psr, pcpu, stat, comm, tty, ppid, rtprio

常用组合之四:-eo,axo

wKiom1aE3z7QgNQoAAAodAPdEuU273.png

ni:nice值;

wKioL1aE312B_hohAAAb2PjwTws077.png

priority:priority,优先级;

rtprio:realtime priority,实时优先级;

 

进程管理类命令TOP/HTOP/dstat使用:

1、top命令:

-display Linux processes

(1)、排序:

P:以占据CPU百分比排序;默认下就是

M:以占据内存百分比排序;

T:累积占用CPU时间排序;

wKioL1aE316TysbMAABH9xRT7Sc581.png

 

2)、首部信息:

uptime信息:l命令     现在时间,开机时间几个用户   负载均衡(后三组数)

wKioL1aE31_RFhDSAAAHFSZBsZw651.png

tasks及cpu信息:t命令:分别是us用户占用百分比,sy内核空间占用百分比,ni改变过的优先,id空闲CPU百分比,

      wa  IO等待占用CPU的百分比,hi硬中断占用百分比,si软中断,st偷时间(浪费的CPU,此值过大,说明CPU消耗过高,负载跟不上了),

wKiom1aE4mrCtoxAAAAJy82IM_E029.png

内存信息:m命令     total 物理内存总量   ,free 空闲内存,used使用内存,buff/cache缓冲区和调整缓存

swap项与上同

wKiom1aE30Gxq2tqAAATbBQXPdY406.png

 

退出命令:q

修改刷新时间间隔:s   默认是3

wKiom1aE30GAev3IAAAfpZJceZQ071.png

终止指定的进程:k

 

(3)、选项:

-d#:指定刷新时间间隔,默认为3秒;

-b:以批次方式显示;

-n#:显示多少批次;

uptime命令:显示系统时间、运行时长及平均负载;

过去1分钟、5分钟和15分钟的平均负载;

等待运行的进程队列的长度;

 

 

(2)、htop命令:

1)、选项:

wKiom1aE4vTxn1PLAACr7pr5GtU673.png

-d#:指定延迟时间间隔;

htop -d 3

wKioL1aE4xWy3JyOAABIxuq2aJk960.png

-u UserName:仅显示指定用户的进程; htop -u root

wKioL1aE4xfhA0_bAABkKztP69Q607.png

-sCOLUME:以指定字段进行排序;

2)、子命令:

l:显示选定的进程打开的文件列表;

wKiom1aE4vzxud2OAAAwe6tZb08378.png

s:跟踪选定的进程的系统调用;  选定一个进程按s查看

wKioL1aE4xuhBysKAAARkle-wvk163.png

t:以层级关系显示各进程状态;

wKioL1aE4x6DHPEMAAAzs0kRkJ8095.png

a:将选定的进程绑定至某指定的CPU核心;

晕,虚拟机只设了一个CPU,没做实验,也是在htop界面,点一个进程,按a

 

3、dstat命令:

-versatile tool for generating system resource statistics

dstat [-afv] [options..] [delay [count]]

    wKiom1aE5drT0rI-AAA5S0bMpSI926.png


常用选项:

-c,--cpu:显示cpu相关信息;

wKiom1aE5QuS1hUHAAAPSLWsmtY685.png

-C#,#,...,total

wKioL1aE5S2xbpfIAAAjUS9HiR8673.png

-d,--disk:显示磁盘的相关信息

wKioL1aE5Tnx83htAAANAR34WuI775.png

-Dsda,sdb,...,tobal

wKiom1aE5RyzlVcpAAAalmW5KDE679.png

-g:显示page相关的速率数据;(内存页框)

wKiom1aE5R2hlRvVAAAH78ICJL8784.png

-m:Memory的相关统计数据

wKioL1aE5T2S558KAAASxx73TDU901.png

-n:Interface的相关统计数据;

wKiom1aE5SGhKodpAAAQMrNsNeM065.png

-p:显示process的相关统计数据;

wKioL1aE5UChkI0gAAALEZyFVy4082.png

-r:显示io请求的相关的统计数据;

wKiom1aE5SPiiT3VAAALmYD8Lzo324.png

-s:显示swapped的相关统计数据;

wKiom1aE5STR7J4YAAANBtutRqI316.png

 

--tcp

wKioL1aE5UPyxjLFAAAM1QxS7dM920.png

--udp

wKioL1aE5UPh4IrFAAAKaBygbc0796.png

--raw

--socket

wKiom1aE5SaSgF6-AAAOu32oZFA154.png

--ipc

--top-cpu:显示最占用CPU的进程;

wKiom1aE5SjBZ9gMAAAYzjM4l5g570.png

--top-io:最占用io的进程;

wKioL1aE5UfQMBUrAAARVDkWqd4249.png

--top-mem:最占用内存的进程;

wKioL1aE5UjD9TsJAAAXSOy1jlA690.png

--top-lantency:延迟最大的进程;