1.故障现象:
因为Hugepage的值小于SGA的值,导致内存空间浪费,数据库僵死,进程僵死的故障。
2.解决方法:
在oracle实例启动的前提下,通过oracle hugepages_settings.sh脚本计算出vm.nr_hugepages 的值的大小,并将该值修改到/etc/sysctl.conf文件中的vm.nr_hugepages.
Hugepage影响说明:
sga_max_size和ipcs计算出来的值相差不大,但是要求hugepage的值能比sga_max_size或者ipcs值大1g左右,如果内存空闲较多,可以再多大几个G。另外,数据库如果调整shared_pool, large_pool,
log_buffer, db_cache_size, java_pool, stream_pool 参数时候(或者调整总SGA的时候),必须考虑系统层次Hugepage的值,始终要求hugepage的值要大于SGA最大值。
1. Hugepage设置优点如下,援引官方给出说明:
(1) Larger Page Size and Less # of Pages: Default page size is 4K whereas the HugeTLB size is 2048K.
Thatmeans the system would need to handle 512 times less pages.
(2) No Page Table Lookups:Since the HugePages
are not subject to replacement (despite regular pages),page table lookups
are not required.
(3) Better Overall Memory Performance: On virtual memory systems (any modern OS) each memory
operation isactually two abstract memory operations. With HugePages, since
there are lessnumber of pages to work on, the possible bottleneck on page
table access isclearly avoided.
(4) No Swapping: We must avoidswapping to
happen on Linux OS at all Document1295478.1.
HugePages are not swappable (whereas regular pages are).Therefore there is
no page replacement mechanism overhead. HugePages areuniversally regarded
as pinned.
(5) No ‘kswapd’ Operations: kswapdwill get very busy if there is a very large area to be
paged (i.e. 13 millionpage table entries for 50GB memory) and will use an
incredible amount of CPUresource. When HugePages are used, kswapd is not
involved in managing them. Seealso Document361670.1
|
|
2, 若hugepage设置的值小于oracle的SGA,有如下几个方面影响:
(1) 数据库申请新的free内存,若free空间不够,使用到swap空间,数据库性能极差,极端情况数据库无法启动。
(2) 数据库若不使用hugepage来加载SGA,在数据库高负载情况下,容易出现CPU和IO等待均很高,直到数据库被hang死。
(3) 其中hugepage的值一旦被设置,操作系统层次即被标识为used状态,若数据库不使用,则出现严重浪费现象。
|
|
3,相关说明文档,请参考metalink文章如下:
|
|
HugePages and Oracle Database 11g AutomaticMemory Management
(AMM) on Linux [ID 749851.1]
Hugepages are Not used by Database BufferCache [ID 829850.1]
Oracle Not Utilizing Hugepages [ID803238.1]
/proc/meminfo Does Not Provide HugePagesInformation on Oracle
Enterprise Linux (OEL5) [ID 860350.1]
HugePages Not Released On Oracle RDBMSInstance Shutdown with
RHEL / EL 5 Update 1 (5.1) [ID 550443.1]
Shell Script to Calculate ValuesRecommended Linux HugePages /
HugeTLB Configuration [ID 401749.1]
HugePages on Oracle Linux
64-bit [ID 361468.1]
HugePages on Linux: What It Is… and WhatIt Is Not… [ID 361323.1]
Document749851.1 HugePages and Oracle
Database 11g Automatic Memory Management(AMM) on Linux
Document829850.1 Hugepages Are Not
Used by Database Buffer Cache
Document803238.1 Oracle Not Utilizing
Hugepages
Document728063.1 Setup HugePages in
an Guest Does Not Work with Oracle VM 2.1or 2.1.1
Document550443.1 HugePages Not
Released On Oracle RDBMS Instance Shutdown withRHEL / EL 5 Update 1 (5.1)
Document860350.1 /proc/meminfo Does
Not Provide HugePages Information onOracle
Enterprise Linux (OEL5)
|
|
未经允许不得转载:SRE空间 » 关于HugePage参数配置不合理造成oracle数据库hang死
评论前必须登录!
注册