一·简介系统管理
简单了解三个概念
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处理数据的优先级,和网络优先级并无关系
这里要提醒大家,一般我们不用更改优先级,非专业人士,勿用!