地址空间:
(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


备份地址: 【进程管理命令