进程管理
进程简介
什么是进程
进程是已启动的可执行程序的运行实例,进程有以下组成部分:
• 已分配内存的地址空间;
• 安全属性,包括所有权凭据和特权;
• 程序代码的一个或多个执行线程;
• 进程状态。
程序: 二进制文件,静态 /usr/bin/passwd ,/usr/sbin/useradd
进程: 是程序运行的过程, 动态,有生命周期及运行状态。
进程的生命周期
父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。
每个新进程分配一个,唯一的进程 ID (PID),满足跟踪安全性之需。
任何进程都可以创建子进程。
所有进程都是第一个系统进程的后代。
Centos5/6系统进程: init
Centos7系统进程: systemd
进程状态
进程状态产生的原因:
在多任务处理操作系统中,每个CPU(或核心)
在一个时间点上只能处理一个进程。
在进程运行时,它对CPU 时间和资源分配的要求会不断变化,
从而为进程分配一个状态,它随着环境要求而改变。
进程管理process
静态查看进程ps
静态查看进程ps
命令ps aux
ps aux输出的字段含义:
USER:运行进程的用户
PID:进程id
%CPU:CPU占用率
%MEM:内存占用率
VSZ:占用虚拟内存
RSS:占用实际内存
TTY:进程运行的终端
STAT:进程状态(R运行,S睡眠sleep,T停止的进程,Z僵尸进程,X死掉的进程)
START:进程的启动时间
TIME:进程占用CPU的总时间(时间:秒)
COMMAND:进程文件,进程名
进程排序
命令:ps aux --sort进程字段
以CPU占比排序为例(减号是降序)
ps aux --sort-%cpu
进程的父子关系
命令
ps -ef
查看进程父子关系,观察pid和ppid,ppid是父进程
自定义显示字段
命令 ps axo
如自定义显示用户名、进程ID、进程名:
动态查看进程top
VIRT:virtual memory usage 虚拟内存(需要这些内存,但并没有占满)
RES:resident memory usage 常驻内存(用了多少内存)
SHR:shared memory 共享内存(1、除了自身进程的共享内存,也包括其他进程的共享内存
2、共享内存大小公式:RES – SHR)
top常用内部指令
h|?帮助
M 按内存的使用排序
P 按CPU使用排序
N 以PID的大小排序
< 向前> 向后
z 彩色,Z设置彩色,使用数字调整
top小技巧
每一秒刷新一次top -d 1
查看指定进程1020的动态消息
top -d 1 -p 1020
查看1020号和1号进程
top -d 1 -p 1020,1
使用信号控制进程kill
列出所有支持的信号:
kill -l
正常终止进程:
kill -15 进程号
强制终止进程:
kill -9 进程号
进程优先级nice
简介
Linux 进程调度及多任务
每个CPU在一个时间点上只能处理一个进程,通过时间片技术,来同时运行多个程序。
优先级范围和特性
系统中的两种优先级:在top中显示的优先级有两个,PR值和nice值
NI: 实际nice值
PR(+20): 将nice级别显示为映射到更大优先级队列,-20映射到0,+19映射到39
优先级特性:
nice 值越大: 表示优先级越低,例如+19
nice 值越小: 表示优先级越高,例如-20
查看进程的nice级别
ps axo pid,command,nice --sort=-nice
启动具有不同nice级别的进程
默认情况:启动进程时,通常会继承父进程的 nice级别,默认为0。
手动启动不同nice:
nice -n nice值 进程
更改现有进程的nice级别
renice nice值 进程号
作业控制系统jobs
作业控制是一个命令行功能,也叫后台运行。
关键词介绍:
foreground:
fg 前台进程:是在终端中运行的命令,占领终端。
background:
bg 后台进程:没有控制终端,它不需要终端的交互。看不见,但是在运行。
查看后台进程
jobs
调动后台程序至前台
fg 作业序号
终止后台进程
kill %作业序号
注:注意,“kill 1” 和 “kill %1” 不同,前者终止PID为1的进程,后者杀死作业序号为1的后台程序。
虚拟文件系统proc
简介:虚拟文件系统:采集服务器自身 内核、进程运行的状态信息
CPU:/proc/cpuinfo
内存:/proc/meminfo
内核:/proc/cmdline