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

打印 上一主题 下一主题

主题 882|帖子 882|积分 2648

一.历程的定义

步伐:
文件,一般是二进制,静态 /usr/sbin/httpd,/usr/sbin/sshd
步伐是二进制文件(口试题之一)
历程:
是步伐运行的过程, 动态,有生命周期的,
可以产生和消亡的(历程是已启动的可实行步伐的运行实例,实例即运行可实行步伐)。
线程:
线程是历程之内独立实行的一个单元。对于操作系统而言,其调理单元是线程;
一个历程至少包括一个线程,通常将该线程称为主线程;
一个历程从主线程的实行开始,进而创建一个或多个附加线程,就是所谓基于多线程的多使命.
二.历程的生命周期

父历程:
步伐运行时产生的第一个历程,任何历程都可以作为父历程创建子历程。
子历程:
由父历程使用fork()函数完全复制自己的地点空间创建出来的新的历程就是子历程,
子历程继承父历程的安全性身份、过去和当前的文件描述符、端口和资源特权、环境变量,
以及步伐代码,随后,子历程可能exec自己的步伐代码。
poccess id:   pid    历程号!
为父历程跟踪和安全性以及管理职员的控制和管理所需,
父历程会给子历程分配一个唯一的历程id,这个id就是pid
三.历程的状态

在多使命处置惩罚操作系统中,每个CPU(或每个焦点)在一个时间点上只能处置惩罚一个历程。在历程运行时,它对CPU 时间和资源分配的要求会不停变化(历程不会连续的占用cpu,而是根据自己的需求来决定是否需要使用cpu时间),所以历程在运行的时候会有差别的状态,它随着环境要求而改变,详细的状态可以参考下图来看:
一个历程被父历程fork()衍生出来之后,会统一由内核历程调理步伐来根据当前这个历程对于cpu的时间和资源的需求来举行调理,如果历程需要使用cpu,那么调理步伐会根据当前历程的优先级来举行调理,从而关照历程什么时间会被cpu举行处置惩罚。此时历程会处于R状态
R-(running运行状态)
R状态包括两种情况:
  1.第一种情况是正在排队等待cpu的处置惩罚处于Runnable状态
  2.第二种情况是正在被cpu处置惩罚处于running状态;
历程在运行的时候可能由用户发出一个stop的状态,从而停息到背景,这个时候历程就处于T状态;
T-(stop停止状态)
当然历程也可能不需要cpu处置惩罚或者是运算或者他自己是一个父历程,有子历程正在工作,这个的时候就会处于sleeping状态;
S-(sleeping睡眠状态)
当历程结束工作之后,会开释掉自己的各种资源,然后进入到Z状态,
Z-(zombie僵尸状态)
当父历程接纳之后就会处于彻底终结的X状态
X-(彻底终结)
详细如图所示:

状态总结:
R状态:包罗runnable和running,表示历程正在等待运行或者是正在cpu上运行
Sleeping: 包罗S、D、K三种状态
S:可中断睡眠,历程在等待变乱触发/接收到指定的信号(硬件哀求/系统之间的访问)才会运行起来。
D:不可中断睡眠,不会接收或者是相应外界传来的信号,通常情况下正在举行I/O操作
K:和D的状态相同,但是可以被中断
Stopped:T状态,表示历程被停止,通常是由用户或者是其他历程发送的信号。
Zombie:包罗X、Z两种状态
Z:除了pid之外,其他的资源都已经开释掉,给父历程发送退出信号之后进入到Z状态
X: 彻底退出状态

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

僵尸历程如何产生?
1. 子历程结束运行后,父历程还在运行,这个时候全部的子历程就会进入僵尸状态,
少量的僵尸历程对系统危害不大,但是大量的僵尸历程会拖垮服务器。

四.查看历程状态


命令1:
  1. ps aux
复制代码
命令2:
  1. ps -elf
