ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

进程与资源管理篇(一)

2022-03-26 22:34:47  阅读:218  来源: 互联网

标签:pid CPU print 进程 使用率 os 资源管理


一、资源管理器

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有