問題:
在一個具有128G內存的Centos7.9的系統上,創建多個oracle 12.2.0.1實例時,后面的實例無法啟動,報錯:
SQL> ORA-27125: unable to create shared memory segment Linux-x86_64 Error: 28: No space left on device Additional information: 3822 Additional information: 4278190080
經過使用strace跟蹤,發現:
[pid 13722] shmget(IPC_PRIVATE, 4278190080, IPC_CREAT|IPC_EXCL|0600) = -1 ENOSPC (No space left on device)
分析:
經查,該錯誤是由於無法分配共享內存段引起!!
運行“free -h”,發現系統的可用內存很多; “df -h” 發現tempfs系統相關掛載點 也有很多的空間;
運行“ipcs -l” 發現【
------ Shared Memory Limits -------- max number of segments = 4096 max seg size (kbytes) = 32780378 max total shared memory (kbytes) = 26224300 min seg size (bytes) = 1
】共享內存部分,結合“lpcs -u”發現【
------ Shared Memory Status -------- segments allocated 20 pages allocated 6293514 pages resident 3661252 pages swapped 0 Swap performance: 0 attempts 0 successes
】當前linux系統的“kernel.shmall = 6556075”,也就總計最大共享內存限制在24G左右,不符合預期!
解決:
修改/etc/sysctl.conf內的內核參數kernel.shmall = 65560750 (直接增加一個0 :-)
sysctl -p 使之生效
再次創建oracle實例,ok!
附注:
1. kernel.shmmax : 是核心參數中最重要的參數之一,用於定義單個共享內存段的最大值。設置應該足夠大,能在一個共享內存段下容納下整個的 SGA , 設置的過低可能會導致需要創建多個共享內存段,這樣可能導致系統性能的下降。至於導致系統下降的主要原因為在實例啟動以及 ServerProcess 創建的時候,多個小的共享內存段可能會導致當時輕微的系統性能的降低 ( 在啟動的時候需要去創建多個虛擬地址段,在進程創建的時候要讓進程對多個段進行“識別”,會有一些影響 ) ,但是其他時候都不會有影響。 官方建議值: 32 位 linux 系統:可取最大值為 4GB ( 4294967296bytes ) -1byte ,即 4294967295 。建議值為多於內存的一半,所以如果是 32 為系統,一般可取值為 4294967295 。 32 位系統對 SGA 大小有限制,所以 SGA 肯定可以包含在單個共享內存段中。 64 位 linux 系統:可取的最大值為物理內存值 -1byte ,建議值為多於物理內存的一半,一般取值大於 SGA_MAX_SIZE 即可,可以取物理內存 -1byte 。 內存為 12G 時,該值為 12*1024*1024*1024-1 = 12884901887 內存為 16G 時,該值為 16*1024*1024*1024-1 = 17179869183 內存為 32G 時,該值為 32*1024*1024*1024-1 = 34359738367 內存為 64G 時,該值為 64*1024*1024*1024-1 = 68719476735 內存為 128G 時,該值為 128*1024*1024*1024-1 = 137438953471 2. kernel.shmall : 該參數控制可以使用的共享內存的總頁數。 Linux 共享內存頁大小為 4KB, 共享內存段的大小都是共享內存頁大小的整數倍。 一個共享內存段的最大大小是 16G ,那么需要共享內存頁數是 16GB/4KB==4194304 (頁), 當內存為 12G 時, kernel.shmall = 3145728 當內存為 16G 時, kernel.shmall = 4194304 當內次為 32G 時, kernel.shmall = 8388608 當內存為 64G 時, kernel.shmall = 16777216 當內存為 128G 時, kernel.shmall = 33554432 ———————————————— 版權聲明:本文為CSDN博主「不會推車的娘們」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。 原文鏈接:https://blog.csdn.net/shmily_lsl/article/details/103384366