一、什么是进程?
进程就是系统未完成并且正在进行的工作。
二、查看进程
1.图形方式查看
gnome-system-monitor
##进程状态
R(Running):该程序正在运行;
S(Sleep):改程序目前正在睡眠状态(idle),但可以被唤醒(signal)
D :不可被唤醒的睡眠状态,通常进程可能在等待1/O的情况。
T:停止状态(stop),可能是在工作控制(背景暂停)或除错(traced)状态
Z:僵尸状态,程序已经终止但却无法被移除至内存外
2.进程查看命令
ps ##显示进程信息
ps -A
##所有进程
ps -a
##在当前环境中运行的进程,不包含环境信息
ps -u
##显示进程用户信息
ps a
##在当前环境中运行的所有进程
ps x
##列出系统中所有运行的进程,包含tyy输出设备(通常与a参数一起使用,可列出比较完整的信息)
ps f
##显示进程的父子关系
ps e
##显示进程的详细信息(系统资源的调用)
ps l
##长列表显示进程的详情
3. ps常用组合
ps aux
##显示系统中所有进程并显示进程用户
USER:进程是哪个用户产生
PID:进程的ID号
%CPU:进程占用CPU资源的百分比,占用越高,进程越耗费资源
%MEM:进程占用物理内存的百分比,占用越高,进程越耗费资源
VSZ:进程占用虚拟内存的大小,单位KB
RSS:进程占用实际物理内存的大小,单位KB
TTY:进程在哪个终端运行,tty1-tty6是本地字符界面终端,tty7是本地图形终端。pts/0-255代表虚拟终端
STAT:进程状态:R(运行),S(睡眠),T(停止),s(包含子进程),+(位于后台),Z(僵死),<(优先级高),N(优先级高)
START:进程的启动时间
TIME:该进程占用CPU的运算时间,注意不是系统时间
COMMAND:产生此进程的命令名
ps ef
##显示进程详细信息并显示进程父子关系
ps ax
##显示当前系统中的所有进程
pstree
##显示当前系统的进程树
4.显示进程指定信息
ps ax -o xxx
##显示进程的指定信息
ps ax -o comm
##进程名称
ps ax -o user
##进程所有人
ps ax -o group
##进程所有组
ps ax -o %cpu
##进程cpu使用率
ps ax -o %mem
##进程内存使用率
ps ax -o pid
##进程id
ps ax -o nice
##进程优先级
5.进程排序
ps ax --sort=+%cpu | -%cpu
ps ax --sort= +%mem | -%mem
注:+表示从小到大排序,可省略;-表示从大到小排序
6.stat中显示的信息
S ##进程状态
l ##内存中有锁定空间
N ##优先级低
< ##优先级高
+ ##前台运行
s ##顶级进程
三、进程的优先级
1.进程的优先级范围
-20~19
注:-20的优先级是系统中最高的
2.优先级查看
ps ax -o pid,nice,comm
3.指定某个优先级开启进程
nice -n 优先级数字 进程名称
nice -n -5 vim &
##开启vim并且指定程序优先级为-5
注:&表示把进程打入后台
4.改变进程的优先级
renice -n 优先级数字 进程pid
renice -n -7 1325
##改变1325进程的优先级为-7
5.环境中进程的前后台调用
jobs
##查看被打入环境后台的进程
注:+表示默认操作,-表示次默认操作
ctrl+z
##把占用终端的进程打入后台
fg jobsnum(工作号)
##把后台进程调回前台
bg jobsnum
##把后台暂停的进程运行
comm &
##让命令直接在后台运行
四、进程信号
1.常用信号等级
1 ##进程重新加载配置
2 ##删除进程在内存中的数据
3 ##删除鼠标在内存中的数据
9 ##强行结束单个进程(不能被阻塞)
15 ##正常关闭进程 (可能会被阻塞)
18 ##运行暂停的进程
19 ##暂停某个进程 (不能被阻塞)
20 ##把进程打入后台 (可以被阻塞)
man 7 signal
##查看信号详细信息
kill -信号 进程pid
##发起信号
killall -信号 进程名字
pkill -u student -信号
##按一定条件发送信号
2.进程的动态监控
top
1 ##显示cpu每个核的负载
s ##调整刷新频率
c ##cpu负载排序
m ##内存使用量排序
h ##查看帮助
u ##查看指定用户进程
k ##对指定用户发起信号
q ##退出
top命令下界面前5行详情:
01)任务队列信息
注:
系统运行时间:时间越长,表示服务器运行的时间越长,但并不好,应该定时重启服务器,让状态归0,降低故障率
平均负载:通常认为小于1,但并不准确
02)进程信息
03)cpu信息
空闲cpu的百分比一般不低于20%
04)物理内存信息
05)交换分区信息
注:
缓冲:加速数据写入;缓存:加速数据读取