【0基础Python学习笔记08】-基础知识-LINUX系统进程/内存监控

目录

 

1.6.8 系统监控

(1)进程

(2)buffer/cache/load average

(3)top查看进程资源

(4)free查看内存

(5)查看/过滤/打开/关闭进程

①查看/过滤

②打开/关闭/后台转前台


 

1.6.8 系统监控

(1)进程

进程:进程是程序的一次动态执行;

守护进程:守护进程是在后台运行并提供系统服务的一些进程;

父子进程:当一个进程创建另一个进程时,第1个进程被称为新进程的父进程,而新进程被称为子进程;

僵尸进程:当父进程打开子进程,子进程再打开孙进程,此时关闭父进程则子/孙进程也应该被关闭,而父进程已关闭子进程却未关闭的进程叫做僵尸进程;

如新打开终端相当于在终端内运行bash命令,

进程状态:CPU同一时刻只能执行一个进行,通过中断优先级并行执行多个进程,因为CPU运算速度快,所以看上去像是同时执行多个进程;因此进程有三种状态:

【0基础Python学习笔记08】-基础知识-LINUX系统进程/内存监控_第1张图片

 

(2)buffer/cache/load average

buffer

在内存中开辟空间,存放硬盘需要传送到内存内的数据,待存储到一定数量,再一起交给CPU处理,用以提高内存与硬盘间传递速率

cache

在内存中开辟空间,存放内存中需要传递给CPU的常用的数据,用以提高内存与CPU间传递速率

CPU利用率

上班8小时工作4小时,CPU利用率为0.5

load average

CPU负载,1人1天可做10个任务却只做了2个,CPU负载为.0.2,

正常情况下load average<=0.7*cpu数,

 

​​​​​​​(3)top查看进程资源

LINUX系统终端输入top命令实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器(Ctrl+Alt+delete),默认5s刷新一次;按q/Ctrl+c退出

【0基础Python学习笔记08】-基础知识-LINUX系统进程/内存监控_第2张图片

命令

 

列名

含义

top

第一行

12:38:33

当前时间

up 50 days

系统运行时间,格式为时:分

1 user

当前登录用户数

load average: 0.06, 0.60, 0.48

系统负载三个数值分别为1分钟、5分钟、15分钟前到现在的平均值

第二行Tasks

29 total

进程总数

1 running

正在运行的进程数

28 sleeping

睡眠的进程数

0 stopped

停止的进程数

0 zombie

僵尸进程数

第三行Cpu(s)

0.3% us

用户进程占用CPU百分比

1.0% sy

内核的系统进程占用CPU百分比

0.0% ni

用户进程空间内改变过优先级的进程占用CPU百分比

98.7% id

空闲CPU百分比

0.0% wa

等待输入输出的CPU时间百分比

0.0% hi

硬件中断占用CPU时间的百分比

0.0% si

软件中断占用CPU时间的百分比

第四行

Mem

内存

total

总内存

used

已用内存

free

空闲内存

buffers

缓冲区

第五行

Swap

交换虚拟内存

total

总虚拟内存

used

已用虚拟内存

free

空闲虚拟内存

cached

 

进程信息

PID

进程id

PPID

父进程id

RUSER

Real user name

UID

进程所有者的用户id

USER

进程所有者的用户名

GROUP

进程所有者的组名

TTY

启动进程的终端名。不是从终端启动的进程则显示为 ?

PR

优先级

NI

nice值,负值表示高优先级,正值表示低优先级

P

最后使用的CPU,仅在多CPU环境下有意义

%CPU

上次更新到现在的CPU时间占用百分比

TIME

进程使用的CPU时间总计,单位秒

TIME+

进程使用的CPU时间总计,单位1/100秒

%MEM

进程使用的物理内存百分比

VIRT

进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

SWAP

进程使用的虚拟内存中,被换出的大小,单位kb。

RES

进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

CODE

可执行代码占用的物理内存大小,单位kb

DATA

可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb

SHR

共享内存大小,单位kb

nFLT

页面错误次数

nDRT

最后一次写入到现在,被修改过的页面数。

S

进程状态:=不可中断的睡眠状态;R=运行;S=睡眠;T=跟踪/停止;Z=僵尸进程

COMMAND

命令名/命令行

WCHAN

若该进程在睡眠,则显示睡眠中的系统函数名

Flags

任务标志,参考sched.h

(4)free查看内存

命令

说明

free

显示内存使用状态

free-m

以MB为单位显示

free-h

以GB为单位显示

【0基础Python学习笔记08】-基础知识-LINUX系统进程/内存监控_第3张图片

free

1

2

3

4

5

6

total

used

free

shared

buffers

cached

1

Mem

总内存

被分配为buffers+cached的内存

总内存中未被分配内存

多进程共享内存

被分配为buffers但未被占用的内存

被分配为cached但未被占用的内存

2

buffers/cache

-

已用的buffers+cached的内存

总内存中未被占用内存

 

 

 

3

swap

总交换内存

已用交换内存

未用交换内存

 

 

 

若将上表看做二维数组,则有f(1,1)=f(1,2)+f(1,3)=f(2,2)+f(3,3);f(2,2)=f(1,2)-f(1,5)-f(1,6);f(1,2)=f(1,5)+f(1,6)+f(2,2);f(2,3)=f(1,3)+f(1,5)+f(1,6);

(5)查看/过滤/打开/关闭进程

①查看/过滤

命令

说明

查看

ps

查看当前进程的状态

ps-aux

查看用户相关的所有进程,如查看所有包含init但不包含grep,即不包含本进程的所有进程的命令:ps aux | grep init | grep -v grep

 

 

USER

PID

%CPU

%MEM

VSZ

RSS

TTY

STAT

START TIME

COMMAND

 

用户

进程ID

CPU占有率

内存占有率

虚拟内存

物理内存

运行终端

当前状态

开始时间

进程命令

pstree

以树状图显示程序,pstree 3列出pid为3的进程状态树

jobs

查看所有后台运行进程

过滤

prep ‘root’ /etc/passwd

一行一行过滤路径/etc/passwd文件内所有包含root的行,如查找所有可登陆的用户信息:grep ‘/bin/bash’ /etc/passwd

grep -v ‘grep’

反向过滤,过滤掉所有与grep相关的行

②打开/关闭/后台转前台

 

 

 

用终端打开/关闭火狐浏览器应用程序进程:

 

前台运行

(占用终端,此时终端不可用)

后台运行

打开

直接输入应用名称【firefox】

桌面双击

【firefox &】

关闭

【Ctrl+c】

先【ps aux | grep ‘firefox| grep -v ‘grep’】查找进程,再【kill -9 pid】强制关闭进程ID所示进程

先【jobs】查看后台运行进程工作号,

再【kill -9 %工作号】强制关闭

 

 

【pkill -9 ‘firefox’】强制关闭全部包含firefox的进程

后台转前台

 

先查看后台进程工作号【jobs】,

再转到前台运行【fg %工作号】

【0基础Python学习笔记08】-基础知识-LINUX系统进程/内存监控_第4张图片

你可能感兴趣的:(Python,LINUX,监控系统,进程,average,top/free)