top命令用于实时显示 process 的动态,与此同时,该命令还提供了一个可调整参数的交互界面,用户可以根据需要,人性化地定制自己的输出。

d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
S : 累积模式,会将己完成或消失的子进程 ( dead child process ) 的 CPU time 累积起来
s : 安全模式,将交谈式指令取消, 避免潜在的危机
i : 不显示任何闲置 (idle) 或无用 (zombie) 的进程
n : 更新的次数,完成后将会退出 top
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内

top 相关监控项:

多长时间了,用了多少,怎么用的?

[oracle\@oracle-test /home/oracle]\$ top
--当前时间 16时40分16秒 启动了76天,1小时,同时在线2个用户,服务器负载:1min的负载,5min的负载,15min的负载
top - 16:40:16 up 76 days,  1:00,  2 users,  load average: 0.00, 0.02, 0.05
--当前有311个工作任务,1个正在运行,310个在休眠,0个停止的,0个僵尸进程
Tasks: 311 total,   1 running, 310 sleeping,   0 stopped,   0 zombie
--用户使用CPU的百分比:us 用户态,sy 内核态,ni 优先级,id cpu空闲度,wa 等待的状态进程占cpu的百分比,hi 硬中断,si 软中断,st 虚拟机占用物理机的百分比
%Cpu(s):  0.4 us,  0.3 sy,  0.0 ni, 99.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
--物理总内存,空闲,已用,用于缓存的大小
--buff/cache:用于缓存的物理内存大小,buffer和cache可缩短IO调用时间,所以该值大说明cache住的文件多,命中cache的文件多,要比调用磁盘快,IO必定降低
KiB Mem : 16265972 total,   841224 free,  1766728 used, 13658020 buff/cache\
--虚拟总内存,空闲,已用,可供使用的内存大小
--avail Mem:可供使用的内存大小,包括free和buff/cache,因为buff/cache在内存不足时可以被释放
KiB Swap: 16777212 total, 16299516 free,   477696 used.  5133876 avail Mem

内存怎么计算:

Total=free+used+buff/cache
avail Mem=free+buff/cache
内存使用率=used/total

进程相关字段啥意思:

PID:  进程号
USER:	用户
PR:	进程运行优先级,值越小优先级越高
NI:	进程nice值,表示进程可被执行的优先级的修正数值
VIRT:	虚拟内存大小
RES:	常驻内存,是进程使用的且未被换出的物理内存大小
SHR:	共享内存大小
S:	运行状态(R:运行中,S:休眠中,T:跟踪/停止、Z:假死中,D:不可中断的休眠状态)
%CPU:	cpu使用率
%MEM:	内存使用率
TIME+:	占用cpu总时长
COMMAND:	运行命令,按c键可查看全部

进程在干嘛 僵了没?Z 了没!:

--进程号/用户/优先级/进程NI值/虚拟内存大小/常驻内存/共享内存/运行状态/CPU使用率/内存使用率/占用CPU总时长/运行命令
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND\
12402 dmdba     20   0 1595008 443500   2972 S   2.3  2.7   1182:45 dmhs\_server\
31800 cloudwa+  20   0 2172352 100548  15464 S   2.0  0.6 899:33.48 cloudwalker-eng\
2467 appadmin  20   0  660780  24832   1936 S   1.3  0.2 669:14.23 gsd-color\
31789 cloudwa+  20   0  723476  12712   6404 S   1.0  0.1 308:50.68 cloudwalker-man\
9 root      20   0       0      0      0 S   0.3  0.0  30:49.00 rcu\_sched\
31742 cloudwa+  20   0  719668  12184   4944 S   0.3  0.1  22:17.16 cloudwalker-upg\
1 root      20   0  191584   3576   1856 S   0.0  0.0  16:37.76 systemd\
2 root      20   0       0      0      0 S   0.0  0.0   0:02.27 kthreadd\
4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H\
6 root      20   0       0      0      0 S   0.0  0.0   0:14.55 ksoftirqd/0

谁连到了我的pid,给我出来!

会话 用户 机器 程序 应用 等待... ...

--进程ID(spid是使用top命令查看到的 pid)
select s.paddr,s.sid,s.serial#,s.username,s.osuser,s.process,s.machine,s.program,s.command,s.seq#,s.event#,s.event,p.spid,p.username,p.program
from v`$session s, v$`process p
where s.paddr = p.addr
and p.spid in ('1121','11404','19806','23710','2235','26093');