ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle相关NUMA特性浅析

Oracle相关NUMA特性浅析

原创 Linux操作系统 作者:westzq1984 时间:2013-11-07 15:32:51 0 删除 编辑
NUMA:Non-Uniform Memory Access or Non-Uniform Memory Architecture

对于传统SMP架构来说,CPU增多未必系统性能就好,因为共享系统总线的限制了CPU数量,CPU 越多内部通信量越大共享总线越容易达到瓶颈。而 NUMA架构则多少缓解了这个扩展问题,其大致机理是通过给每个核提供单独的本地内存,进而提高可扩展性。而每个核访问本地内存和其它核上的内存时间是不一样的,所以,应用程度对于内存的访问是有比较大的讲究的。从硬件到操作系统再到应用程序,都要支持 NUMA 才会发挥真正的处理能力。

Oracle从8i开始支持NUMA特性
如果OS和硬件都支持NUMA,NUMA在10.2.0.4 & 11.1.0.7上将默认启用,不过在之前的版本以及 11.2 之后默认是关闭该特性的。
需要硬件支持NUMA,另外主流 OS上都是支持的,如AIX,HP-UX,Solaris,Linux,Windows

NUMA可能导致的故障:
    ORA-4031
    ORA-600 with argument KSKRECONFIGNUMA2
    ORA-600 with argument KSBASEND_INTERNAL
    ORA-600 with argument KSMHEAP_ALLOC1
    ORA-27302: FAILURE OCCURRED AT: SSKGXPCRE3
    
在Oracle NUMA Usage Recommendation (Doc ID 759565.1)中查询BUG列表    
其中,以10204,11107版本遭遇到的BUG最多,因为这两个版本默认启用了NUMA
所以推荐在新装的系统上关闭掉NUMA,但是如果当前已经启用了NUMA并且运行良好,或者有时间做测试,建议还是启用NUMA

Disable NUMA on database servers to improve performance of Linux file system utilities (Doc ID 1053332.1)
当启用NUMA后,将对内存分组。
当使用一些OS命令(cp,gzip)普通IO操作一个大的文件时,该命令会长期占用一个CPU
同时,其会消耗这个CPU所关联的内存,用作文件系统缓存
最终导致在系统还有空闲内存的情况下,发生分页,影响数据库性能

11G on HP Creates 6 Shared Memory Segments [ID 601552.1]
共享内存分段,各个平台均可能遭遇到该问题

Sga can't Fit Into A Single Memory Segment and UDP port usage is exploding [ID 747486.1]
HP各平台,导致内存分段以及run out of UDP ports

Bug 8199533 - NUMA enabled by default can cause high CPU / OERI [ID 8199533.8]
导致高CPU消耗,各个平台均可能遭遇到该问题

Multiple DBWR Not Used Though DB_WRITER_PROCESSES is Set [ID 576888.1]
通过_enable_NUMA_optimization = FALSE关闭NUMA后,可能发生DBWR个数无法指定的问题
需要通过设置环境变量和使用_db_block_numa关闭NUMA
1.setenv DISABLE_NUMA TRUE
2._db_block_numa=1

Oracle Background Processes (Including Parallel Processes) Using Only First 8 CPUs (Half) on 16-CPU Server Under NUMA [ID 760705.1]
启用NUMA导致ORACLE无法使用所有CPU 10204

关闭NUMA的步骤:
1.安装PATCH 8199533,该补丁可以滚动安装。其针对的版本为10203,10204,11107.
2.10205版本,在硬件OS都支持NUMA的环境上,默认也不会启用NUMA
3.不推荐使用_enable_NUMA_optimization关闭NUMA
4.如果ASM HOME和RDBMS HOME分离,该补丁不需要在ASM HOME上安装
5.在安装PATCH 8199533后启用NUMA:_enable_NUMA_optimization=true
6.启用后,alert日志中会显示 "NUMA PG = 2, CPUs = 48" 其中,PG要大于1才表示ORACLE使用了NUMA特性

11gR2版本如何启用NUMA:
1._enable_NUMA_support=TRUE
2._enable_NUMA_optimization参数已经被废弃
3.如果启用OK,在alert日志中将看到如下信息:
  ...NUMA system found and support enabled (8 domains - 6,6,6,6,6,6,6,6)...

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8242091/viewspace-776009/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-04-06

  • 博文量
    251
  • 访问量
    962038