进程是程序运行中的实例
在linux中我们可以通过ps aux
或 ps -ef
来查看我们系统中运行的进程情况,那么对于每列表示大家都清楚吗?
看看这个关于ps命令的说明:
“?”表示无终端运行,一般为系统进程。
进程是加载在内存中的一段指令
我们也可以通过指定格式只输出我们想看的信息
//可按指定格式输出进程列
ps ao [options]
%p:进程PID
%C:CPU占用率
%c:命令
%U:什么用户执行的
top 资源监控器
CPU load average CPU在1、5、15分钟的平均负载
它是基于操作系统的内核的数量决定的,一般可以简单粗暴的理解为内核load之和。那么什么时候能说明CPU负载过高了呢?一般业界能够被接受的值是, load average <= CPU核数 *0.7,接近或大于该值,我们就该优化系统和程序了。
top交互命令
C 切换显示命令名称和完整命令行
M 可按照内存占用排序
P 根据CPU使用百分比排序
T 根据时间排序
F 可以选择显示的内容
L 查找进程名
K 结束进程kill pid
S 修改刷新时间
进程优先级
进程的nice值影响优先级,值范围为-20到19,缺省为0,数值越大,优先级越高
可通过ps -o comm,nice查看
PR:内核优先级 NI:用户优先级
总计是20 ,如果用户修改了NI优先级>PR内核优先级,表示由用户调度该程序。
renice 可调整优先级
$ renice -5 -p 5200 #将PID为5200的进程的niceness设为-5
$ renice -5 -u xie #将属于用户xie的进程的niceness设为-5
$ renice -5 -g group1 #将属于group1组的程序的niceness设为5
孤儿进程(对系统无危害)
指父进程结束后,子进程还存在,会被其它进程接管
//rhel 7以前的linux,子进程由init进程接管,父进程PID为1。rhel 7以后由systemd接管,父进程PID为1960
僵尸进程 Z(影响系统资源,占用进程ID)
指子进程结束后,父进程在等待子进程响应,子进程无法响应,进入死循环。