什么是进程?
进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就创建了一个进程,在这个过程中,伴随着资源的分配和释放。可以认为进程是一个程序的一次执行过程。
进程创建:
init :第一个进程
父子关系
进程:都由其父进程创建,CoW ,fork(), clone()进程优先级:
系统优先级: 数字越小,优先级越高
0-139 (CentOS4,5) )
各有140 个运行队列和过期队列
0-98 ,99 (CentOS6) )
实时优先级: 99-0 值最大优先级最高nice 值:-20 到19 ,对应系统优先级100-139 或99
Big O :时间复杂 度 ,用时和规模 的 关系
O(1), O(logn), O(n) 线性, O(n^2) 抛物线, O(2^n)进程状态
Linux 内核:抢占式多任务
进程类型:
守护进程: daemon, 在系统引导过程中启动的进程, 和 终端无
关进程
前台进程:跟终端相关,通过终端启动的进程
注意:两者可相互转化
进程状态:
运行态:running
就绪态:ready
睡眠态:
可中断:interruptable
不可中断:uninterruptable
停止态:stopped, 暂停于内存,但不会被调度,除非手动启动
僵死态:zombiepstree :查看进程 -p 把子进程都详细地列出来
ps(process state) 进程状态
ps[OPTION]...支持三种选项:
UNIX 选项 如-A -e
BSD 选项 如a
GNU 选项 如 --help
选项:默认显示当前终端中的进程
a 选项包括所有终端中的进程
x 选项包括不链接终端的进程
u 选项显示进程所有者的信息
f 选项显示进程的父进程
k| --sort 性属性 对属性 排序
o 属性…选项显示定制的信息
pid 、comm 、%cpu 、%mem 、state 、tty 、euser 、ruser
-C 后可跟脚本和命令
STAT :进程状态
R :running
S: interruptable sleeping
D: uninterruptable sleeping
T: stopped
Z: zombie
+: 前台进程
l: 多线程进程
L :内存 分页并带锁
N :低优先级进程
<: 高优先级进程
s: session leader ,会话(子进程)发起者
常用组合:-ef
-e: 显示所有进程
-f: 显示完整格式程序信息
常用组合:-eFH
-F: 显示更完整格式的进程信息
-H: 以进程层级格式显示进程相关信息
常用组合:自定义
-eo pid,tid,class,rtprio,ni,pri,psr,
pcpu,stat,comm
axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,
pid,pcpu,comm
nice: 调整优先级
pri: priority 优先级
psr: processor CPU 编号
rtprio: 实时优先级
示例:ps axo pid,cmd,psr,ni,pri,rtprio
renice –n 10 ping 127.17.0.1 指定命令优先级
Renice 修改优先级
pgrep搜索进程信息
Pgrep –lU wang 真正发起者
Pgrep –t pts/0 谁在终端上登陆
Pgrep –a “bash”
pidof按确切的程序名显示pid
Pidof bash 查看正在运行的进程编号
Ps aux |grep httpd 查看某个服务是否运行
Pidof httpd &> /dev/null ||systemctlrestart httpd
Uptime 显示启动状态
当前时间,系统已启动的时间,当前上线人数,系统平均负载(1,5,10分钟的平均负载,一般不会超过1)
系统平均负载:在特定时间间隔内运行队列中的平均进程数。
通常每个cpu内核的当前活动进程数不大于3,那么系统的性能良好。如果每个cpu内核的任务数大于5,那么此主机的性能有严重问题
如果linux主机是1个双核cpu,当load average为6的时候说明机器已经被充分使用。
top显示进程使用系统资源情况
top :有许多内置命令:
排序:
P :以占据的CPU 百分比,%CPU
M :占据内存百分比,%MEM
T :累积占据CPU 时长,TIME+
首部信息显示:
uptime 信息:l 命令
tasks 及cpu 信息:t 命令
cpu 分别显示:1 ( 数字)
memory 信息:m 命令
退出命令:q
修改刷新时间间隔:s
终止指定进程:k
保存文件:W
选项:
-d #: 指定刷新时间间隔,默认为3秒 秒
-b: 全部显示所有进程
-n #: 刷新多少次后退出
栏位信息简介
us :用户空间
sy :内核空间
ni :调整nice 时间
id :空闲
wa :等待IO 时间
hi :硬中断
si :软中断(模式切换)
st :虚拟机偷走的时间