2-6·Linux系统进程管理

来源:互联网 发布:6s 拍人 知乎 编辑:程序博客网 时间:2024/05/23 02:06

一·简介系统管理

简单了解三个概念
1)进程
正在执行的程序
当前占用系统资源
2)服务进程
服务的进程如apache、nginx、ntpd
命令进程 ls 、cd 、pwd
3)进程管理
维护服务器、健康检查
管理当前系统的进程
杀死、终止进程

进程是Linux系统中一个非常重要的概念。Linux是一个多任务的操作系统,系统上经常同时运行着多个进程。我们不关心这些进程究竟是如何分配的,或者是内核如何管理分配时间片的,所关心的是如何去控制这些进程,让它们能够很好地为用户服务。

进程是Linux系统中一个非常重要的概念。Linux是一个多任务的操作系统,系统上经常同时运行着多个进程。我们不关心这些进程究竟是如何分配的,或者是内核如何管理分配时间片的,所关心的是如何去控制这些进程,让它们能够很好地为用户服务。

二·进程的查看

1)ps 查看进程

ps -aux                 //列出当前所有进程ps  aux                 //与上相同,两种方法都对,只是命令格式遵循不同ps  -le                 //列出当前所有进程

ps a 显示现行终端机下的所有程序,包括其他用户的程序。
ps -A 显示所有程序。
ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
ps -e 此参数的效果和指定”A”参数相同。
ps e 列出程序时,显示每个程序所使用的环境变量。
ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
ps -H 显示树状结构,表示程序间的相互关系。
ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
ps s 采用程序信号的格式显示程序状况。
ps S 列出程序时,包括已中断的子程序资料。
ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
ps u 以用户为主的格式来显示程序状况。
ps x 显示所有程序,不以终端机来区分。

最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。

ps -aux | grep sshd                     //查看sshd占用哪些进程
USER       PID %CPU %MEM    VSZ   RSS    TTY    STAT START   TIME COMMAND用户       PID   CPU  内存    虚拟内存      终端     状态 启动时间  耗费cpu时间 进程名称root      1535  0.0  0.3  82488  3560 ?        Ss   02:49   0:00 /usr/sbin/sshd -D

tty代表本地终端
pts代表远程终端

2)pstree 查看进程树

pstree-p:拆分子进程-u:查看用户

3)top 动态进程查看

top

1、每3秒刷新一次;
2、最主要的作用是查看顶端5行判断系统健康状况(主要查看的参数)

①load average: 0.00, 0.00, 0.00 #表示系统在之前1分钟,5分钟,15分钟的平均负载。按照CPU核数判断大小
②Cpu(s):…99.8%id #CPU空闲百分比
③Mem:…6780k free #内存空闲率
④Swap:…536723k free #swap空闲率

认识缓存与缓冲
buffer #缓冲,用于加速写入;「cpu数据往硬盘中写」
cashed #缓存,用于加速读出。「cpu调取硬盘数据」

3、查看系统中所有进程的CPU占比:#top -b -n 1 > top.log

*top比较耗费内存,用完立刻关闭(Windows中的任务管理器同理)
*服务器应该正常地有计划地定时重启,可以排除一些故障。

三·终止进程命令

1)使用linux操作系统,难免遇到一些软件”卡壳”的问题,这时就需要使用linux下强大的kill命令来结束相关进程。这在linux系统下是极其容易的事情,你只需要kill xxx即可,这里xxx代表与此软件运行相关的进程PID号。

2)kill -l #查看可用的进程信号
-s:指定发送的信号。
-p:模拟发送信号。
-l:指定信号的名称列表。

信号代号 信号名称 说明

(1) SIGHUP: 让程序重读配置文件,而不用重启程序(2) SIGINT: 中断信号,Ctrl+c即发送此信号(9) SIGKILL:杀死进程(15) SIGTERM:终止进程

平滑重启服务: 正常修改完配置文件后,需要重启服务,但是用普通的restart来重启会提出正在使用的用户,造成不好的用户体验。而平滑重启是重启服务配置,保留正在使用的用户。

命令: kill -HUP(或-1) 进程号

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

kill命令的工作原理是,向Linux系统的内核发送一个系统操作信号和某个程序的进程标识号,然后系统内核就可以对进程标识号指定的进程进行操作。比如在top命令中,我们看到系统运行许多进程,有时就需要使用kill中止某些进程来提高系统资源。在安装和登陆命令时,当系统多个虚拟控制台的作用是当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作关闭这个程序。此时使用的命令就是kill,因为kill是大多数Shell内部命令可以直接调用的。

在 Linux中有时会发生这样一种情况:一个程序崩溃,并且处于死锁的状态。此时一般不用重新启动计算机,只需要中止(或者说是关闭)这个有问题的程序即可。当kill处于X-Window界面时,主要的程序(除了崩溃的程序之外)一般都已经正常启动了。此时打开一个终端,在那里中止有问题的程序。比如,如果Mozilla浏览器程序出现了锁死的情况,可以使用kill命令来中止所有包含有Mozolla浏览器的程序。首先用ps命令查找该程序的 PID,然后使用kill命令停止这个程序:

#kill -SIGKILL XXX

3)killall

#killall  [选项]  [信号]  进程名

按照进程名杀死进程,可以批量杀死同一类型的进程

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

4)pkill

#pkill  [选项]  [信号]  进程名 

按照进程名终止进程,可以批量杀死同一类型的进程

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

如何踢出用户(较为实用)

w   #查看当前登陆用户的用户 TTY列为终端号按照终端号杀死进程pkill -9 -t tty1只有超级用户才能剔除用户 

四·进程优先级

1)每一个cpu在一个时间周期只处理一个指令进程,但其处理速度极快,所以我们感觉不到

cpu的速度单位为GHZ/s,代表每秒可处理以G为单位的数据,并且是反复处理,所以以HZ(赫兹)位后缀单位

2)系统优先级:
查看系统优先级:#ps -le
只有NI可以改
PRI(priority)不可改
最终是PRI,NI相加的结果
但是priority是系统内核最终生效的
优先级越接触0,则优先级越高~

3)nice:使用前必须先停止进程

    nice    [选项] [进程]    nice -n -5 server httpd start 

4)

renice:可以修正在运行的进程

    renice [选项] [PID]    renice -10 1845

5)一般我们使用系统默认优先级即可,除非特殊需要,比如内核裁剪,内核编程
注意此处优先级只是cpu处理数据的优先级,和网络优先级并无关系

这里要提醒大家,一般我们不用更改优先级,非专业人士,勿用!

原创粉丝点击