iMisty的技术栈

iMisty的技术栈

Linux系统管理之进程管理

841
2019-06-16

Linux系统管理之进程管理

进程管理简介

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

进程管理的作用

  • 判断服务器健康状态
  • 查看系统中的所有进程
  • 杀死进程

进程查看-ps命令和pstree 命令

  • ps aux 查看系统中的所有进程,使用BSD操作系统格式

  • ps -le 查看系统中的所有进程,使用linux标准命令格式

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

    img

  • 进程的状态
    img

  • pstree [选项]查看进程树

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

进程查看-top命令,查看系统健康状态

  • top [选项]

    • -d 秒数:指定top命令每隔几秒更新,默认是3秒
    • -b 使用批处理模式输出,一般和 -n选项合用
    • -n 次数:指定top命令执行的次数,一般和 -b选项合用
  • 在top命令的交互模式中可以执行的命令 ( shift + [命令] )

    • ? 或者h,显示交互模式的帮助
    • P:以cpu的使用率排序,默认就是此项
  • M:以内存的使用率排序

  • N :以PID排序

    • q:退出top
      img
top命令查看,第一行信息为任务队列信息 主要是 15分钟,五分钟,一分钟的负载均衡

img

top命令查看,第二行信息为进程信息
  • 僵尸进程,若是短期出现,可能就是某个正在关闭的进程,等一会即可,若是长期存在,则需要查询进程的作用,不是很重要的话直接结束即可
    img
top命令查看,第三行信息为cpu信息,
  • 空闲cpu不应该低于百分之二十,cpu占用超过百分之八十就会卡img
top命令查看,第四行信息为物理内存信息,主要是空闲内存占比

img

top命令查看,第五行信息为交换分区(swap)信息,当对内存要求较高的时候,swap也会被大量占用

img

buffer 缓冲,加速数据写入,先写入内存待到积累到一定程度再一次性写入,减少了频繁写入磁盘;cache缓存,加速数据读取

有计划重启是服务器维护的基本原则,特别是一些高频访问的或者是高压力的服务器,定期重启让服务器的状态初始化

使用top 查看所有进程

  • top -b -n 1 > /root/top.log 将top命令执行一次重定向输出到文件中,可以打印全部的进程信息

杀死进程

img

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

  • kill -1/HUP 进程号 平滑重启进程,重新加载配置文件,不会把已经登陆的用户踢出去

  • kill -9 进程号 强制杀死进程,一般只是在正常关闭重启不起作用的情况下才使用强制终止

kill 只能杀死、重启操作单一的某个进程,但是对于有多个进程的服务并不适用

killall 命令,适用于启动了多个进程的情况

  • killall [选项] [信号] 进程名 按照进程名杀死进程

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

pkill命令, 基本和 killall一致

  • killall [选项] [信号] 进程名 按照进程名终止进程

  • 选项 -t 终端号: pkill -9 -t pts/1 按照终端号踢出用户,只有超级用户才能踢出其他用户,普通用户不可以img

  • w 查看当前的系统基本信息和本机登陆的用户,包括本地和远程

修改进程的优先级

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

  • ps -le 查看进程详细信息,包括优先级

  • PRI代表 Priority,NI代表Nice,这两个值都是优先级,数字越小代表该进程优先级越高

  • 不管是超级用户还是普通用户都不可以直接修改PRI的值,但是 可以修改NI的值,系统最终生效的值是 PRI+NI

  • 通常情况下不需要用户去修改进程的优先级

修改NI值时有几个注意事项

img

nice 命令

  • nice [选项] 命令 nice命令可以给新执行的命令直接赋予NI值,但是不能修改已经存在进程的NI值

  • 选项 -n NI值:给命令赋予NI值

  • 例如 nice -n -5 service httpd start 提升五个单位的优先级启动httpd服务

renice 命令

  • renice [优先级] PID renice 命令是修改已经存在进程的NI值的命令

  • 例如 renice -10 2015 将指定的一个pid的进程优先级提升十个单位