首页 > 数据库 > Oracle > 正文

Oracle进程内存结构-如何察看Oracle进程消耗的内存

2020-03-09 22:49:02
字体:
来源:转载
供稿:网友

oracle进程内存结构-如何察看oracle进程消耗的内存

last updated: sunday, 2004-11-28 11:12 eygle
    
 
 

经常有人问到如何在unix下确定进程消耗的内存资源,以及为何top工具的显示非常高。
有人说top的输出不精确,这种说法是不确切的。实际上是top输出显示的oracle进程内存使用,包含了sga部分。这也是sga的意义所在。
sga可以被共享,可以被所有进程所访问,在进程的寻址空间里就包含了sga的大小。

至于如何更为精确的确定进程的内存消耗,本文简要介绍如下(在quickio下,你可能无法看到本文描述情况):


1.系统平台及数据库版本

$ uname -asunos billing 5.8 generic_108528-23 sun4u sparc sunw,ultra-4sun microsystems inc. sunos 5.8 generic patch october 2001$ sqlplus "/ as sysdba"sql*plus: release 9.2.0.4.0 - production on sun nov 28 10:48:00 2004copyright (c) 1982, 2002, oracle corporation. all rights reserved.connected to:oracle9i enterprise edition release 9.2.0.4.0 - 64bit productionwith the partitioning, olap and oracle data mining optionsjserver release 9.2.0.4.0 - productionsql> select * from v$version;banner----------------------------------------------------------------oracle9i enterprise edition release 9.2.0.4.0 - 64bit productionpl/sql release 9.2.0.4.0 - productioncore 9.2.0.3.0 productiontns for solaris: version 9.2.0.4.0 - productionnlsrtl version 9.2.0.4.0 - productionsql> show sgatotal system global area 253200688 bytesfixed size 731440 bytesvariable size 167772160 bytesdatabase buffers 83886080 bytesredo buffers 811008 bytessql> exitdisconnected from oracle9i enterprise edition release 9.2.0.4.0 - 64bit productionwith the partitioning, olap and oracle data mining optionsjserver release 9.2.0.4.0 - production

 

2.top输出

 

$ topload averages: 0.12, 0.05, 0.04 billing 10:49:5254 processes: 52 sleeping, 1 stopped, 1 on cpucpu states: 99.3% idle, 0.0% user, 0.3% kernel, 0.4% iowait, 0.0% swapmemory: 2.0g real, 1.2g free, 404m swap in use, 5.1g swap free pid username thr pr nce size res state time flts cpu command 10027 oracle 1 58 0 2568k 1680k cpu03 0:00 0 0.09% top 10052 oracle 1 58 0 322m 275m sleep 21:18 0 0.01% oracle 11264 oracle 22 58 0 329m 275m sleep 59:01 0 0.00% oracle 10056 oracle 1 58 0 322m 275m sleep 3:04 0 0.00% oracle 11262 oracle 14 58 0 331m 270m sleep 73:55 0 0.00% oracle 11260 oracle 258 59 0 333m 274m sleep 52:46 0 0.00% oracle 11266 oracle 1 58 0 325m 276m sleep 26:50 0 0.00% oracle 10054 oracle 1 59 0 322m 275m sleep 18:27 0 0.00% oracle 23519 oracle 1 55 0 322m 278m sleep 0:50 0 0.00% oracle 11258 oracle 1 59 0 323m 271m sleep 0:31 0 0.00% oracle 11285 oracle 1 58 0 17.3m 3848k sleep 0:20 0 0.00% tnslsnr 11270 oracle 1 58 0 322m 271m sleep 0:06 0 0.00% oracle 2990 oracle 1 59 0 322m 276m sleep 0:04 0 0.00% oracle 9872 oracle 1 48 0 1880k 1192k sleep 0:00 0 0.00% ksh 23498 oracle 1 58 0 323m 278m sleep 0:00 0 0.00% oracle

 

3.pmap输出及进程内存计算

 

