Chinaunix首页 | 论坛 | 博客
  • 博客访问: 92459929
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-24 21:07:37

作者:IT168 杨宝秋 

3 问题重现
3.1 测试的环境
    测试的环境是我的一个应用的测试系统,glance观察发现很多的Oracle进程占用了60mb多的内存。系统具体配置如下:
系统:3cpu,6GB物理内存,hp-ux11.11的操作系统,做过patch分析无问题。
数据库:Oracle 9.2.0.6 2GB内存用于SGA区

3.2 测试流程细节
    ○1打开glance初步看一下第一页,很多oracle进程占内存(RSS)都在60mb之上
Process Name PID PPID Pri Name ( 300% max) CPU IO Rate RSS Cnt -------------------------------------------------------------------------------- glance 7961 11741 154 root 0.9/ 1.8 0.5 0.0/ 0.0 21.4mb 1 oraclevcard 2194 1 154 oracle 0.7/ 0.1 3060.2 0.0/ 0.0 61.4mb 1 midaemon 15077 1 -16 root 0.2/ 0.2 6648.9 0.0/ 0.0 26.2mb 3 oraclevcard 2204 1 154 oracle 0.0/ 0.1 3062.9 0.0/ 0.0 61.1mb 1 oraclevcard 14589 1 154 oracle 0.0/ 0.0 1.0 0.0/ 0.0 80.5mb 1 oraclevcard 25202 1 154 oracle 0.0/ 0.0 17.8 0.0/ 0.0 61.2mb 1 oraclevcard 25149 1 154 oracle 0.0/ 0.0 27.6 0.0/ 0.0 79.9mb 1 oraclevcard 17069 1 154 oracle 0.0/ 0.0 23.0 0.0/ 0.0 79.6mb 1 scopeux 15078 1 127 root 0.0/ 0.1 3753.4 0.0/ 0.1 23.5mb 1 oraclevcard 2206 1 154 oracle 0.0/ 0.1 3060.9 0.0/ 0.0 61.4mb 1 oraclevcard 2214 1 154 oracle 0.0/ 0.0 410.9 0.0/ 0.0 64.7mb 1 oraclevcard 2208 1 154 oracle 0.0/ 0.1 3064.9 0.0/ 0.0 61.1mb 1 oraclevcard 16060 1 154 oracle 0.0/ 0.0 39.8 0.0/ 0.0 79.5mb 1 oraclevcard 10987 1 154 oracle 0.0/ 0.0 104.3 0.0/ 0.0 79.4mb 1 oraclevcard 11009 1 154 oracle 0.0/ 0.2 695.2 0.0/ 0.0 80.0mb 1 oraclevcard 7900 1 154 oracle 0.0/ 0.2 0.2 0.0/ 0.0 60.7mb 1 oraclevcard 7861 7860 154 oracle 0.0/ 0.1 0.1 0.0/ 0.0 62.1mb 1 oraclevcard 6838 1 154 oracle 0.0/ 0.0 0.2 0.0/ 0.0 64.4mb 1 oraclevcard 6882 1 154 oracle 0.0/ 0.0 0.3 0.0/ 0.0 62.2mb 1 oraclevcard 6890 1 154 oracle 0.0/ 0.0 0.2 0.0/ 0.0 63.9mb 1 oraclevcard 6015 1 154 oracle 0.0/ 0.0 0.2 0.0/ 0.0 60.7mb 1 oraclevcard 5675 1 154 oracle 0.0/ 0.0 0.5 0.0/ 0.0 64.0mb 1 oraclevcard 5705 1 154 oracle 0.0/ 0.0 0.2 0.0/ 0.0 60.9mb 1 oraclevcard 5815 1 154 oracle 0.0/ 0.0 0.3 0.0/ 0.0 60.7mb 1 oraclevcard 6374 1 154 oracle 0.0/ 0.0 1.3 0.0/ 0.0 79.5mb 1 oraclevcard 2202 1 154 oracle 0.0/ 0.1 3061.3 0.0/ 0.0 61.4mb 1 oraclevcard 2200 1 154 oracle 0.0/ 0.1 3059.1 0.0/ 0.0 61.4mb 1 2 开一个Oracle连接并找到其进程号为7861 $ sqlplus qiuyb/test SQL*Plus: Release 9.2.0.6.0 - Production on Fri Apr 18 09:12:06 2008 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to: Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.6.0 - Production SQL> # ps -ef|grep "sqlplus qiuyb" oracle 7860 7579 0 09:13:04 pts/te 0:00 sqlplus qiuyb/byuiq_145 root 7891 11741 1 09:13:35 pts/td 0:00 grep sqlplus qiuyb # # ps -ef|grep 7860 oracle 7860 7579 0 09:13:04 pts/te 0:00 sqlplus qiuyb/test oracle 7861 7860 0 09:13:04 ? 0:00 oraclevcard (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq))) root 8107 11741 1 09:16:24 pts/td 0:00 grep 7860 ○3glance里7861进程占用内存(RSS)为57.9mb User CPU Util Cum Disk Thd Process Name PID PPID Pri Name ( 300% max) CPU IO Rate RSS Cnt -------------------------------------------------------------------------------- oraclevcard 7861 7860 154 oracle 0.0/ 0.0 0.2 0.0/ 0.0 57.9mb 1

○4kmeminfo里7861占用内存为56.6mb
# ./kmeminfo -user |grep 7861
7861 7860 548101 2.1g 14481 56.6m 14332 56.0m oracle
○5 ps里7861占用了16992个内存页,计算起来为66.375mb
每个内存页为4096字节:
# getconf PAGE_SIZE
4096
执行ps命令:
# ps -flp 7861 F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME COMD 1001 S oracle 7861 7860 0 154 20 6e5745c0 16992 4f54e32e 09:13:04 ? 0:00 oraclevcard (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq))) 计算一下: 16992*4096/1024/1024=66.375mb 6 看一下Oracle库内查到的该进程的pga占用为多少,结果为306kb SQL> SELECT pga_alloc_mem,pga_max_mem FROM v$process WHERE spid=7861 2 / PGA_ALLOC_MEM PGA_MAX_MEM ------------- ----------- 313689 313689


3.3 疑惑和问题
3.3.1 疑惑1
    从3.2的测试中可以看到5861进程什么都未做,在glance中表现为占用57.9mb内存,kmeminfo表现为56.6mb内存,ps命令中为66.375 mb内存,哪个内存表现才为5861真实的物理内存占用?

3.3.2 疑惑2
   Oracle库内5861使用pga才为300多kb,系统为什么分配给5861这么多的内存?出现了内存泄露?56.6mb的内存占用都含哪些部分?哪一部分占用的大呢?
阅读(308) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~