oracle中top命令详解,top命令-leonwang202-ChinaUnix博客

top命令通过读proc来显示进程信息

[root]# cat /proc/stat

cpu 432661 13295 86656 422145968 171474 233 5346

cpu0 123075 2462 23494 105543694 16586 0 4615

cpu1 111917 4124 23858 105503820 69697 123 371

cpu2 103164 3554 21530 105521167 64032 106 334

cpu3 94504 3153 17772 105577285 21158 4 24

intr 1065711094 1057275779 92 0 6 6 0 4 0 3527 0 0 0 70 0 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7376958 0 0 0 0 0 0 0 1054602 0 0 0 0 0 0 0 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

ctxt 19067887

btime 1139187531

processes 270014

procs_running 1

procs_blocked 0

输出解释

CPU 以及CPU0、CPU1、CPU2、CPU3每行的每个参数意思(以第一行为例)为:

参数     解释

user (432661)

从系统启动开始累计到当前时刻,用户态的CPU时间(单位:jiffies) ,不包含 nice值为负进程。1jiffies=0.01秒

nice (13295)

从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间(单位:jiffies)

system (86656)

从系统启动开始累计到当前时刻,核心时间(单位:jiffies)

idle (422145968)

从系统启动开始累计到当前时刻,除硬盘IO等待时间以外其它等待时间(单位:jiffies)

iowait (171474)

从系统启动开始累计到当前时刻,硬盘IO等待时间(单位:jiffies) ,

irq (233)

从系统启动开始累计到当前时刻,硬中断时间(单位:jiffies)

softirq (5346)

从系统启动开始累计到当前时刻,软中断时间(单位:jiffies)

CPU时间=user+system+nice+idle+iowait+irq+softirq

“intr”这行给出中断的信息,第一个为自系统启动以来,发生的所有的中断的次数;然后每个数对应一个特定的中断自系统启动以来所发生的次数。

“ctxt”给出了自系统启动以来CPU发生的上下文交换的次数。

“btime”给出了从系统启动到现在为止的时间,单位为秒。

“processes (total_forks) 自系统启动以来所创建的任务的个数目。

“procs_running”:当前运行队列的任务的数目。

“procs_blocked”:当前被阻塞的任务的数目。

top

单个进程显示的原理是计算top刷新时间内(默认是3秒)这个进程消耗的cpu时间占3*100*irix的百分比,

在top源代码里面100表示系统的时间片, 我怀疑这个地方可能有问题可能, 因为现在一般的PC时钟都是1000了, irix是1,

如果在top运行时按下shift+I则为2, 这时显示的CPU%会除以2, 之所以有

cclplus 占用CPU96.5%,

就是因为top从/proc/4517/stat每隔3秒读了一次,

然后根据这个值里面的[utime1+stime1-(utime2+stime2)]/(3*100)算出来的.就是说/proc/下面的进程信息提供

的信息不准确, 而top只根据自己的定义去/proc下面去数据来处理, top本身是没有问题的.

Toggle SMP view:

'1' single/separate states;

'I' Irix/Solaris mode

如果是4核,top打开I之后就简单地除以4

top - 17:03:45 up 58 days, 4:01, 1 user, load average: 0.00, 0.02, 0.00

Tasks: 172 total, 1 running, 171 sleeping, 0 stopped, 0 zombie

Cpu(s): 0.2% us, 0.1% sy, 0.0% ni, 99.7% id, 0.0% wa, 0.0% hi, 0.0% si

Mem: 4037036k total, 4007280k used, 29756k free, 93384k buffers

Swap: 8385888k total, 71536k used, 8314352k free, 3068240k cached

PID     USER   PR NI VIRT  RES  SHR S %CPU %MEM TIME+ COMMAND

27167   oracle 16 0  2011m 490m 483mS 1 12.4 0:46.93 oracle

27175   oracle 15 0  2011m 517m 510mS 1 13.1 0:49.78 oracle

5003    oracle 15 0  2021m 33m  29mS  0 0.9 3:56.10 oracle

1       root   16 0  4756  552  460S  0 0.0 0:09.31 init

2       root   RT 0  0     0    0S    0  0.0 0:00.47 migration/0

...............................

第一行(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进程的优先级

NInice值:该值越高,任务的优先级越低

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 -以内存占用率大小的顺序排列进程列表  h -显示帮助  n -设置在进程列表所显示进程的数量  q -退出top

---------------------------------------------------------------------------------------

[介绍一篇文章]

将两个%si高的项目监控结果如下:

----------------------------------------------------------------------

项目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%。差值是对应设备在测试过程中产生的中断数。

正常环境下的中断数比异常情况下的中断数更高。说明:

计算机在单位有能力处理更多的中断数量,中断数量多并不代表%si高。

进一步说明了:%si高代表CPU等待软中断完成的时间更高。

结合项目B的实际情况,将LAMP的Mysql连接方式置为永久连接(长连接),%si就不会高了:

1.说明PHP在连接Mysql在使用localhost连接时不走网络,进程间切换就不废劲,CPU无需等待;2. 而PHP在使用IP地址进行连接时,进程间切换比较耗费资源,导致CPU等待;

3. 进程间切换就会产生中断,则CPU等待切换就是CPU在等待软中断处理完成。原文:http://space.itpub.net/10640532/viewspace-567348

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与国已互相成为双方最大的交易伙伴。国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占国外贸总值的15.4%。在过去20余年,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值