标签:
ORA-27125: unable to create shared memory segment查询了一下,发现问题和linux上的hugetbl有关。
Cause: shmget() call failed
Action: contact Oracle support
[oracle@yans1 ~]$ id oracle
uid=500(oracle) gid=502(oinstall) groups=502(oinstall),501(dba)
[oracle@yans1 ~]$ more /proc/sys/vm/hugetlb_shm_group
0
# echo 501 > /proc/sys/vm/hugetlb_shm_group然后启动数据库,问题消失。
When a process uses some memory, the CPU is marking the RAM as used by that process. For efficiency, the CPU allocate RAM by chunks of 4K bytes (it‘s the default value on many platforms). Those chunks are named pages. Those pages can be swapped to disk, etc.
Since the process address space are virtual, the CPU and the operating system have to remember which page belong to which process, and where it is stored. Obviously, the more pages you have, the more time it takes to find where the memory is mapped. When a process uses 1GB of memory, that‘s 262144 entries to look up (1GB / 4K). If one Page Table Entry consume 8bytes, that‘s 2MB (262144 * 8) to look-up.
Most current CPU architectures support bigger pages (so the CPU/OS have less entries to look-up), those are named Huge pages (on Linux), Super Pages (on BSD) or Large Pages (on Windows), but it all the same thing.
Hugepages,hugetlb_shm_group与ORA-27125
标签:
原文地址:http://www.cnblogs.com/djinmusic/p/5702534.html