linux进程管理

来源:互联网 发布:视频软件 知乎 编辑:程序博客网 时间:2024/06/14 05:25

进程管理

进程简介:

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



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

进程查看命令:

ps命令:

ps aux  #查看系统中所有进程,使用BSD操作系统格式
ps -le  #查看系统中所有进程,使用linux标准命令格式


选项:
-a :显示一个终端的所有进程,除了会话引线
-u :显示进程的归属用户及内存使用情况
-x :显示没有控制终端的进程
-l :长格式显示。显示更加详细的信息
-e :显示所有进程,和-A作用一致


USER :该进程是由哪个用户产生;
PID :进程的ID号
%CPU :该进程占用的CPU资源的百分比
%MEM :该进程占用物理内存的百分比
VSZ :该进程占用的虚拟内存的大小,单位KB
RSS :该进程占用的实际物理内存的大小,单位KB
TTY :该进程是在哪个终端中运行的,其中tty1-tty7代表本地控制台终端tty1-tty6是本地字符界面的终端,tty7代表是图形终端。pts/0-225代表虚拟终端。


pstree命令:

选项:
-p :显示进程的PID
-u :显示进程的所属用户

top 命令:

选项:
-d 秒数:指定top命令每隔几秒更新。默认是3秒
-b 使用批处理模式输出。一般和“-n” 选项合用
-n 次数:
在top命令的交互模式当中可执行的命令:
?或h 显示交互模式的帮助
p 以CPU使用率排序
M 以内存使用率排序
N 以PID排序
q 退出top 


1、每3秒刷新一次;
2、最主要的作用是查看顶端5行判断系统健康状况(主要查看的参数):
1.load average: 0.00, 0.00, 0.00  #表示系统在之前1分钟,5分钟,15分钟的平均负载。按照CPU核数判断大小,如双核不超2,4核不超4.
2.Cpu(s):...99.8%id  #CPU空闲百分比
3.Mem:...6780k free  #内存空闲率
4.Swap:...536723k free  #swap空闲率
buffer #缓冲,用于加速写入;
cashed #缓存,用于加速读出。


3、查看系统中所有进程的CPU占比:#top -b -n 1 > top.log
top比较耗费内存,用完立刻关闭(Windows中的任务管理器同理)
服务器应该正常地有计划地定时重启,可以排除一些故障。


top - 09:15:34 up 56 min,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 107 total,   1 running, 106 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1004112k total,   226760k used,   777352k free,    18272k buffers
Swap:  2097148k total,        0k used,  2097148k free,    69920k cached


杀死进程:

kill 命令:

kill -l #查看可用的进程信号


其中有两个信息
信号代号 信号名称   说明
1          SIGHUP    关闭读取配置文件后重启
9          SIGKILL      强制停止


命令: kill -HUP(或-1) 进程号
平滑重启服务: 正常修改完配置文件后,需要重启服务,但是用普通的restart来重启会提出正在使用的用户,造成不好的用户体验。而平滑重启是重启服务配置,保留正在使用的用户。  


kill 一次只能杀死一个进程。但是一个服务经常会开启很多进程(比如httpd,每登陆一个用户就会增加一个进程),因此一个个进程关闭太麻烦,可能就要用到killall 或者 pkill 可以批量杀死同一类型的进程


2、killall 命令:

killall  [选项]  [信号]  进程名 
#按照进程名杀死进程,可以批量杀死同一类型的进程


选项:
--> -i:交互式,询问是否要杀死某个进程
--> -I:大小的i,忽略进程名的大小写


3、pkill命令

pkill  [选项]  [信号]  进程名 
#按照进程名终止进程,可以批量杀死同一类型的进程


选项:
--> -t 终端号:按照终端号踢出用户


案例:踢出登录用户


w #查看当前登陆用户的用户 TTY列为终端号


按照终端号杀死进程

pkill -9 -t tty1


只有超级用户才能剔除用户 


进程优先级

进程优先级简介:
linux操作系统是一个多用户的、多任务的操作系统、linux系统中同时运行着非常多的进程。但是cpu在同一个时钟周期内只能运算一个指令。进程优先级决定了每个进程的处理先后循序


PIR代表Priority NI代表Nice 这两个值都是优先级 数字越小代表进程的优先级越高
修改NI值的注意事项:
1.NI的值的范围值-20到19
2.普通用户调整IN值的范围是0到19 只能调整自己的进程
3.root用户才能设定进程IN值为负值而且可以调整任何用户的进程
4.PRI(最终值)=PRI(原始值)+NI
5.用户是能修改NI值,不能直接修改PRI


nice 命令:

给新执行的命令直接赋予NI值,但是不能修改已经存在进程的NI值
nice [选项] 命令
选项:
-n NI值 :给命令赋予新的NI值
例如: nice -n -5 service httpd start


renice命令:

修改已经存在的进程的优先级
renice [优先级] PID #renice命令是修改已经存在进程的NI值的命令
例如:
renice -10 2125