Linux云计算学习笔记08 (CentOS 进程管理)
人民网>>社会·法治

Linux云计算学习笔记08 (CentOS 进程管理)

2025-06-24 12:16:54 | 来源:人民网
小字号

1.过程的定义。

程序:
文件,一般是二进制,静态 /usr/sbin/httpd,/usr/sbin/sshd。

程序是二进制文件(#xff09面试题之一;

过程:
是程序运行的过程, 动态,生命周期,
可以生成和消失(过程是已启动的可执行程序的操作示例,示例是可执行程序的操作示例)。

线程:
线程是过程中独立执行的单元。对于操作系统,,其调度单元为线程;
一个过程至少包括一个线程󿀌这个线程通常被称为主线程;
一个过程从主线程的执行开始,然后创建一个或多个附加程序,所谓基于多线程的多任务.。

二.进程的生命周期。

父过程:
程序运行中产生的第一个过程,任何进程都可以作为父进程创建子进程。

子过程:
由父亲使用fork()函数完全复制自己的地址空间创建的新过程是子过程,
继承父亲过程的安全身份、过去和现有的文件描述符、端口和资源特权、环境变量,
以及程序代码,随后,exec自己的程序代码可能是子过程。

poccess id:   pid    过程号!
对父亲进程的跟踪和安全以及管理人员的控制和管理所需,
父亲的过程将分配一个唯一的过程id,这个id就是pid。

3.过程状态。

在多任务处理操作系统中,每个CPU(或者每个核心�只能在一个时间点处理一个过程。࿰在过程中运行c;它对CPU 时间和资源分配的要求会不断变化(过程不会持续占用cpu,而是根据自己的需要来决定是否需要使用cpu时间),因此,在运行过程中会有不同的状态,它随着环境要求的变化而变化,具体状态请参考下图:

在父进程fork()衍生出一个过程后,根据CPU当前流程的时间和资源需求,统一内核流程调度程序进行调度,如果进程需要cpu࿰,c;然后,调度程序将根据当前过程的优先级进行调度,从而通知cpu何时处理过程。此时,过程将处于R状态。

󿌢-(running运行状态)#xff0;

R状态包括两种情况:

  1.第一种情况是在Runnnable状态下排队等待cpu处理。

  2.第二种情况是cpu处理running状态;

在运行过程中,用户可能会发送stop状态,从而暂停到后台󿀌此时,过程处于T状态;

T-(stop停止状态)

当然,这个过程也可能不需要cpu处理或操作,或者他自己是一个父进程,有子的过程正在工作,此时将处于sleping状态;

S-(sleeping睡眠状态)#xff0;

工作结束后,它将释放各种资源,然后进入Z状态,

Z-(zombie僵尸)

当父亲的过程被回收时,它将处于完全结束的X状态。

X-(#xff09完全结束;

如图所示,#xff1a;

状态总结:

R状态:包括runnnable和running,这意味着过程正在等待或在cpu上运行。

Sleeping: 包含S、D、K三种状态。

S:可中断睡眠󿀌在等待事件触发/接收指定信号(硬件请求/系统之间的访问)后,进程才会运行。

D:不要中断睡眠�不接收或相应的外部信号,I/O操作通常正在进行中。

K:与D状态相同,但是可以中断。

Stopped:T状态,表示过程已停止󿀌信号通常由用户或其他过程发送。

Zombie:包含X、Z两种状态。

Z:除pid外󿀌释放其他资源,将退出信号发送给父亲进程后进入Z状态。

X: 完全退出状态


僵尸过程危害:
大量的僵尸过程会导致我们系统中没有可用的pid,导致系统问题


如何产生僵尸过程?

1. 子过程结束后,父亲的过程还在运行󿀌此时,所有子进程都将进入僵尸状态,
少量僵尸进程对系统危害不大,但是大量的僵尸过程会拖垮服务器。


4.检查过程状态。

命令1:

ps aux

命令2:

ps -elf

以ps aux为例 。

# ps auxUSER       PID %CPU %MEM    VSZ   RSS TTY   STAT START   TIME COMMANDroot        1  0.0  0.0    2164   648 ?     Ss   08:47     0:00  /usr/lib/systemd/systemdUSER: 	用户PID࿱运行过程a; 	进程ID%CPU:   CPU占用率%%MEM:  内存占用率VSZ:	占用虚拟内存󿀌所有RSSS,包括程序、代码、共享库等:  	占用实际内存 TTY: 	过程运行的终端表示不依赖任何终端STAT:	进程状态		      R 	运行      S 	可中断睡眠 Sleep      D	睡眠不能中断      T 	停止的进程       Z 	僵尸进程      X    死掉的进程      	  Ss  	过程的领导者,父进程	  S<     <过程优先级较高	  SN      N优先级较低的进程	  R+	+这意味着它是前台的进程组	  Sl	      以线程的形式运行	START:	TIME࿱的启动时间a;	过程占用CPU总时间,单位为minuteCOMMAND: 过程文件󿀌PPID进程名   父进程号。

查看指定过程pid

ps aux |grep 服务名。

检查过程树。

首先需要下载软件包:yum install -y psmisc。

例:pstree apache (用户名启动过程)

五、工艺优先级。

优先使用过程nice值来表示。

过程优先级: 0--------139 数值越小,#xff0c;优先级越高。

#xff1高优先级进程a; 获得更多的CPU执行时间 优先执行cpu。

nice值: -20-----19。

nice值设置:rnice  值  pid[root@localhost ~]#  renice 0 93499349 (进程 ID) 旧优先级为 6,新优先级为 0。

六、动态查看过程。

使用命令:top

第一部分:整个统计信息top系统 - 14:22:36 up  4:45,  3 users,  load average: 0.00, 0.00, 0.00Tasks: 206 total,   2 running, 204 sleeping,   0 stopped,   0 zombieCpu(s):  1.6%us,  0.7%sy,  0.0%ni, 96.8%id,  0.9%wa,  0.0%hi,  0.0%si,  0.0%stMem:   4019424k total,  1327584k used,  2691840k free,   131012k buffersSwap:  2047992k total,        0k used,  2047992k free,   650880k cachedload average: 0.23, 0.06, 0.02	  1分钟,5分钟,系统平均负载us󿄕分钟内a;用户占用cpu的百分比  sy:CPU内核占CPU百分比  ni cpu的百分比已经改变了优先级过程所占用的      id:空闲时间cpu    wa:等待CPUIO的时间      hi:硬中断占CPU百分比        si:软中断  st:cpu被盗时间的第二部分:进程信息命令h或?获得帮助M	根据使用内存对P进行排序	按CPU使用排序N	RID按PID的大小排序	反转f进行排序	自定义显示字段,调整字段顺序(选择正行上下箭头调整)1	显示所有CPU的负载W PIDDD环境设置保存top环境 — IDUSER的过程 — PR进程所有者 — NI进程优先级 — nice值。负值表示高优先级󿀌表示低优先级VIRTT — 虚拟内存总量,单位kb。负值表示高优先级󿀌表示低优先级VIRTT — 虚拟内存总量,单位kb。VIRT=SWAP+RESRES — 使用过程中未更换的物理内存大小,单位kb。RES=CODE+DATASHR — 共享内存大小󿀌单位kbS — 进程状态。D=睡眠状态不可中断 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程%CPU — 上次更新到现在CPU时间占百分比%MEM — TIME+ — CPU时间总计,1/100秒COMMAND — 过程名称(命令名/命令行)

七、其他检查服务器性能的命令。

df -Th:查看磁盘信息。

df -Th:查看磁盘信息

free -m:查看内存信息。

lscpu:查看CPU信息。

八、操作控制。操作控制是命令行功能,可以允许shelll 能同时运行多个过程,还可以实现进程管理󿀌例如,可以选择性地暂停和恢复某些过程,让shell在子进程运行期间返回并接受其他命令
前台和后台的过程。


前台:前台进程将占用当前终端,当前终端是该过程的控制终端,该过程将接收键盘产生的输入信号
后台:后台过程没有控制终端,不需要终端交互,不接收终端输入的信号。

fg。

调用& 前台 (单独使用fg命令,调用作业+作业)

bg。

ctrl+z 将(挂起;stop),将bg调整到后台运行状态。

kill

杀死进程。

pkill

批量杀死过程。

(责编:人民网)

分享让更多人看到