LINUX如何查看真正PGA占用的内存大小

73次阅读
没有评论

共计 4565 个字符,预计需要花费 12 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章主要介绍 LINUX 如何查看真正 PGA 占用的内存大小,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

也不知道起什么题目好,PGA 的内存是进程私有内存,如何查看进程真正占有的操作系统内存,是不是依据 v$process.PGA_ALLOC_MEM 就可以,还是还需要通过其他手段。

select PGA_ALLOC_MEM/1024/1024 MEM from v$process ORDER BY MEM ;
 MEM
----------
2.20257282
... ... 此处略去 30 来行(都是 2 开头的)2.95257282
3.07757282
... ... 此处略去 20 来行(都是 3 开头的)3.97667408
4.01507282
... ... 此处略去好几行(都是 4 开头的)4.95257282
6.54008961
7.26507282
8.66359425
11.0775728
19.5396471
21.5529451
21.9125109
22.0546846
22.4279451
22.4279451
22.4279451
22.4279451
22.9915972
46.3040972
75.9259233

可以看到从 ORACLE 提供的 v$process 去统计,每个进程占用的 PGA 内存大小一般也就 3M。

可是进程真正占用的操作系统内存不仅仅如此。

ps aux | grep oraclecrmd | grep -v grep
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
oracle 415 0.1 0.0 152056 31896 ? Ss Sep22 4:21 oraclecrmd1 (LOCAL=NO)
oracle 417 0.1 0.0 152048 31932 ? Ss Sep22 5:43 oraclecrmd1 (LOCAL=NO)
... 略... 此处略去好几十行
oracle 15258 0.1 0.0 152040 31720 ? Ss Sep23 3:32 oraclecrmd1 (LOCAL=NO)
oracle 15423 0.0 0.0 154100 31688 ? Ss Sep23 3:59 oraclecrmd1 (LOCAL=NO)

RSS 列为真正的进程占用内存大小,可以看到每个 ORACLE 进程都差不多占用了 30M 的操作系统内存。

还可以通过 /proc/process_id 下的 status 来查看

admin@crmd-rac1:/home/admin cd /proc/31493
admin@crmd-rac1:/proc/31493 cat status 
Name: oracle
State: S (sleeping)
SleepAVG: 98%
Tgid: 31493
Pid: 31493
PPid: 1
TracerPid: 0
Uid: 501 501 501 501
Gid: 501 501 501 501
FDSize: 64
Groups: 501 502 
VmPeak: 23591404 kB
VmSize: 151020 kB
VmLck: 0 kB
VmHWM: 38340 kB
VmRSS: 29236 kB
VmData: 2476 kB
VmStk: 200 kB
VmExe: 100616 kB
VmLib: 16156 kB
VmPTE: 308 kB
StaBrk: 0e750000 kB
Brk: 0e80d000 kB
StaStk: 7fff4a3b7ab0 kB
Threads: 1
SigQ: 0/399360
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000006005207
SigCgt: 00000001c9802cf8
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
Cpus_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,ffffffff
Mems_allowed: 00000000,00000003
VmRSS: 29236 kB,就是进程占用的操作系统内存大小。当然通过 TOP 命令来看也是最方便的。Tasks: 526 total, 1 running, 525 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.8%us, 0.5%sy, 0.0%ni, 95.4%id, 0.1%wa, 0.0%hi, 0.2%si, 0.0%st
Mem: 49448636k total, 31725736k used, 17722900k free, 825208k buffers
Swap: 20482864k total, 289672k used, 20193192k free, 1430524k cached
 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
