地址空间:
(1)线性地址
(2)物理地址
MMU:Memory Management Unit,CPU中的一个芯片,负责进程页面和页框之间的转换
TLB:Translation Lookaside Buffer,旁路转换缓冲,负责页表缓冲
vsz:虚拟内存集
rss:常驻内存集。不能交换出去的内存
VIRT:virtual memory usage 虚拟内存
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
RES:resident memory usage 常驻内存
1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小
SHR:shared memory 共享内存
1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来
100-139:用户可以调整
0-99:内核可以调整
进程管理命令:
ps:process state
SysV风格:-
e:显示所有线程
l:显示长格式
F|f:更多的字段
BSD风格:
a:显示所有和终端有关的进程
u:
x:显示与终端无关的进程
进程的分类:
与终端相关的进程
跟终端无关的进程
进程状态:
D: 不可中断的睡眠
R:运行或就绪
S:可中断睡眠
T:停止
Z:僵死
<:高优先级的进程
N:低优先级的进程
l:多线程进程
+:前台进程组中的进程
s:会话进程的组长
pstree:显示进程数
pgrep/pkill:
pgrep bash(类似pidof,根据进程名查找进程的pid)
pgrep -u root bash
top:
M:根据驻留内存大小进行排序
P:根据CPU使用百分比进行排序(默认)
T:根据累计时间进行排序
l:是否显示平均负载和启动时间
t:是否显示进程和CPU状态相关信息
m:是否显示内存相关信息
c:是否显示完整的命令行信息
q:退出top
k:终止某个进程
-d:指定延迟时长,单位是秒
-b:批模式
-n #:在批模式下,共显示多少秒
kill:
kill PID
killall PROCESS_NAME
前台-->后台:
Ctrl+z:进程转入后台,但是会停止
COMMAND &:启动时就让进程在后台运行
bg [%job_id]:让命令在后台继续运行
fg [%job_id]:占据了命令提示符的
jobs:查看后台所有的作业,会显示job_id
+:命令将默认操作的作业
-:命令将第二个默认操作的作业
kill %job_id:终止某作业
vmstat:系统状态查看命令
vmstat 1:每隔一秒刷新一次
vmstat 1 5:每隔一秒刷新一次,但只显示5次
uptime:查看运行时间
cat /proc/meminfo:查看内存信息
调整已经启动的进程nice值:
renice NI PID
调整未启动的进程的nice值:
nice -n NI COMMAND
nice值:优雅的,友好的,普通用户只能调大,root用户可以调小
nice值:-20~+19对应于100~139
备份地址: 【进程管理命令】