$ ps -ef|grep ora_ oracle 9881 9872 0 10:49:57 pts/2 0:00 grep ora_ oracle 11258 1 0 jul 19 ? 0:31 ora_pmon_hsbill oracle 11260 1 0 jul 19 ? 52:47 ora_dbw0_hsbill oracle 11262 1 0 jul 19 ? 73:55 ora_lgwr_hsbill oracle 11264 1 0 jul 19 ? 59:01 ora_ckpt_hsbill oracle 11266 1 0 jul 19 ? 26:50 ora_smon_hsbill oracle 11268 1 0 jul 19 ? 0:00 ora_reco_hsbill oracle 11270 1 0 jul 19 ? 0:06 ora_cjq0_hsbill oracle 10054 1 0 nov 02 ? 18:27 ora_j001_hsbill oracle 10052 1 0 nov 02 ? 21:19 ora_j000_hsbill oracle 2990 1 0 nov 25 ? 0:05 ora_j003_hsbill oracle 10056 1 0 nov 02 ? 3:04 ora_j002_hsbill oracle 8879 1 0 09:54:32 ? 0:00 ora_j004_hsbill$ pmap 1126411264: ora_ckpt_hsbill0000000100000000 53824k read/exec /opt/oracle/product/9.2.0/bin/oracle000000010358e000 872k read/write/exec /opt/oracle/product/9.2.0/bin/oracle0000000103668000 7968k read/write/exec [ heap ]0000000380000000 266240k read/write/exec/shared [ ism shmid=0x64 ]ffffffff7c802000 8k read/write/exec [ anon ]ffffffff7c814000 8k read/write/exec [ anon ]ffffffff7c826000 8k read/write/exec [ anon ]ffffffff7c838000 8k read/write/exec [ anon ]ffffffff7c84a000 8k read/write/exec [ anon ]ffffffff7c85c000 8k read/write/exec [ anon ]ffffffff7c86e000 8k read/write/exec [ anon ]ffffffff7c880000 8k read/write/exec [ anon ]ffffffff7c892000 8k read/write/exec [ anon ]ffffffff7c8a4000 8k read/write/exec [ anon ]ffffffff7c8b6000 8k read/write/exec [ anon ]ffffffff7c8c8000 8k read/write/exec [ anon ]ffffffff7c8d6000 8k read/write/exec [ anon ]ffffffff7c8da000 8k read/write/exec [ anon ]ffffffff7c8e8000 8k read/write/exec [ anon ]ffffffff7c8ec000 8k read/write/exec [ anon ]ffffffff7c8fa000 8k read/write/exec [ anon ]ffffffff7c8fe000 8k read/write/exec [ anon ]ffffffff7c90c000 8k read/write/exec [ anon ]ffffffff7c910000 8k read/write/exec [ anon ]ffffffff7c91e000 8k read/write/exec [ anon ]ffffffff7ca02000 8k read/write/exec [ anon ]ffffffff7ca10000 8k read/write/exec [ anon ]ffffffff7ca14000 8k read/write/exec [ anon ]ffffffff7ca22000 8k read/write/exec [ anon ]ffffffff7ca26000 8k read/write/exec [ anon ]ffffffff7ca34000 8k read/write/exec [ anon ]ffffffff7ca38000 8k read/write/exec [ anon ]ffffffff7ca46000 8k read/write/exec [ anon ]ffffffff7ca4a000 8k read/write/exec [ anon ]ffffffff7ca58000 8k read/write/exec [ anon ]ffffffff7ca5c000 8k read/write/exec [ anon ]ffffffff7ca6a000 8k read/write/exec [ anon ]ffffffff7ca6e000 8k read/write/exec [ anon ]ffffffff7ca7c000 8k read/write/exec [ anon ]ffffffff7ca80000 8k read/write/exec [ anon ]ffffffff7ca8e000 8k read/write/exec [ anon ]ffffffff7ca92000 8k read/write/exec [ anon ]ffffffff7caa0000 8k read/write/exec [ anon ]ffffffff7caa4000 8k read/write/exec [ anon ]ffffffff7cab2000 8k read/write/exec [ anon ]ffffffff7cab6000 8k read/write/exec [ anon ]ffffffff7cac4000 8k read/write/exec [ anon ]ffffffff7cac8000 8k read/write/exec [ anon ]ffffffff7cad6000 8k read/write/exec [ anon ]ffffffff7cada000 8k read/write/exec [ anon ]ffffffff7cae8000 8k read/write/exec [ anon ]ffffffff7caec000 8k read/write/exec [ anon ]ffffffff7cafa000 8k read/write/exec [ anon ]ffffffff7cafe000 8k read/write/exec [ anon ]ffffffff7cb0c000 8k read/write/exec [ anon ]ffffffff7cb10000 8k read/write/exec [ anon ]ffffffff7cb1e000 8k read/write/exec [ anon ]ffffffff7cc00000 8k read/write/exec [ anon ]ffffffff7cd00000 24k read/exec /usr/lib/sparcv9/nss_files.so.1ffffffff7ce06000 8k read/write/exec /usr/lib/sparcv9/nss_files.so.1ffffffff7cf00000 8k read/write [ anon ]ffffffff7cf10000 8k read/write [ anon ]ffffffff7cf50000 8k read/write [ anon ]ffffffff7cf60000 16k read/write [ anon ]ffffffff7cf68000 32k read/write [ anon ]ffffffff7d000000 16k read/exec /usr/platform/sun4u/lib/sparcv9/libc_psr.so.1ffffffff7d100000 16k read/exec /usr/lib/sparcv9/libmp.so.2ffffffff7d204000 8k read/write/exec /usr/lib/sparcv9/libmp.so.2ffffffff7d300000 8k read/write/exec [ anon ]ffffffff7d400000 88k read/exec /usr/lib/sparcv9/libm.so.1ffffffff7d516000 8k read/write/exec /usr/lib/sparcv9/libm.so.1ffffffff7d600000 8k read/exec /usr/lib/sparcv9/libkstat.so.1ffffffff7d702000 8k read/write/exec /usr/lib/sparcv9/libkstat.so.1ffffffff7d800000 32k read/exec /usr/lib/sparcv9/librt.so.1ffffffff7d908000 8k read/write/exec /usr/lib/sparcv9/librt.so.1ffffffff7da00000 32k read/exec /usr/lib/sparcv9/libaio.so.1ffffffff7db08000 8k read/write/exec /usr/lib/sparcv9/libaio.so.1ffffffff7dc00000 720k read/exec /usr/lib/sparcv9/libc.so.1ffffffff7ddb4000 56k read/write/exec /usr/lib/sparcv9/libc.so.1ffffffff7ddc2000 8k read/write/exec /usr/lib/sparcv9/libc.so.1ffffffff7df00000 8k read/write/exec [ anon ]ffffffff7e000000 32k read/exec /usr/lib/sparcv9/libgen.so.1ffffffff7e108000 8k read/write/exec /usr/lib/sparcv9/libgen.so.1ffffffff7e200000 672k read/exec /usr/lib/sparcv9/libnsl.so.1ffffffff7e3a8000 56k read/write/exec /usr/lib/sparcv9/libnsl.so.1ffffffff7e3b6000 40k read/write/exec /usr/lib/sparcv9/libnsl.so.1ffffffff7e400000 5328k read/exec /opt/oracle/product/9.2.0/lib/libjox9.soffffffff7ea32000 384k read/write/exec /opt/oracle/product/9.2.0/lib/libjox9.soffffffff7ea92000 8k read/write/exec /opt/oracle/product/9.2.0/lib/libjox9.soffffffff7eb00000 56k read/exec /usr/lib/sparcv9/libsocket.so.1ffffffff7ec0e000 16k read/write/exec /usr/lib/sparcv9/libsocket.so.1ffffffff7ed00000 8k read/write/exec [ anon ]ffffffff7ee00000 32k read/exec /opt/oracle/product/9.2.0/lib/libskgxn9.soffffffff7ef06000 8k read/write/exec /opt/oracle/product/9.2.0/lib/libskgxn9.soffffffff7f000000 8k read/exec /opt/oracle/product/9.2.0/lib/libskgxp9.soffffffff7f100000 8k read/write/exec /opt/oracle/product/9.2.0/lib/libskgxp9.soffffffff7f200000 8k read/exec /opt/oracle/product/9.2.0/lib/libodmd9.soffffffff7f300000 8k read/write/exec /opt/oracle/product/9.2.0/lib/libodmd9.soffffffff7f400000 8k read/exec /usr/lib/sparcv9/libdl.so.1ffffffff7f500000 8k read/write/exec [ anon ]ffffffff7f600000 152k read/exec /usr/lib/sparcv9/ld.so.1ffffffff7f724000 16k read/write/exec /usr/lib/sparcv9/ld.so.1ffffffff7fffa000 24k read/write [ stack ] total 337360k$

 

