1. 进程管理事例情况
-
当一个程序编写得不完善,导致在内存中产生一个有问题的进程时,需要找到此进程并移除(kill)
-
当同时有多个任务在系统中运行,需要其中最重要的一项优先执行(priority/nice)
-
当系统比较忙碌,整个系统资源快要使用殆尽时,需要找出最耗资源的那个进程,并移除,使得系统恢复正常
2.进程的观察
2.1 ps
ps.png作用:获取系统某个时间点的进程运行情况。
2.1.1 ps -l
查看当前用户的bash进程
ps-l.png相关字段说明
-
F :process flags 进程旗标,说明这个进程的总结权限,常见号码有
-
4:表示此进程的权限为 root;
-
1:表示此子进程仅进行复制(fork)而没有实际执行(exec);
-
S:代表这个进程的状态 (STAT),主要的状态有:
- R(Running):该程序正在运作中;
- S(Sleep):该程序目前正在睡眠状态(idle),但可以被唤醒(signal);
- D :不可被唤醒的睡眠状态,通常这支程序可能在等待 I/O 的情况(ex>打印)
- T :停止状态(stop),可能是在工作控制(背景暂停)或除错 (traced) 状态;
- Z (Zombie):僵尸状态,进程已经终止但却无法被移除至内存外。
-
UID/PID/PPID: 此进程被该UID所拥有/进程的PID码/此进程的父进程 PID码;
-
C:代表 CPU 使用率,单位为百分比;
-
PRI/NI:Priority/Nice,代表此进程被 CPU 所执行的优先级,数值越小代表该进程越快被 CPU 执行;
-
ADDR/SZ/WCHAN:都与内存有关,ADDR是kernel function,指出该进程在内存的哪个部分,如果是个 running 的进程,一般就会显示『 - 』 / SZ 代表此进程用掉多少内存 / WCHAN 表示目前进程是否运作中,若为 - 表示正在运作中;
-
TTY:登入者的终端机位置,若为远程登录则使用动态终端接口 (pts/n);
-
TIME:进程实际花费 CPU 运作的时间(不是系统时间);
-
CMD:command,造成此进程的触发程序指令;
2.1.2 ps aux
查看系统所有运作的进程
psaux.png相关字段说明
-
VSZ :该 process 使用掉的虚拟内存量 (Kbytes);
-
RSS :该 process 占用的固定的内存量 (Kbytes);
-
TTY :该 process 是在那个终端机上面运作,若与终端机无关则显示 ?;
另:ps aux 默认以PID 升序显示。
2.2 top
持续获取系统的进程运行情况。
相关参数说明
-
d :后面可以接秒数,就是整个进程画面更新的秒数。预设是 5 秒;
-
b :以批次的方式执行top,通常会搭配数据流重导向来将批次的结果输出成为文件;
-
n :与 -b 搭配,意义是,需要进行几次 top 的输出结果;
-
p :指定观察监测某个 PID;
2.2.1 top 内容
第一部分:
-
Line_1:目前的时间, 开机到目前为止所经过的时间,已经登入系统的用户人数,系统在 1, 5, 15 分钟的平均工作负载(越小代表系统越闲置,若高于1,则说明系统进程有些过繁复);
-
Line_2:目前进程的总量,在各个状态(running, sleeping, stopped, zombie)的进程数;
-
Line_3:cpu的整体负载情况,如果是多核心的设备,可以按下数字键『1』来切换成不同 CPU 的负载率;
-
Line_4:物理内存的使用情况;
-
Line_5:虚拟内存的使用情况,如果 swap 被用的很大量,表示系统的物理内存实在不足;
-
Line_6:当在 top 程序当中输入指令时,显示状态的地方;
第二部分为各个进程的使用情况。
2.2.2 top执行时的按键指令
-
? :显示在 top 当中可以输入的按键指令;
-
P :以 CPU 的使用资源排序显示;
-
M :以 Memory 的使用资源排序显示;
-
N :以 PID 来排序显示;
-
T :由该 Process 使用的 CPU 时间累积 (TIME+) 排序;
-
k :给予某个 PID 一个讯号 (signal) ;
-
r :给予某个 PID 重新制订一个 nice 值;
-
q :离开 top 软件的按键;
网友评论