Centos学习第六天(CentOS 7系统进程管理)

CentOS 7系统进程管理

什么是进程?
进程是已经启动的可执行程序的运行势力,进程有以下几个组成部分。

 1. 已分配内存的地址
 2. 安全属性,包括所有权凭据和特权
 3. 程序代码的一个或多个执行线程
 4. 进程状态
程序是二进制文件,在没有启动时为静态,存储在磁盘空间中,如/bin/date 、 /usr/sbin/sshd。进程则是二进制文件或程序运行的过程,展示为动态。

进程的状态描述:

 - stoppde:停止状态,不会在被调用到cpu上运行
 - ready:就绪状态,在队列中等待运行,只要轮到其运行,就马上可以在cpu上运行
 - excuting:正在运行中,说明以获得cpu,并在cpu上运行,在运行当中,可能会因为需要获得其他资源而转入睡眠状态。
 - Uninterruptible Sleep:睡眠状态(不可终端的睡眠),当进程在运行中需要加载额外的IO资源时,由于IO速度比CPU慢,进程会进入睡眠状态,交出CPU,运行其他进程。之所以睡眠,是因为进程运行时所需要的资源没有正常获取到,或是进程没有更多的事务需要执行。睡眠状态的进程也是可以被内核再次调度到CPU上运行的,但对于这种需要加载额外资源才能运行的进程,在额外资源没有加载完成时,再次调度运行(中断睡眠)没有任何意义,因此说“不可中断”。
 - Interruptible Sleep:睡眠状态(可中断的睡眠),进程在运行中并不是因为某个额外资源的问题进入睡眠状态,而可能是因为需要执行的事务已经执行完成。例如,某个服务,有用户进行请求时,那么该进程则运行,执行完成用户的请求时,并不能退出运行,所以需要转入睡眠状态。当有用户再次请求时,系统内核则将其再次调度到CPU上运行,是有需要时可以随时调度的睡眠状态,因此说“可中断的睡眠”。
 - Zombie:僵尸进程,在一个进程运行结束时,如果资源能够被回收,那么该进程正常结束。如果进程运行结束时,资源不能被回收,占用的内存不释放,在内核的数据结构也没法删除,甚至连进程占用了哪些内存都无法得知,导致该进程无法释放内存空间,一直存在内存中不能自动退出。因此,该进程也不会再次被内核调度到CPU上运行了,这类进程称为“僵尸进程”。
进程有如下属性。① 进程ID(PID):是唯一的数值,用来区分进程。② 父进程的ID(PPID)。③ 启动进程的用户的UID和所归属的组的GID。④ 进程状态:状态分为运行(R)、休眠(S)、僵尸(Z)。⑤ 进程执行的优先级。⑥ 进程所连接的终端名。⑦ 进程资源占用:如占用资源大小(内存、CPU占用量)。CentOS 5或6,PID为1的进程是init。CentOS 7,PID为1的进程是systemd。
  • 使用ps命令查看进程
  • ps 命令 用于查看进程相关信息,默认只显示前台进程
  • a:显示与当前终端关联的所有进程
  • u:基于用户的格式显示(U:显示某UID所有的进程)
  • x:显示所有进程,不以终端机来区分
    常用的选项组合是 ps -aux
    Centos学习第六天(CentOS 7系统进程管理)_第1张图片最后一列,使用【】括起来的进程是内核态进程,没有括起来的是用户态进程

user:启动这个进程的用户
pid:进程的id
%cpu:进程占用的cpu百分比
%mem:进程占用的内存百分比
vsz:进程占用的虚拟内存大小 KB
rss:进程占用的物理内存大小 KB
stat:进程的状态,linux进程有五种基本状态
T表示该进程目前正在侦测或停止了
R 表示该进程正在运行,或者是可被运行;
S:表示该进程正在睡眠当中,但是可以被某些信号唤醒;
Z 表示该进程已经终止,但是父进程却无法正常终止,所以为僵尸进程;
D 表示不可中断状态)
五种状态后还可以加一些字母 如 Ss,R+等
Centos学习第六天(CentOS 7系统进程管理)_第2张图片<:表示进程运行在高优先级上
N:表示进程运行在低优先级上
L:表示进程有页面锁定在内存中
S:表示进程是控制进程
L:表示进程是多线程的
+:表示当前进程运行在前台
start:该进程被触发启动的时间
Time:该进程实际使用cpu运行的时间
Command:启动该进程的实际指令

  • 查看进程状态:
  • vim a.txt
  • 在另一个终端执行一下操作
  • ps -aux | grep a.txt
    在这里插入图片描述
  • 在执行了vim a.txt 的终端上按ctrl+z 挂起进程
    在这里插入图片描述

按Ctrl+C组合键是发送SIGINT信号,终止一个进程。按Ctrl+Z组合键是发送SIGTSTP信号,挂起一个进程。将作业放置到后台(暂停)。按Ctrl+D组合键不是发送信号,而是表示一个特殊的二进制值,即EOF,代表输入完成或者注销。

2.使用ps命令查看进程,用标准的格式来显示进程

  • -e:显示所有进程。
  • -f:显示完整格式输出。
  • Centos学习第六天(CentOS 7系统进程管理)_第3张图片