复制代码
以ps aux为例 
  1. # ps aux
  2. USER       PID %CPU %MEM    VSZ   RSS TTY   STAT START   TIME COMMAND
  3. root        1  0.0  0.0    2164   648 ?     Ss   08:47     0:00  /usr/lib/systemd/systemd
  4. USER:         运行进程的用户
  5. PID:         进程ID
  6. %CPU:   CPU占用率
  7. %MEM:  内存占用率
  8. VSZ:        占用虚拟内存,包括程序、代码、共享库等所有的
  9. RSS:          占用实际内存 驻留内存
  10. TTY:         进程运行的终端,?表示不依赖于任何的终端
  11. STAT:        进程状态               
  12.       R         运行
  13.       S         可中断睡眠 Sleep
  14.       D        不可中断睡眠
  15.       T         停止的进程
  16.       Z         僵尸进程
  17.       X    死掉的进程
  18.       
  19.           Ss          s进程的领导者,父进程
  20.           S<     <优先级较高的进程
  21.           SN      N优先级较低的进程
  22.           R+        +表示是前台的进程组
  23.           Sl              以线程的方式运行       
  24. START:        进程的启动时间
  25. TIME:        进程占用CPU的总时间,单位是minute
  26. COMMAND: 进程文件,进程名
  27. PPID   父进程进程号
复制代码
查看指定历程的pid
  1. ps aux |grep 服务名
复制代码
查看历程树
需要先下载一个软件包:yum install -y psmisc
举例:pstree apache (启动历程的用户名)
五.历程优先级

历程优先级使用nice值来表示
历程优先级: 0--------139 数值越小,优先级越高
高优先级历程: 获取cpu更多的实行时间 cpu优先实行
nice值: -20-----19
  1. nice值设定:
  2. rnice  值  pid
  3. [root@localhost ~]#  renice 0 9349
  4. 9349 (进程 ID) 旧优先级为 6,新优先级为 0
复制代码
六.动态查看历程

使用命令:top
  1. 第一部分:系统整体统计信息
  2. top - 14:22:36 up  4:45,  3 users,  load average: 0.00, 0.00, 0.00
  3. Tasks: 206 total,   2 running, 204 sleeping,   0 stopped,   0 zombie
  4. Cpu(s):  1.6%us,  0.7%sy,  0.0%ni, 96.8%id,  0.9%wa,  0.0%hi,  0.0%si,  0.0%st
  5. Mem:   4019424k total,  1327584k used,  2691840k free,   131012k buffers
  6. Swap:  2047992k total,        0k used,  2047992k free,   650880k cached
  7. load average: 0.23, 0.06, 0.02          1分钟,5分钟,15分钟之内系统的平均负载
  8. us:用户占用的cpu的百分比  
  9. sy:内核占用的cpu的百分比  
  10. ni 改变过优先级的进程占用的cpu的百分比      
  11. id:cpu的空闲时间   
  12. wa:cpu的IO等待的时间      
  13. hi:硬中断占用的cpu的百分比        
  14. si:软中断  
  15. st:cpu被偷走的时间
  16. 第二部分:进程信息
  17. 命令
  18. h或?获得帮助
  19. M        按内存的使用排序
  20. P        按CPU使用排序
  21. N        以PID的大小排序
  22. R        对排序进行反转
  23. f        自定义显示字段,调整字段顺序(选中正行上下箭头调整)
  24. 1        显示所有CPU的负载
  25. W 保存top环境设置
  26. PID — 进程id
  27. USER — 进程所有者
  28. PR — 进程优先级
  29. NI — nice值。负值表示高优先级,正值表示低优先级
  30. VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
  31. RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
  32. SHR — 共享内存大小,单位kb
  33. S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
  34. %CPU — 上次更新到现在的CPU时间占用百分比
  35. %MEM — 进程使用的物理内存百分比
  36. TIME+ — 进程使用的CPU时间总计,单位1/100秒
  37. COMMAND — 进程名称(命令名/命令行)
复制代码
七.其他查看服务器性能的命令

df -Th:查看磁盘信息
free -m:查看内存信息
lscpu:查看CPU信息
八.作业控制

作业控制是一个命令行功能,可以允许一个shell 能够同时运行多个历程,还可以实现历程管理,例如可以选择性停息、恢复某些历程,让shell可以在子历程运行期间返回接受其他命令<br />历程前台、背景<br />前台:前台历程会占用当前终端,当前终端为该历程的控制终端,历程会接收键盘产生的输入信号<br />背景:背景历程没有控制终端,不需要终端的交互,不接收终端输入的信号
fg
调用& 前台 (单独使用fg命令,调用作业中有+作业)
bg
有前台实行的命令ctrl+z 挂起(stop),由bg调到背景运行状态
kill
杀死历程
pkill
批量杀死历程


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南七星之家

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表