SHMALL, SHMMAX and SGA sizing

简介:

Question: I need to confirm my Linux kernel settings and also get pointers/explanation on how i need to properly setup my kernel for proper operation of the Oracle Server. My aim for the SR is not so much to get actual answers on how to set values. Rather, I need help to clear up the concepts behind the numbers. From the output of the commands below it can be seen that the server has 12 GB of memory and after the kernel is configured (see below output of ipcs -lms command), I have SHMMAX set at 8589933568. After consulting various documents I have come to understand the following, please verify: - The largest SGA size is that defined by PAGESIZE*kernel.shmall (in this case 16GB, which is a mistake apparently as the system only has 12GB of RAM) - It is OK for shmmax to be smaller than the requested SGA. If additional size is needed, then the space will be allocated in multiple pages, as long as the size does not exceed PAGESIZE*kernel.shmall - If more than one Oracle instances reside on the same server, then Linux Kernel settings will have to cater for the largest instance SGA, since - ... different instances will hold completely different memory segments, which will have to seperately adhere to kernel limitations, therefore the kernel limitations do not care for multiple instances, as those are different memory areas - Memory for SGA is allocated completely by setting SGA_TARGET. In a different case, it will be allocated as needed $ free total used free shared buffers cached Mem: 12299352 8217844 4081508 0 190816 6799828 -/+ buffers/cache: 1227200 11072152 Swap: 16775764 90912 16684852 ipcs -lms ------ Shared Memory Limits -------- max number of segments = 4096 max seg size (kbytes) = 8388607 max total shared memory (kbytes) = 16777216 min seg size (bytes) = 1 ------ Semaphore Limits -------- max number of arrays = 128 max semaphores per array = 250 max semaphores system wide = 32000 max ops per semop call = 32000 semaphore max value = 32767 also 'getconf PAGESIZE' returns 4096 Answer: - The largest SGA size is that defined by PAGESIZE*kernel.shmall (in this case 16GB, which is a mistake apparently as the system only has 12GB of RAM) Comment : Yes this needs to comply with the formula : kernel.shmall = physical RAM size / pagesize as per NOTE:339510.1 . - It is OK for shmmax to be smaller than the requested SGA. If additional size is needed, then the space will be allocated in multiple pages, as long as the size does not exceed PAGESIZE*kernel.shmall Comment : Yes it is ok to have SHMMAX<SGASIZE NOTE:567506.1 . The allocation will be done in multiple shared segments either contigues or non contiguous as per NOTE:15566.1 - If more than one Oracle instances reside on the same server, then Linux Kernel settings will have to cater for the largest instance SGA, since different instances will hold completely different memory segments, which will have to seperately adhere to kernel limitations, therefore the kernel limitations do not care for multiple instances, as those are different memory areas. Comment : Yes thats valid for the SHMMAX , but for the SHMALL it is a systemwide kernel variable affected by the physical memory and the pagesize . - Memory for SGA is allocated completely by setting SGA_TARGET. In a different case, it will be allocated as needed. comment : Memory for the SGA is allocated completely by the SGA_MAX_SIZE .


本文转自maclean_007 51CTO博客,原文链接:http://blog.51cto.com/maclean/1277771


相关文章
|
3月前
|
前端开发
对box-sizing的了解
对box-sizing的了解
10 0
|
4月前
|
前端开发
box-sizing: border-box;
box-sizing: border-box;
21 0
|
5月前
|
前端开发 容器
box—sizing 属性的了解
box—sizing 属性的了解
27 0
|
编解码
px、em、rem、vw、vh、vm这些单位的区别
学习过程中将笔记整理跟大家分享,希望对大家也有所帮助,共同成长进步💪~ 如果大家喜欢,可以点赞或留言💕~~~~,谢谢大家⭐️⭐️⭐️~~~
1397 0
|
SQL Oracle 关系型数据库
ORA-00821: Specified value of sga_target 3072M is too small, needs to be at least 12896M
在测试PlateSpine克隆的数据库服务器时,由于资源有限,克隆过来的数据库服务器只给了9G的内存,结果在测试时,老是会出现OOMkiller导致宕机,即out of memory killer,是linux下面当内存耗尽时的的一种处理机制。
2554 0

热门文章

最新文章