进程相关信息每列含义如下。UID:启动进程的用户的ID。PID:进程的ID。PPID:父进程的ID。C:进程生命周期中CPU的利用率。STIME:进程启动时的系统时间。TTY:表明进程在哪个终端设备上运行。如果显示“?”,表示与终端无关,这种进程一般是内核态进程。另外,tty1~tty6是本机上的登入者程序,若为pts/0等,则表示运行在虚拟终端上的进程。TIME:运行进程累计占用CPU的时间。CMD:启动的程序名称。

  • uptime命令查看系统负载
  • Centos学习第六天(CentOS 7系统进程管理)_第4张图片
    任务队列的平均长度是什么?

对于CPU而言也是如此,CPU在同一时间只能运行一个进程,当只有一个CPU时,如果进程的数量大于1,则需要排队等待,等正在CPU上运行的进程结束后,下一个进程才能调入CPU上运行,因此形成了“队列”。当有3个CPU时,如果有3个进程,那么这3个进程可以同时分别在3个CPU上运行,如果有9个进程需要运行,那么每个CPU的平均队列长度则为3。单核心、1分钟的系统平均负载不要超过3即可。

top命令
top命令用于动态查看进程和系统相关属性信息,默认3秒刷新一次。

第一行:内容和uptime命令的弹出信息一样。
第2、3行进程和CPU的信息
在这里插入图片描述Centos学习第六天(CentOS 7系统进程管理)_第5张图片
第四、五行:内存信息
在这里插入图片描述
Centos学习第六天(CentOS 7系统进程管理)_第6张图片
第七行:进程信息
Centos学习第六天(CentOS 7系统进程管理)_第7张图片
Top命令快捷键如下。
(1)按s键:默认3s刷新一次,按s键修改刷新时间。
(2)按Space键:立即刷新。
(3)按q键:退出。
(4)按P键:按CPU使用率降序排序。
(5)按M键:按内存排序。
(6)按T键:按时间排序。
(7)按p键:进程IP,查看某个进程状态。
(8)按数字1键:显示每个内核的CPU使用率。(9)按u/U键:指定显示的用户。
(10)按h键:帮助。

  • 在命令行中运行top命令时,如果需要找出使用CPU最多的进程,按P键,可以按CPU使用率来降序显示.在Linux系统中的一个进程,最多可以使用100%CPU,对吗?如图10-12所示,可以看到dirtyc0w进程使用了196.8% CPU。如果是4核心CPU的话,CPU运行率可以达到400%。
  • Centos学习第六天(CentOS 7系统进程管理)_第8张图片
    lsof命令

lsof命令用于查看进程打开的文件,打开文件的进程,进程打开的端口(TCP、UDP)

  • -i<条件>:列出符合条件的进程。条件包括4、6、协议、:端口、@ip。
  • -p<PID>:列出指定PID所打开的文件。

Centos学习第六天(CentOS 7系统进程管理)_第9张图片
Centos学习第六天(CentOS 7系统进程管理)_第10张图片
Centos学习第六天(CentOS 7系统进程管理)_第11张图片
pstree命令(pstree:(display a tree of processes)以树状图显示进程,直接使用pstree命令时只显示进程的名字,且相同进程合并显示。)

命令使用格式:pstree或pstree -p。使用-p选项可以显示进程ID号。

Centos学习第六天(CentOS 7系统进程管理)_第12张图片

进程前、后台切换及优先级管理

前台进程:在终端中运行的进程,该终端为进程的控制终端,一旦这个终端关闭,这个进程也随之消失。后台进程:也叫守护进程(Daemon),是运行在后台的一种特殊进程,不受终端控制,它不需要与终端交互,Linux的大多数服务器就是用守护进程实现的。比如,Web服务器的httpd等。
Centos学习第六天(CentOS 7系统进程管理)_第13张图片

  • 恢复被挂起的进程
  • Centos学习第六天(CentOS 7系统进程管理)_第14张图片
    关闭进程

关闭进程的3个命令:kill、killall、pkill。kill命令通过指定PID关闭单个进程。命令使用格式:kill [信号] PID。killall和pkill命令用于关闭指定程序名的所有相关进程。命令使用格式:killall程序名。命令使用格式:pkill程序名。Kill命令关闭进程是通过信号的方式来控制进程的。

Centos学习第六天(CentOS 7系统进程管理)_第15张图片
Centos学习第六天(CentOS 7系统进程管理)_第16张图片
在这里插入图片描述

进程的优先级管理

进程优先级的取值范围为从−20到19,取值越小优先级越高。默认情况下,进程的优先级是0。命令1:nice用来指定进程的运行优先级,在进程启动时指定。命令使用格式:nice优先级 进程名。命令2:renice用来改变进程的运行优先级,进程在运行时可改变其优先级。命令使用格式:renice优先级 程序名。
指定优先级:
在这里插入图片描述
Centos学习第六天(CentOS 7系统进程管理)_第17张图片
改变优先级:
Centos学习第六天(CentOS 7系统进程管理)_第18张图片

你可能感兴趣的:(centos,linux,运维)