Amaze UI Logo

码动指尖



Linux进程管理

 进程是什么?

顾名思义, 正在进行的程序

只要是程序,一运行就会产生至少一个进程


进程管理最主要的三个事情


1.判断服务器健康状态(最重要的)

2.查看系统中所有进程

3.杀死进程



1.查看进程

 ps  aux 查看系统中所有进程,用BSD操作系统格式(如果是ps -aus就会有一行报错)


 ps -le 出现的内容与ps aus一样,只是多了一列优先级


 选项 

  -a 显示一个终端的所有进程,除了会话引线

  -u 显示进程的归属用户及内存的使用情况

  -x 显示没有控制终端的进程

  -l 长格式显示。显示更加详细的信息

  -e 显示所有进程,和-A作用一致


USER 该进程是由哪个用户产生的

PID 进程的ID号

%CPU 该进程CPU资源占用情况的百分比,占用越高,进程越消耗资源

%MEM 该进程占用物理内存的百分比,占用越高,进程越耗费资源

VSZ 该进程占用虚拟内存的大小,单位为KB

RSS 该进程占用实际物理内存的大小,单位KB

TTY 该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端(值为?的时候,表示并不是由终端启动的,而是由系统自动启动的)

TIME表示当前CPU占用的资源,时间越长,占用资源越多

COMMAND进程名


tty1-tty6是本地的字符界面终端,tty7是图形终端  

pts/0-255代表虚拟终端



PPID    父进程的进程ID(Parent Process id)

SID    会话ID(Session id)

P 等待交换页


STAT(状态)状态位常见的状态字符


D 无法中断的休眠状态(通常 IO 的进程);


R 正在运行可中在队列中可过行的;


S 处于休眠状态;


T 停止或被追踪;


W 进入内存交换 (从内核2.6开始无效);


X 死掉的进程  (基本很少见);


Z 僵死    Zombie(a defunct process)        进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放。


< 优先级高的进程;


N 优先级较低的进程;


L 有些页被锁进内存;


s 进程的领导者(在它之下有子进程);


l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);


+ 位于后台的进程组;




                                                 top命令 

   需要注意,top命令是每三秒执行一次

   top最重要的功能是,根据最上面的那五行判断系统的健康状态'



    服务器维护基本原则,  一般的网站类服务器,一般每个月重启一次,让缓存什么的不能影响效率和运行,

    游戏类的服务器负载较大的推荐一周重启一次


               杀死进程(kill命令是在无法正常杀死和关闭进程的时候才来用的)


  kill


  kill -1 进程PID   或者kill -HUP 进程PID  是平滑的杀死进程,不会把用户踢出   (关于相应指令输入kill -l查看)

  kill -9 进程PID 强制杀死进程


  kill命令是在无法正常杀死和关闭进程的时候才来用的


  killall


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

  例子 killall -9 httpd强制杀死所有httpd的进程

  如果是killall -i -9 httpd将会交互杀死进程,也就是说让用户决定是否真的杀死

   -I则是不区分进程大小写


   pkill


   跟killall用法类似

   不过pkill可踢出终端用户   例:pkill -9 -t 终端号(w命令查看到的TTY号)

   如此便强制踢出了终端登陆用户(-9 和 -t不能写反)



关于Linux下的进程优先级(修改)

   PRI代表Priority(最终生效,但不能直接修改,用户只能改Nice,最后两个相加就能影响优先级了),NI代表Nice。这两个值都是优先级,数字越小代表进程优先级越高

   PRI(最终值)=PRI(原始值)+NI

   用户只能修改NI的值,不能直接修改PRI


   修改操作

   nice -n -5 service httpd start启动httpd服务的同时,就修改了优先级了(只能是操作不存在的进程)


   renice [优先级] PID

   renice命令是修改已存在的进程的NI值的命令

   例 :renice -10 2125


   

                                                 jobs查看后台运行的进程(程序)


加上-l指令则可看到进程的PID可用于杀死进程

ctrl + z使进程暂停在后台

可执行程序包括指令都可在最后加一个 &  放入后台进行运行


注:“+”代表最近一个放入后台的工作,也就是工作恢复时,默认恢复的工作。“-”代表倒数第二个放入后台的工作



bg %ID  恢复某个停止的进程(不加ID则默认为+的那个恢复,fg也是一样)

fg 进程恢复到前台


nohup  要执行的命令 &

这样就会放入后台运行终端关闭也不影响它的运行



  查询系统资源

vmstat 命令监控系统资源

vmstat [刷新延时 刷新次数]

例: vmstat 1 3


swap 交换分区 memory物理内存

prcs :进程信息字段

-r 等待运行的进程数,数量越大,系统越繁忙

-b 不可被唤醒的进程数量,数量越大,系统越繁忙

memory:内存信息字段

swpd 虚拟内存使用情况,单位KB

free 空闲的内存容量,单位KB

buff 缓冲的内存容量,单位KB

cache 缓存的内存容量,单位KB



简单来说缓存cache是用来加速数据从硬盘中读取的,而缓冲buffer是用来加速数据写入硬盘的


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查看系统内核信息


查看CPU信息

cat /proc/cpuinfo

lsb_release -a 查看Linux发行版



未完待续···


 Linux

作者  :  奕弈

喵喵喵,你在心上



评论


About ME

about me

奕弈

为了最初的心,努力奋斗,从不懈怠的学习。

我不想成为一个庸俗的人。十年百年后,当我们死去,质疑我们的人同样死去,后人看到的是裹足不前、原地打转的你,还是一直奔跑、走到远方的我?

Contact ME