AIOps 一场颠覆传统运维的盛筵
1620
2022-10-03
运维专家: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解决。如果不能打补丁或升级,可以采取定期重启数据库实例释放资源的临时措施。
发表评论
暂时没有评论,来抢沙发吧~