ORACLE 記憶體規劃及LINUX核心設定
原創 轉載請註明出處
公司的新伺服器到了記憶體24GB預裝 LINUX AS 5.1 64BIT,我正在對其進行安裝,同時需要部署DATA GUARD 最大效能模式。我準備未SGA分配
15GB空間,PGA無所謂了分給4GB好了,反正PGA也是
按需分配的,不像SGA例項一啟動就分配了,當然設定包括幾個重要的核心引數,主要涉及到LINUX共享記憶體,重要的2個核心引數是SHMMAX和
SHMALL,
SHMMAX:表示任意時刻系統可以分配一個共享記憶體段的最大值,當然我們希望SGA包含在一個共享段裡面,所以這個值要設定外>15G,設定為
16G好了。
SHMALL: 表示任意時刻系統可以分配給共享記憶體段頁數的最大值,同樣這個值至少不能小於我們最大的共享記憶體段的大小SHMMAX吧,這個值
是以記憶體頁為單位的,檢視記憶體頁大小使用getconf PAGE_SIZE
一般都4096,所以是16GB/4KB=16777216KB/4KB=4194304
所以核心引數修改為
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
kernel.shmall = 4194304
kernel.shmmax = 17179869184
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
下面的文件取自METALINK
Applies to:
Oracle Server - Enterprise Edition - Version: 9.2.0.4 to 11.1.0.6
SUSE \ UnitedLinux x86-64
Red Hat Enterprise Linux Advanced Server x86-64 (AMD Opteron Architecture)
x86 64 bit (for Enterprise Linux only)
Symptoms
When trying to increase the SGA to approach half available RAM with an Oracle 64bit version on a Linux 64bit operating
system, even though shmmax is set to match half the amount of RAM, you get the following error when trying to start the
instance:
SQL> startup nomount
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device
Changes
shmall is too small, most likely is set to the default setting of 2097152
$ cat /proc/sys/kernel/shmall
2097152
Cause
shmall is the total amount of shared memory, in pages, that the system can use at one time.
Solution
Set shmall equal to the sum of all the SGAs on the system, divided by the page size.
The page size can be determined using the following command:
$ getconf PAGE_SIZE
4096
For example, if the sum of all the SGAs on the system is 16Gb and the result of '$ getconf PAGE_SIZE' is 4096 (4Kb) then set
shmall to 4194304 pages
As the root user set the shmall to 4194304 in the /etc/sysctl.conf file:
kernel.shmall = 4194304
then run the following command:
# sysctl -p
# cat /proc/sys/kernel/shmall
4194304
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-667557/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- jvm記憶體設定及記憶體溢位、解決方案JVM記憶體溢位
- linux 設定預留記憶體Linux記憶體
- Oracle:記憶體設定注意事項Oracle記憶體
- Sql Server實體記憶體及虛擬記憶體設定的總結SQLServer記憶體
- Linux 核心高-低端記憶體設定程式碼跟蹤(ARM構架)Linux記憶體
- Linux釋放記憶體及手動釋放Oracle共享記憶體段Linux記憶體Oracle
- 2 Day DBA-管理Oracle例項-管理記憶體-修改記憶體設定-自動記憶體管理Oracle記憶體
- JVM堆記憶體設定JVM記憶體
- Tomcat記憶體設定Tomcat記憶體
- oracle 11G 自動記憶體管理設定Oracle記憶體
- oracle 8i的記憶體引數設定Oracle記憶體
- 《Windows核心程式設計》---又是記憶體Windows程式設計記憶體
- Linux共享記憶體的核心實現Linux記憶體
- Linux核心記憶體管子系統分析Linux記憶體
- Linux核心筆記004 - 從記憶體管理開始,認識Linux核心Linux筆記記憶體
- Linux中設定hugepages 在記憶體中 lock SGALinux記憶體
- 設定SQLserver執行記憶體SQLServer記憶體
- JVM 堆記憶體設定原理JVM記憶體
- Linux記憶體子系統——Locking Pages(記憶體鎖定)Linux記憶體
- windows核心程式設計--記憶體堆疊Windows程式設計記憶體
- linux記憶體管理(六)- 核心新struct - folioLinux記憶體Struct
- Linux核心筆記005 - 越界訪問記憶體,Linux核心處理過程Linux筆記記憶體
- Linux設定虛擬記憶體教學和實戰Linux記憶體
- hugepages_setting(linux大記憶體設定指令碼)Linux記憶體指令碼
- Java 記憶體劃分Java記憶體
- JVM記憶體劃分JVM記憶體
- eclipse設定JVM記憶體堆EclipseJVM記憶體
- eclipse中設定JVM記憶體EclipseJVM記憶體
- ActiveMQ記憶體設定和流控MQ記憶體
- eclipse.ini記憶體設定Eclipse記憶體
- 11g記憶體的設定記憶體
- win10虛擬記憶體怎麼設定 win10虛擬記憶體設定方法Win10記憶體
- 怎麼設定虛擬記憶體win10 win10虛擬記憶體如何設定記憶體Win10
- Win10設定虛擬記憶體方法 Win10怎麼設定虛擬記憶體Win10記憶體
- Oracle索引規劃設計Oracle索引
- winform窗體常規設定記錄ORM
- sqlserver執行時記憶體設定方法SQLServer記憶體
- Oracle 常見故障及日常規劃Oracle