【Linux】Linux进程管理01 查看进程

进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源

进程管理的作用

  1. 判断服务器健康状态
  2. 查看系统中所有的进程
  3. 杀死进程


ps命令 查看所有进程

1
2
3
4
5
6
7
8
9
10
11
12
13
ps aux
#查看系统中所有进程,使用BSD操作系统格式(没有-)
ps -le
#查看系统中所有进程,使用Linux标准命令格式
ps -ef |grep ssh
#aux和-ef没有多大区别,只是一风格不同,二如果COMMAND过长,aux会截断显示,而-ef不会
选项
-a :显示一个终端的所有进程
-u :显示进程的归属用户及内存的使用情况
-x :显示没有控制终端的进程
-l :长格式显示,显示更加详细的信息
-e :显示所有进程,和-A作用一致

输出详解

显示 含义
USER 该进程是由哪个用户产生的
%CPU 该进程占用CPU资源的百分比,占用越高,进程越耗费资源
%MEM 该进程占用物理内存的百分比,占用越高,进程越耗费资源
VSZ 该进程占用虚拟内存的大小 ,单位KB
RSS 该进程占用实际物理内存的大小,单位KB
TTY 表示该进程是在哪个终端运行的
tty1-tty6是本地字符界面终端,tty7是本地图形终端
pts/0-255代表虚拟终端
STAT 进程的状态
R :运行
S :睡眠
T :停止
s :包含子进程
+ :位于后台
START 该进程的启动时间
TIME 该进程占用CPU的运算时间,注意不是系统时间
COMMAND 产生些进程的命令名

/sbin/init的pid永远是1,它是系统下所有进程的父进程,所有的进程都依赖于它

TTY是,代表该进程是由系统内核启动的,一般认为是系统进程


pstree命令 查看进程树

1
2
3
pstree [选项]
-p :显示进程的PID
-u :显示进程的所属用户


top命令 查看系统健康状态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
top [选项]
选项:
-d秒数:指定top命令每隔几秒更新。默认是3秒
-b:使用批处理模式输出。 一般和 ”-n"选项合用
-n 次数:指定top 命令执行的次数。 一般和 “-b”选项合用
在 top 命令的交互模式当中可以执行的命令:
h:显示交互模式的帮助
P:以CPU使用率排序,默认就是此项
M:以内存的使用率排序
N:以PID排序
q:退出 top
top -b -n 1 > /root/top.log
#查看所有进程,因为直接使用top屏幕有限无法全部展示,所以放到文件中
#将执行的top命令结果输出到log日志文件中
#top命令耗费资源比较大,应及时关闭

输出详解

第一行为任务队列信息
12:26:46 系统当前时间
up 1 day,13:32 系统已运行的时长
2 users 当前登录的用户数量
load average 系统在之前1分钟,5分钟,15分钟的平均负载(与CPU核数相关,一般认为单核小于1时,负载较小,如果大于1,系统已经超出负荷,那么双核不超2,4核不超4)
第二行为进程信息
tasks:95 total 系统中的进程总数
1 running 正在运行的进程数
94 sleeping 睡眠的进程数
0,stopped 停止的进程数
1 zombie 僵尸进程(应该停止却没有停止的进程),如果不是0,需要手工检查僵尸进程
第三行为CPU信息
Cpu(s):0.1%us 用户模式占用的CPU百分比
0.1%sy 系统模式占用的CPU百分比
0.0%ni 改变过优先级的用户进程占用的CPU百分比
99.7%id 空闲CPU的CPU百分比
0.1%wa 等待输入/输出的进程的占用CPU百分比
0.0%hi 硬中断请求服务占用的CPU百分比
0.1%si 软中断请求服务占用的CPU百分比
0.0%st st(Steal time)虚拟时间百分比,就是当有虚拟CPU时,虚拟CPU占实际CPU的时间百分比
第四行为物理内存信息
Mem: 623434k total 物理内存的总量,单位kb
521313k free 空闲的物理内存
578322k used 已经使用的物理内存
623231 buff/cache 作为缓冲/缓存的内存数量
第五行是交换分区的信息
Swap: 8298492 total 交换分区的总量,单位kb
8292336 free 空闲的交换分区
6156 used 已经使用的交换分区
3129824 avail Mem 可用的交换分区
第六行类似ps
PR 优先级
NI 任务nice值
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 物理内存用量
SHR 共享内存用量
TIME+ 累计cpu占用时间

cpu读写速度>内存>硬盘
缓存cache是加速读取 减少对硬盘的读取
缓冲buff是加速写入 减少对硬盘的写入

判断系统健康状况主要查看的参数:

  1. load average: 0.00, 0.00, 0.00 #表示系统在之前1分钟,5分钟,15分钟的平均负载。.
  2. Cpu(s):…99.8%id #CPU空闲百分比
  3. Mem:…6780k free #内存空闲率
  4. Swap:…536723k free #swap空闲率


列出进程打开或使用的文件信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
lsof [选项]
选项:
-c 字符串 :只列出以字符串开头的进程打开文件
-u 用户名 :只列出某个用户的进程打开的文件
-p pid : 列出某个pid进程打开的文件
示例:
lsof | more
#查询所有进程-分屏显示
lsof /sbin/init
#查询/sbin/init文件被哪个文件调用(只能查系统文件,其他自己建立的文件查没有意义)
lsof -c httpd
#查看httpd进程调用了哪个文件
lsof -u root
#按照用户名,查询某用户的进程所调用的文件名(数量可能很多)


参考:

https://blog.csdn.net/qq_31666147/article/details/51557300