计算后台进程使用的内存资源:

337360k - 266240k = 71,120k

这就是一个进程所消耗的内存.

4.用户进程内存使用举例

 

$ ps -ef|grep local oracle 10080 9872 0 11:00:25 pts/2 0:00 grep local oracle 23498 1 0 nov 25 ? 0:00 oraclehsbill (local=no) oracle 23519 1 0 nov 25 ? 0:50 oraclehsbill (local=no)$ pmap 2351923519: oraclehsbill (local=no)0000000100000000 53824k read/exec /opt/oracle/product/9.2.0/bin/oracle000000010358e000 872k read/write/exec /opt/oracle/product/9.2.0/bin/oracle0000000103668000 848k read/write/exec [ heap ]0000000380000000 266240k read/write/exec/shared [ ism shmid=0x64 ]ffffffff7cc00000 8k read/write [ anon ]ffffffff7cc10000 8k read/write [ anon ]ffffffff7cc50000 136k read/write [ anon ]ffffffff7cc76000 40k read/write [ anon ]ffffffff7cd00000 8k read/write/exec [ anon ]ffffffff7ce00000 24k read/exec /usr/lib/sparcv9/nss_files.so.1ffffffff7cf06000 8k read/write/exec /usr/lib/sparcv9/nss_files.so.1ffffffff7d000000 16k read/exec /usr/platform/sun4u/lib/sparcv9/libc_psr.so.1ffffffff7d100000 16k read/exec /usr/lib/sparcv9/libmp.so.2ffffffff7d204000 8k read/write/exec /usr/lib/sparcv9/libmp.so.2ffffffff7d300000 8k read/write/exec [ anon ]ffffffff7d400000 88k read/exec /usr/lib/sparcv9/libm.so.1ffffffff7d516000 8k read/write/exec /usr/lib/sparcv9/libm.so.1ffffffff7d600000 8k read/exec /usr/lib/sparcv9/libkstat.so.1ffffffff7d702000 8k read/write/exec /usr/lib/sparcv9/libkstat.so.1ffffffff7d800000 32k read/exec /usr/lib/sparcv9/librt.so.1ffffffff7d908000 8k read/write/exec /usr/lib/sparcv9/librt.so.1ffffffff7da00000 32k read/exec /usr/lib/sparcv9/libaio.so.1ffffffff7db08000 8k read/write/exec /usr/lib/sparcv9/libaio.so.1ffffffff7dc00000 720k read/exec /usr/lib/sparcv9/libc.so.1ffffffff7ddb4000 56k read/write/exec /usr/lib/sparcv9/libc.so.1ffffffff7ddc2000 8k read/write/exec /usr/lib/sparcv9/libc.so.1ffffffff7df00000 8k read/write/exec [ anon ]ffffffff7e000000 32k read/exec /usr/lib/sparcv9/libgen.so.1ffffffff7e108000 8k read/write/exec /usr/lib/sparcv9/libgen.so.1ffffffff7e200000 672k read/exec /usr/lib/sparcv9/libnsl.so.1ffffffff7e3a8000 56k read/write/exec /usr/lib/sparcv9/libnsl.so.1ffffffff7e3b6000 40k read/write/exec /usr/lib/sparcv9/libnsl.so.1ffffffff7e400000 5328k read/exec /opt/oracle/product/9.2.0/lib/libjox9.soffffffff7ea32000 384k read/write/exec /opt/oracle/product/9.2.0/lib/libjox9.soffffffff7ea92000 8k read/write/exec /opt/oracle/product/9.2.0/lib/libjox9.soffffffff7eb00000 56k read/exec /usr/lib/sparcv9/libsocket.so.1ffffffff7ec0e000 16k read/write/exec /usr/lib/sparcv9/libsocket.so.1ffffffff7ed00000 8k read/write/exec [ anon ]ffffffff7ee00000 32k read/exec /opt/oracle/product/9.2.0/lib/libskgxn9.soffffffff7ef06000 8k read/write/exec /opt/oracle/product/9.2.0/lib/libskgxn9.soffffffff7f000000 8k read/exec /opt/oracle/product/9.2.0/lib/libskgxp9.soffffffff7f100000 8k read/write/exec /opt/oracle/product/9.2.0/lib/libskgxp9.soffffffff7f200000 8k read/exec /opt/oracle/product/9.2.0/lib/libodmd9.soffffffff7f300000 8k read/write/exec /opt/oracle/product/9.2.0/lib/libodmd9.soffffffff7f400000 8k read/exec /usr/lib/sparcv9/libdl.so.1ffffffff7f500000 8k read/write/exec [ anon ]ffffffff7f600000 152k read/exec /usr/lib/sparcv9/ld.so.1ffffffff7f724000 16k read/write/exec /usr/lib/sparcv9/ld.so.1ffffffff7fff2000 56k read/write [ stack ] total 329968k$

从pmap的输出中我们可以看到进程所调用的库文件等,及其读写状态。

 

本文作者:
eygle,oracle技术关注者,来自中国最大的oracle技术论坛itpub.
www.eygle.com是作者的个人站点.你可通过[email protected]来联系作者.欢迎技术探讨交流以及链接交换.

原文出处:

http://www.eygle.com/faq/how.to.get.process.memory.consume.htm

 

最大的网站源码资源下载站,

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表