进程与资源管理篇(一)
作者:互联网
一、资源管理器
Windows资源管理器
在Windows中可以直观地使用任务管理器来进行进程管理,了解系统的运行状态,比如CPU使用率、内存使用率,磁盘使用率。
使用任务管理器的目的有:
- 利用"应用程序"和"进程"标签来査看系统中运行了哪些程序和进程
- 利用"性能"和"用户"标签来判断服务器的健康状态,查看该程序的资源使用率
- 在"应用程序"和"进程"标签中强制中止任务和进程
Linux资源管理
windows的进程管理更直白,更好看,但是如果管理多个进程,自动化管理进程的启动、结束,重启,那么图形化就显得费劲了,Linux更适合专业技术人员使用。
二、进程
2.1概念
进程:是正在计算机执行的一个程序或命令,每个进程都是一个运行的实体,并占用一定的系统资源
程序:是人使用计算机语言编写的,可以实现特定目标或解决特定问题,并且可以执行的代码集合
2.2进程与程序的关系
- 开发把代码写好,还未运行的时候,只是个静态、程序源代码
- 当运维将开发的代码运行起来之后,就称之为进程(机器上一个在运行的程序)
- 程序运行时,系统为其分配了PID、运行的用户、内存、CPU等使用率
2.3进程与线程
进程(包工头):是源代码,数据的结合体,是一个资源单位,可以在Linux上查到对应信息
线程(工人):才是操作系统去干活的一个工作单位
2.4关于进程fork的概念
我们的操作系统都是一堆进程,系统运行时,就产生了1号进程,然后其他进程都是1号进程创建的子进程,操作系统的运行,就是不断的创建进程、以及销毁进程的过程。
2.5孤儿进程
当父亲进程挂了,导致儿子进程成了孤儿,可以是一个或者多个。孤儿进程会被系统的1号进程收养,并且由1号进程来回收,处理这些孤儿进程,不会对系统产生什么危害。
代码运行孤儿进程
[root@localhost ~]# cat guer.py
#coding:utf-8
import os
import sys
import time
pid = os.getpid()
ppid = os.getppid()
print 'im father: ', 'pid: ', pid, 'ppid: ', ppid
son_pid = os.fork()
print('now song_pid is: ',son_pid)
#执行pid=os.fork()则会生成一个子进程
#返回值pid有两种值:
# 如果返回的pid值为0,表示在子进程当中
# 如果返回的pid值>0,表示在父进程当中
if son_pid > 0:
print 'father going die...'
# 让老父亲,主动退出,挂掉
sys.exit(0)
# 保证主线程退出完毕
# 程序延迟了1秒,还在运行中,儿子进程还未挂,成了孤儿
time.sleep(20)
print 'im child: ', os.getpid(),'now my father is: ', os.getppid()
2.6僵尸进程
父亲进程创建出子进程后,如果子进程先挂了,父进程却不知道儿子进程挂了这件事,就无法正确送走儿子进程,清楚它在系统中的信息,这个儿子进程就成了僵尸进程,会对系统产生危害。(当系统中有了僵尸进程,可以通过ps命令找到它,状态是Z,zombie)
2.6.1代码运行僵尸进程
[root@localhost ~]# cat jiangshi.py
#coding:utf-8
from multiprocessing import Process
import time,os
def run():
print('son_pid: ',os.getpid())
if __name__ == '__main__':
p=Process(target=run)
p.start()
print('father_pid: ',os.getpid())
time.sleep(1000)
2.6.2 如何解决僵尸进程
使用ps -ef命令,可以找出父亲进程和僵尸进程的pid号
- 可以主动杀死父亲进程
- 等程序自动结束,则自动退出所有进程
- 优化代码
三、进程管理命令
3.1 top命令
# 作用:查看服务器的进程占用资源
# 快捷键:
z 打开,关闭颜色
M 将结果按照内存从高到低进行降序排列;
m 切换内存的显示格式。
P 将结果按照CPU使用率从高到低进行排列
1 当服务器有多个cpu 时可以使用该快捷键来切换是否展示显示各个cpu 的详细信息
q 退出
3.1.1系统整体信息
第一行
如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4 就是高负载
获取CPU的信息
查看当前机器的核数
查看当前机器的核数(多核情况,排序,去重,统计)
虚拟机硬件设置
第二行
标签:pid,CPU,print,进程,使用率,os,资源管理 来源: https://www.cnblogs.com/fjh0517/p/16046659.html