day17学习笔记(3月23日)
进程资源管理
什么是资源管理
硬件角度
磁盘资源
- 磁盘的容量空间,可以存储电影、文档、数据等)
- 磁盘的性能,机械硬盘读写慢容量大且价格便宜,固态硬盘读写速度块容量小价格昂贵
内存资源
- 计算机运行的程序,都会加载到内存,然后cpu去内存读取
- 内存容量大小,速度由其硬件性能有关
cpu资源
- cpu的核心和线程决定性能
网络资源
- 网络数据的吞吐量(收发数据)
软件角度,通过资源管理器查看资源使用情况
进程是正在执行的一个程序或命令,每个进程都是一个运行的实体,并占用一定的系统资源。(程序是人使用计算机语言编写的可以实现特定目标或解决特定问题的代码集合。)
操作系统会创建大量内核进程,由操作系统运行
进程和程序的关系:
- 父子进程的理解
- 孤儿进程:当父进程挂了,子进程就变成了孤儿进程,孤儿进程会被1号进程回收并释放,不占用系统资源。
- 僵尸进程:由于子进程挂了,父进程未清楚已挂的子进程,不释放已挂子进程,占用系统的资源,可以使用ps命令或者top命令查看(zombie僵尸进程),只要将父进程杀死即可释放资源。
进程资源的常用命令
ps命令
命令解释:ps(process status 进程状态)
语法:ps [参数选项]
参数:
linux标准参数用法
-e # 显示所有进程
-f # 显示进程详细
-p # 指定pid,显示其信息,如 ps -fp 2609
-C # 指定进程的名字查看,如ps -fC sshd
-U # 指定用户名,查看用户进程信息 ps -Uf yuchao01
# UNIX风格,没有短横线
a # 显示所有终端、所有用户执行的进程
u # 以用户显示出进程详细信息
x # 显示操作系统所有进程信息
f # 显示进程树形结构
o # 格式化显示进程信息,指定如pid
k # 对进程属性排序,如k %mem ,正序排序 ,k -%mem 逆序
--sort,再进行排序,如 --sort %mem 根据内存使用率显示
STAT:进程目前状态,可以man ps查看细节
R:正在运行中
S:终端睡眠中,可以被唤醒
D:不可中断睡眠
T:进程被暂停
Z:已停止,无法由父进程正常终止,变成了zombie僵尸进程
进程额外字符
+:前台进程,比如R+,程序运行在前台,一旦终止,程序结束,数据丢失。
I:多线程进程,如Sl表示程序是多线程
N:低优先级进程,如Sn表示优先级很低的进程
<:高优先级进程
s:进程领导者(含有子进程),如Ss表示父进程
L:锁定到内存中
pstree命令
作用:以树状图,显示父进程和子进程的关系
需要安装 yum install pstree -y
-p 显示pid
-u 显示用户切换
-H pid 高亮显示进程(没什么用)
-a 显示程序的完整命令,以及进程层级关系
pidof命令
pidof命令
指定进程名,显示出其pid
lsof命令
命令解释:list open files ,是一个工具能列出列出系统打开的文件
语法:lsof 参数 对象
参数:
-c # 指定进程名,打开了哪些系统文件,如lsof -c nginx
-i # 显示符合条件的进程,如ipv[46][protocol][@host|addr][:service|port]
-p # 显示指定pid打开的文件
-u # 显示指定用户uid打开的文件,以及具体进程信息
+d # 显示文件夹下被打开的文件有哪些,如 lsof +d /var/log/nginx/
+D # 递归列出目录下哪些文件被进程打开
-n # 不显示主机名,直接显示ip
-P # 不显示端口名,直接显示端口号
-s # 列出文件大小
系统整体查看命令
top命令
作用:以动态的形式查看系统的资源情况
快捷键:
z::打开,关闭颜色
M(大写):表示将结果按照内存(MEM)从高到低进行降序排列;
m(小写):切换内存memmory的显示格式。
P(大写):,表示将结果按照CPU 使用率从高到低进行降序排列;
1 :当服务器拥有多个cpu 的时候可以使用“1”快捷键来切换是否展示显示各个cpu 的详细信息;
q:退出
htop
和top命令相似,可以通过鼠标完成操作,需要安装
M:按照内存使用百分比排序,对应MEM%列;
P:按照CPU使用百分比排序,对应CPU%列;
T:按照进程运行的时间排序,对应TIME+列;
K:隐藏内核线程;
H:隐藏用户线程;
#:快速定位光标到PID所指定的进程上。
/:搜索进程名
glances
使用python开发的工具
killall、pkill关闭进程
kill
作用:找到进程的pid,然后杀死进程
信号:
1 #重载信号,修改配置文件后可以使用kill -1 pid 进行重新加载
9 #强制杀死进程,当遇到杀不死的进程才使用,否则可能带来一些错误
15 #当不加信号的时候默认使用15信号
pkill (不建议使用)
作用:pkill 进程名 #直接杀死和进程名相关的所有进程
pkillall 不建议使用
前后台命令
前台运行
1、程序运行在当前的终端,所有的信息都输出到屏幕上,占用当前终端,当前终端无法继续使用
2、如果终端异常关闭,导致程序会自动退出
后台运行
不会占用终端,程序在系统后台运行,终端关闭,程序也可继续运行。
命令集合
command & # 未启动的command放入后台去运行
jobs # 查看后台进程列表
ctrl + z # 暂停进程
bg # 程序放入后台运行,和 & 一样
fg # 将后台任务放入前台执行