进程管理
进程简介:
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占有一定的系统资源
进程管理的作用:
1 .判断服务器健康状态
2 .查看系统中所有进程
3 .杀死进程
4 .进程的查看
ps aux
查看系统中所有的进程,使用BSD操作系统格式(没有-只是符合BSD格式,加-也可以)
ps -le
F:这个进程的标时。如果是4,表示这个进程的权限是root
S:进程的状态
查看系统中所有的进程,使用Linux标注命令格式
选项
-a:不显示与与终端有关的所有进程。
-u:显示进程的归属用户和内存使用情况
-x:列出较完整的信息,通常与-a使用
-l:长格式显示,显示更加详细的信息
-e:显示所有进程,和-A作用一致
STAT字段:进程状态
常见状态有:
R:运行
S:睡眠
T:停止状态
s:包含子进程
+:位于后台
START字段:进程的启动时间
TIME字段:该进程占用CPU的运算时间,注意不是系统时间
COMMAND字段:产生该进程的命令名
相关命令
-
pstree[选项]:显示进程树
选项:
-p:显示进程的PID
-u:显示进程的所属用户 -
top[选项]:查看系统健康状态,可以动态查看系统资源变化
选项:
-d:秒数,指定top命令每隔几秒更新,默认是3秒
-b:使用批处理模式输出。一般和"-n"选项合用
-n次数:指定top命令执行的次数,一般和"-b"选项合用
在top命令的交互模式当中可以执行的命令:
?或h:显示交互模式的帮助
P:以CPU使用率进行排序默认就是此项
M:以内存使用率进行排序
N:以PID排序
q:退出top
![片描述](https://img-blog.csdnimg.cn/20191005101055711.png第一行信息为任务队列信息(不过这里的load average的大小是按系统的核数来看,双核就是2,四核就是4,不过可能即使满足了这个数值,CPU和MEM还可以接受的话也不一定就超出了负载,判断方法可以参考:用5分钟,15分钟的平均负载除以cpu核数,如果小于0.7就是正常)
PID是进程号,Pr是进程谦让度,NI是进程优先级,VIRZ是虚拟内存占用量,RES是物理内存占用量。
杀死进程 -
kill -l :查看可用的信号
常用选项:
-1 重新读取配置文件
-15 以正常方式终止进程,尽可能地终止
-9 强制杀死进程 -
killall: 按照进程名杀死进程
-i 询问是否杀死进程,交互式
-I 忽略进程名大小写 -
pkill :通过进程名终止进程
-t 通过指定终端号踢出用户(可以先用w命令查看登陆的用户的信息)
如kill -9 -t tty2
有关僵尸进程的问题
造成僵尸进程的原因是该进程本来应该已经结束,但是该进程的父进程无法完整地将该进程结束掉,造成该进程一直存在内存里面
ps aux | grep '<defunct>'
通过这个命令可以查看僵尸进程是否存在。
系统资源查看
vmstat [刷新延时 刷新次数]:监控系统资源
例如:
vmstat 1 3
procs:进程信息字段
r:等待运行的进程数,数量越大,系统越繁忙
b:不可被唤醒的进程数量,数量越大,系统越繁忙
memory:内存信息字段
swpd:虚拟内存的使用情况,单位kb
free:空闲的内存容量,单位kb
buff:缓冲的内存容量,单位kb
cache:缓存的内存容量,单位kb
缓冲和缓存的区别
简单来说缓存(cache)是用来加速数据从磁盘中“读取”的,而缓冲(buffer)是用来加速数据“写入”硬盘的,因为cpu的速度很快,硬盘速度太慢
swap:交换分区的信息字段
si:从磁盘中交换到内存中数据的数量,单位kb
so:从内存中交换到磁盘中数据的数量,单位kb
上面两个数越大,证明数据经常在磁盘和内存之间交换,系统性能越差
io:磁盘读写信息字段
bi:从块设备读入数据的总量,单位是块
bo:写到块设备的数据的总量,单位是块
上面连个数越大,代表系统的I/O越繁忙
system:系统信息字段
in:每秒被中断的进程次数
cs:每秒钟进行的事件切换次数
上面两个数越大,代表系统与接口设备的通信非常繁忙
CPU:CPU信息字段
us:非内核进程消耗CPU运算时间百分比
sy:内核进程消耗CPU运算时间百分比
id:内核CPU的百分比
wa:等待I/O所消耗的CPU百分比
st:被虚拟机所盗用的CPU百分比
dmesg:开机时内核检测信息 ,用这个命令查看内核状态
dmesg
dmesg | grep CPU
free [-b|-k|-m|-g|-h]:查看内存使用信息
选项:
-b:单位字节
-k:单位KB
-m:单位MB
-g:单位GB
-h:单位自动
cat /proc/cpuinfo:查看CPU信息
/proc/*这个目录的作用:进程都是在内存中的,内存当中的数据都是写入到这个目录下的,这个目录不消耗磁盘大小。
uptime:显示系统的启动时间和平均负载,也就是top命令的第一行,w命令也可以看到这个信息,top比较消耗内存资源,如果只看负载,可以用这个
uname [选项]:查看系统与内核相关信息
选项:
-a:查看系统所有相关信息
-r:查看内核版本
-s:查看内核名称
file /bin/ls:判断当前系统的操作位数
lsb_release -a:查看当前系统的发行版
fuser [选项] file :通过文件找出正在使用该文件的进程
-u:列出该进程拥有者
-v:列出文件与进程还有命令的相关性
lsof [选项]:列出进程打开或使用的文件信息
选项:
-c 字符串:只列出以字符串开头的进程打开的文件
-u 用户名:只类出某个用户的进程打开的文件
-p pid:列出某个PID进程打开的文件
lsof | more:查询系统中所有进程调用的文件
lsof /sbin/init:查询某个文件被哪个进程调用
lsof -c httpd:查看httpd进程调用了哪些文件
lsof -u root:按照用户名,查询某用户的进程调用的文件名