分类: LINUX
2011-04-26 17:09:05
第一行(top):
top - 17:03:45 up 58 days, 4:01, 1 user, load average: 0.00, 0.02, 0.00
“17:03:45”为系统当前时刻;
“58 days, 4:01”为系统启动后到现在的运作时间;
“1 user”为当前登录到系统的用户,更确切的说是登录到用户的终端数,即同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目;
“load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过CPU数目时,CPU将比较吃力的负载当前系统所包含的进程;
第二行(Tasks):
“172 total”为当前系统进程总数;
“1 running”为当前运行中的进程数;
“171 sleeping”为当前处于等待状态中的进程数;
“0 stoped”为被停止的系统进程数;
“0 zombie”为僵死的进程数;
第三行(Cpus):
Cpu(s): 0.2% us, 0.1% sy, 0.0% ni, 99.7% id, 0.0% wa, 0.0% hi, 0.0% si
显示CPU利用率的详细信息,如果有多个CPU,屏幕将在每行显示一个CPU的信息。
我们一般用vmstat看到的都是四个状态:sy,us,id,wa,结合load average,基本可以知道cpu的状态
us -> User 表示CPU在运行用户的进程
sy -> system 表示CPU在执行kernel工作
ni -> nice 表示CPU花费在被nice改变过优先级的process上的时间
(注意:被nice命令改变优先级的process仅指那些nice值为负的 process.
花费在被nice命令改变优先级的任务上的时间也将被计算在系统和用户时间内,
因此整个时间加起来可能会超过百分之百)
id -> idle 表示CPU闲置并等待工作分配.
wa ->
iowait 表示CPU等待IO操作完成的时间
hi -> H/w interrupt requests 硬件中断
si -> S/w interrupt requests 软件中断
第四行(Mem):
显示可用的和已利用的内存
第五行(Swap):
表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。(了解swap的用途就能够明白了因为swap分区是用来作实际物理内存交换用的。)
其余的显示内容以表格格式显示进程。下面对各列进行解释:
列描述
PID 进程的进程ID
USER 运行该进程的用户
PRI 进程的优先级
NI nice值:该值越高,任务的优先级越低
SIZE 该进程使用的内存(+数据+堆栈)
RSS 该进程使用的物理内存
SHARE 该进程使用的共享内存
STAT 该进程的状态,用代码显示。一些主要的状态代码包括:
R— 正在运行
S— 正在休眠
Z— 迟滞
T— 已停止
您还会看到第二个和第三个字符,它们表示:
W— 已换出的进程
N— 正nice值
%CPU 该进程使用的CPU百分比
%MEM 该进程使用的内存百分比
TIME 该进程使用的总CPU时间
CPU 如果这是一个多处理器系统,该列指明正在其上运行进程的CPU的ID。
COMMAND 该进程发出的命令
top运行中可以通过top的内部命令对进程的显示方式进行控制。内部命令如下:
s -改变画面更新频率
l -关闭或开启第一部分第一行top信息的表示
t -关闭或开启第一部分第二行Tasks和第三行Cpus信息的表示
m -关闭或开启第一部分第四行Mem和第五行Swap信息的表示
N -以PID的大小的顺序排列表示进程列表
P -以CPU占用率大小的顺序排列进程列表
M -以内存占用率大小的顺序排列进程列表
----------------------------------------------------------------------
项目A,大压力下场景执行2分钟:
测试前:(未执行测试时,查询前端[服务器C]的数据)
context :11608691780
irq 0: 377348704 timer
irq 14: 41845647 ide0
irq 58:2557376548 0
irq233: 69455022 ioc0
问题环境:(接口配置在[服务器G]时,查询前端[服务器C]的数据)
context :11609397277 差值:705497
irq 0: 377651500 timer 差值:302796
irq 14: 41848329 ide0 差值:2682
irq 58:2557728212 0 差值:351664
irq233: 69457769 ioc0 差值:2747
正常环境:(接口配置在[服务器E]时,查询前端[服务器C]的数据)
context :11611152447 差值:1755170
irq 0: 378089297 timer 差值:437797
irq 14: 41852253 ide0 差值:3924
irq 58:2558490578 0 差值:762366
irq233: 69506181 ioc0 差值:48412
----------------------------------------------------------------------
项目B,大压力下场景执行2分钟:
测试前:(未执行测试时,[服务器E]的数据)
context :365586128
irq 0: 555887117 timer
irq 14: 4970216 ide0
irq 98: 6673200 0
irq233: 2963048 ioc0
正常环境:(数据库连接池设置为 localhost )
context :368023507 差值:2437379
irq 0: 556101285 timer 差值:214168
irq 14: 4972124 ide0 差值:1908
irq 98: 7013268 0 差值:340068
irq233: 2968985 ioc0 差值:5937
问题环境:(数据库连接池设置为本机的IP地址)
context :369679349 差值:1655842
irq 0: 556446790 timer 差值:345505
irq 14: 4975148 ide0 差值:3024
irq 98: 7298545 0 差值:285277
irq233: 2974283 ioc0 差值:5298
----------------------------------------------------------------------
正常环境,指%si值在正常范围内波动。问题环境指%si异常,一般%si会达到70%~95%。差值是对应设备在测试过程中产生的中断数。