1.什么是进程
进程是正在执行的程序或命令,每一个进程都是一个正在运行的实体,都有自己的地址空间,并占用一定的系统资源。在windows中,打开任务管理器->进程就可以看到正在运行的进程。
2.进程管理的作用
判断服务器健康状态
查看系统中所有进程
杀死进程
3.进程相关命令
1.ps aux //查看系统中的所有进程,使用BSD操作系统格式
2.ps -le //查看系统的所有进程,使用Linux标准命令格式
1.ps aux命令
a表示all,u表示user,x表示列出完整信息
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.1 2892 1404 ? Ss 20:40 0:03 /sbin/init
root 2 0.0 0.0 0 0 ? S 20:40 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 20:40 0:00 [migration/0]
...
各个字段的含义
列
字段
含义
1
USER
进程由那个用户产生的
2
PID
进程号
3
%CPU
占用的cpu比例
4
%MEM
占用的内存比例
5
VSZ
该进程使用掉的虚拟内存量(kb)
6
RSS
该进程占用的固定的内存量
7
TTY
该进程是在哪个终端机上面运行的,如果与终端机无关,则显示?
8
STAT
该进程的状态(R/S/T/Z)
9
START
进程被触发的时间
10
TIME
该进程实际使用CPU的时间
11
COMMAND
该进程的实际指令
进程状态
含义
R
正在运行
S
睡眠
T
停止
s
包含子进程
+
位于后台
2.top命令,查看系统健康状态
输入top命令,显示如下信息
前面几行的内容说明
第一行内容
说明
21:56:54
系统当前时间,虚拟机里的系统时间不一定准确
up 1:16
系统运行了1小时16分钟
1 user
当前登录了1个用户
load average:0.00,0.01,0.00
系统在之前的1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷
第二行内容
说明
Tasks:150 total
一共150个进程
1 running
1个在运行
149 sleeping
149个在休眠
0 stopped
0个停止
0 zombie
0个僵尸进程
第三行内容
说明
Cpu(s):0.1%us
用户模式占用的CPU百分比
0.2%sy
系统模式占用的CPU百分比
0.0%ni
改变过优先级的用户进程占用的CPU百分比
99.7%id
空闲CPU的百分比,这个比较重要
0.0%wa
等待输入/输出的进程的占用CPU百分比
0.0%hi
硬中断请求服务占用的CPU百分比
0.1%si
软中断请求服务占用的CPU百分比
0.0%st
st(steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比
第四行内容
说明
Mem:1030608k total
物理内存总大小(kb),(我给虚拟机分配的内存是1024MB)
164772k used
用掉的内存
865836k free
空闲的内存
14816k buffers
做缓冲的内存数量
第五行内容
说明
Swap:1023992k total
swap分区一共1023992kb
0k used
用掉了0k
1023992k free
1023992k空闲
76092k cached
76092kb作为缓存的交互分区
前面的五行内容比较重要的是CPU负载,CPU的空闲率,物理内存的空闲三个指标。TOP命令本身是比较耗费资源的。
僵尸进程是指进程正在终止,但是还没有终止,有可能是因为卡死了
3.kill命令,杀死进程
kill -l 查看支持的信号
常用的信号有:
信号代号
信号名称
信号说明
1
SIGHUP
这个信号让进程立即关闭,然后重新读取配置文件之后重启
9
SIGKIL
立即结束程序运行,一般用于强制终止进程
15
SIGTERM
正常结束进程,如果无法正常结束,会尝试用9信号
命令格式:kill [-信号] PID //不指定信号的话默认为15
killall 命令
命令格式:killall [选项] [信号] 进程名 //按照进程名终止进程
选项:
-i:交互式,询问是否要杀死某个进程
-I:忽略大小写
pkill命令
命令格式:pkill [选项] [信号] 进程名 //按照进程名终止进程
选项:
-t 终端号:按照终端号踢出用户