17954 oracle 18 0 22.5g 34m 24m D 15.5 0.1 8:49.84 oracle 
 415 oracle 15 0 22.5g 31m 24m S 0.0 0.1 4:21.48 oracle 
 417 oracle 15 0 22.5g 31m 25m S 0.0 0.1 5:43.78 oracle 
 419 oracle 15 0 22.5g 33m 25m S 0.0 0.1 5:19.47 oracle 
 456 oracle 15 0 22.5g 29m 23m S 0.0 0.1 6:42.85 oracle 
 582 oracle 15 0 22.5g 31m 24m S 0.0 0.1 4:48.01 oracle 
 584 oracle 15 0 22.5g 29m 23m S 0.0 0.1 4:26.69 oracle 
 586 oracle 15 0 22.5g 28m 22m S 0.0 0.1 5:39.92 oracle 
 692 oracle 15 0 22.5g 34m 28m S 0.0 0.1 6:40.93 oracle 
 694 oracle 15 0 22.5g 31m 24m S 0.0 0.1 5:42.40 oracle 
 1392 oracle 15 0 22.5g 31m 24m S 0.0 0.1 4:51.74 oracle 
 1508 oracle 15 0 22.5g 26m 21m S 0.0 0.1 4:07.42 oracle 
 1997 oracle 15 0 22.5g 17m 13m S 0.0 0.0 0:00.03 oracle 
 2000 oracle 15 0 22.5g 30m 24m S 0.0 0.1 3:22.19 oracle 
 2609 oracle 15 0 22.5g 16m 12m S 0.0 0.0 74:30.50 oracle 
 2611 oracle 15 0 22.5g 18m 13m S 0.0 0.0 0:00.99 oracle 
 2613 oracle 15 0 22.5g 15m 11m S 0.0 0.0 0:10.73 oracle 
 2615 oracle 15 0 22.5g 22m 15m S 0.0 0.0 37:54.79 oracle 
 2619 oracle 15 0 22.5g 31m 17m S 0.0 0.1 48:27.98 oracle 
 2621 oracle -2 0 22.5g 32m 17m S 0.0 0.1 356:03.42 oracle 
 2625 oracle -2 0 22.5g 32m 17m S 0.0 0.1 355:49.97 oracle 
 2629 oracle -2 0 22.5g 32m 17m S 0.0 0.1 352:42.52 oracle 
 2633 oracle -2 0 22.5g 32m 17m S 0.0 0.1 356:19.10 oracle 
 2637 oracle 15 0 22.5g 15m 11m S 0.0 0.0 0:05.06 oracle 
 2639 oracle 16 0 22.5g 43m 32m S 0.0 0.1 183:11.05 oracle 
 2641 oracle 16 0 22.5g 40m 32m S 0.0 0.1 179:37.22 oracle 
 2643 oracle 15 0 22.5g 32m 28m S 0.0 0.1 1139:53 oracle 
 2645 oracle 15 0 22.5g 32m 22m S 0.0 0.1 20:43.16 oracle 
 2647 oracle 15 0 22.5g 30m 24m S 0.0 0.1 7:30.23 oracle 
 2649 oracle 15 0 22.5g 20m 16m S 0.0 0.0 0:00.12 oracle 
 2651 oracle 15 0 22.5g 27m 21m S 0.0 0.1 1:57.78 oracle 
 2653 oracle 15 0 22.5g 35m 28m S 0.0 0.1 1:54.48 oracle 
 2655 oracle 15 0 22.5g 19m 16m S 0.0 0.0 13:57.91 oracle 
 2994 oracle 15 0 22.5g 32m 26m S 0.0 0.1 3:29.14 oracle 
 3001 oracle 15 0 22.5g 29m 23m S 0.0 0.1 2:57.37 oracle 
 3360 oracle 15 0 22.5g 20m 13m S 0.0 0.0 26:39.06 oracle 
 3375 oracle 15 0 22.5g 20m 16m S 0.0 0.0 0:02.00 oracle 
 3616 oracle 15 0 22.5g 29m 23m S 0.0 0.1 3:34.69 oracle

RES 列为进程占用的操作系统内存大小,基本在 30M 左右。

我们平时为 ORACLE 分配内存除了考虑 ORACLE 自身占用的内存外,还要考虑进程本身占用的操作系统内存。

以上是“LINUX 如何查看真正 PGA 占用的内存大小”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2024-02-04发表,共计4565字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)