性能分析工具,查看系统中资源占用情况
举例:
top - 16:12:03 up 7:09, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 343 total, 2 running, 341 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1001332 total, 426080 free, 234896 used, 340356 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 533452 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14715 root 20 0 146292 2168 1368 R 5.6 0.2 0:00.04 top
1 root 20 0 52252 6632 3916 S 0.0 0.7 0:07.80 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.12 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.15 ksoftirqd/0
第一行为当前的系统的一些信息:
top - 16:12:03(当前时间) up 7:09(系统运行的时间,当前显示为7时9分), 2 users(在线人数), load average: 0.00, 0.01, 0.05(系统平均负载,单核中负载应位于0-1之间超过1就得引起注意,多核中不会超过cpu的总核数)
第二行为当前的进程信息
Tasks: 343 total,(当前进程总数) 2 running(当前正在运行的进程数), 341 sleeping(睡眠的进程总数), 0 stopped,(停止了的进程数) 0 zombie(僵死无响应的进程数)
第三行为当前的CPU信息
%Cpu(s): 0.0 us(用户cpu运行占比), 0.2 sy(内核空间CPU占比), 0.0 ni(
用户进程空间内改变过优先级的进程占用CPU百分比), 99.8 id(
空闲CPU百分比), 0.0 wa(等待录入录出的CPU时间百分比), 0.0 hi(硬件CPU中断占比), 0.0 si(软件CPU中断占比), 0.0 st(虚拟机CPU占比)
第四行为物理内存使用情况大小KIB KB
KiB Mem : 1001332 total(物理内存总量), 426080 free(空闲内存总量), 234896 used(使用的物理内存总量), 340356 buff/cache(用作内核存储的内存量)
第五行为交换区信息
KiB Swap: 2097148 total(交换区总量), 2097148 free,(交换区空闲总量) 0 used(使用的交换区总量). 533452 avail Mem(可以使用的交换区总量)
第六行的信息如下:
序号 列名 含义
a PID 进程id
b PPID 父进程id
c RUSER Real user name
d UID 进程所有者的用户id
e USER 进程所有者的用户名
f GROUP 进程所有者的组名
g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
h PR 优先级
i NI nice值。负值表示高优先级,正值表示低优先级
j P 最后使用的CPU,仅在多CPU环境下有意义
k %CPU 上次更新到现在的CPU时间占用百分比
l TIME 进程使用的CPU时间总计,单位秒
m TIME+ 进程使用的CPU时间总计,单位1/100秒
n %MEM 进程使用的物理内存百分比
o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r CODE 可执行代码占用的物理内存大小,单位kb
s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t SHR 共享内存大小,单位kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数。
w S 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
x COMMAND 命令名/命令行
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志,参考 sched.h
常用操作:
top
//
每隔5秒显式所有进程的资源占用情况
top -d
2
//
每隔2秒显式所有进程的资源占用情况
top -c
//
每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
top -p
12345 -p
6789
//
每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
top -d
2 -c -p
123456
//
每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数
|