运维专家:Oracle过度占用内存问题分析

网友投稿 1620 2022-10-03

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

运维专家:Oracle过度占用内存问题分析

今天我们来看一例来自重庆原厂专家李捷的分享:HPUX-PA平台上ORACLE数据库主机内存占用过高故障处理

背景:某客户反映:自ORACLE数据库有9i升级到11gR2,运行一段时间后,数据库主机内存占用居高不下,无论负荷大小,内存占用基本在96%以上,并缓慢增加。目前主机仅用于数据库服务。数据库主机操作系统为HPUX PA-RISC 11.31,升级后数据库版本为ORACLE rdbms11.2.0.3,安装PSU补丁11.2.0.3.14。数据库以单实例运行,数据存储使用裸设备。

通过操作系统自带的glance工具,分析内存使用情况:

B3692A Glance 11.00.044         10:18:58  server  9000/800    Current  Avg  High--------------------------------------------------------------------------------CPU  Util   SU  U                                              |  9%    7%   22%Disk Util   F F                                                |  6%    8%   55%Mem  Util   S                       SU                   UFF   | 96%   96%   96%Swap Util   U                     UR    R                      | 56%   56%   56%--------------------------------------------------------------------------------                                 MEMORY REPORT                      Users=    1Event         Current   Cumulative   Current Rate   Cum Rate   High Rate--------------------------------------------------------------------------------Page Faults      1476        55791       335.4      218.1      1446.6Page In          1183          127       268.8        0.4      1095.1Page Out            0            0         0.0        0.0         0.0KB Paged In      40kb        508kb         9.0        1.9       548.4KB Paged Out      0kb          0kb         0.0        0.0         0.0Reactivations       0            0         0.0        0.0         0.0Deactivations       0            0         0.0        0.0         0.0KB Deactivated    0kb          0kb         0.0        0.0         0.0VM Reads           10           79         2.2        0.3         4.5VM Writes           0            0         0.0        0.0         0.0Total VM :  20.4gb   Sys Mem  :  20.0gb   User Mem:  16.7gb   Phys Mem :  40.0gbActive VM:   6.2gb   Buf Cache:     7mb   Free Mem:   1.5gb   FileCache:   1.7gb  0.0    29.1mb   33.2mb SOCKT

内存使用率高达96%,paging频繁发生,内存主要消耗者是oracle进程。目前系统物理内存40G,使用占比如下: User Mem: 16.7G,FileCache: 1.7G,Sys Mem:20G。因该主机仅用于数据库服务,系统内存占到整个物理内存的50%,很异常。

通过AWR报告分析内存使用情况,


Begin

End

Host Mem (MB):

40,933.0

40,933.0

SGA use (MB):

12,288.0

12,288.0

PGA use (MB):

1,501.1

1,771.1

% Host Mem used for SGA+PGA:

33.69

34.35

SGA、PGA占用内存约14G,数据库连接数<500,同glance看到的User Mem: 16.7G相符。

数据存储采用裸设备,操作系统参数filecache_max配置为5%,所以file cache占用不应太高,同glance显示的FileCache: 1.7G相符。

通过操作系统工具kmeminfo查看内存占用细节:

Physical memory usage summary (in page/byte/percent): Physical memory       = 10478848   40.0g 100% Free memory           =   456485    1.7g   4% User processes        =  4336146   16.5g  41%  details with -user  Detached SHMEM      =        2    8.0k   0%  details with -shmemSystem                =  5686852   21.7g  54%   Kernel              =  5216156   19.9g  50%  kernel text and data    Dynamic Arenas    =  1673425    6.4g  16%  details with -arena      asyncdsk variab =   521710    2.0g   5%       spinlock_arena  =   163617  639.1m   2%       misc region are =   141041  550.9m   1%       reg_fixed_arena =   140622  549.3m   1%       vx_global_kmcac =    90815  354.7m   1%       Other arenas    =   615620    2.3g   6%  details with -arena    Super    . pool   =  2860767   10.9g  27%  details with -kas    Emergency pool    =    21093   82.4m   0%  system critical reserve    UAREA's           =    11568   45.2m   0%     Static Tables     =   660164    2.5g   6%  details with -static      pfdat           =   511662    2.0g   5%       htbl2_0         =   131072  512.0m   1%       inode           =     7412   29.0m   0%       text            =     4932   19.3m   0%  vmunix text section      bss             =     1992    7.8m   0%  vmunix bss section      Other tables    =     3092   12.1m   0%  details with -static  File Cache          =   470696    1.8g   4%  details with -ufc

操心系统kernel占用近50%物理内存,其中Super page pool占用了10.9G,并且一直不释放。

对此问题,同主机厂商进行沟通,反馈ORACLE进程发起的大量ASYNC IO请求,造成super page pool内存碎片,致使大量SYS内存消耗。     目前数据库采用逻辑卷存储,开启异步I/O模式。Oracle 11g较9i增加了异步I/O并发访问连接数(max_concurrent=5000),HPUX系统super page pool需要为此分配更多内存(以4K单位分配),导致了大量的内存碎片出现。     就此问题,在HPUX-IA平台上,针对oracle 11.2.0.3版本有patch 1294767可以进行修复;客户平台为HPUX-PA,则需要升级数据库至11.2.0.4解决。如果不能打补丁或升级,可以采取定期重启数据库实例释放资源的临时措施。

上一篇:Linux 运维中最常用 150 个命令汇总
下一篇:优维科技融资3000W,DevOps 运维时代已来!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~