Disclaimer

Thursday, 9 September 2021

ORA-27102: out of memory Linux-X86_64 Error

Shared Memory – startup database – ORA-27102: out of memory Linux-X86_64 Error: 28: No space left on device

SQLgt startupORA-27102 out of memoryLinux-x8664 Error 28 No space left on deviceI have used RHEL X8664 memory 32GB and setted sgamaxsize20G sgatarget20G and … cat procsyskern


SQL> startup 

ORA-27102: out of memory 

Linux-x86_64 Error: 28: No space left on device 


I have used RHEL X86_64 + memory (32GB) and setted sga_max_size=20G + sga_target=20G and … 


$ cat /proc/sys/kernel/shmmax 

26843545600 


What wrong with my kernel tuning… 

So, I checked metalink (301830.1) and some recommend from RHEL 


They told; set SHMALL to the total amount of physical RAM divided by page size. 


SHMALL => Total amount of shared memory available (bytes or pages) 



then: 


Check Page Size: 


$ getconf PAGE_SIZE 

4096 


Determine the system wide maximum number of shared memory pages: 


$ cat /proc/sys/kernel/shmall 

2097152 


=> My system 64bits with memory 32GB

then 1024*1024*1024*32/4096 = 8388608 


So, change kernel.shmall = 8388608 


$ su – root 


# echo 8388608 > /proc/sys/kernel/shmall 


Or 

modify /etc/sysctl.conf file: 


kernel.shmall=8388608 


and 


# sysctl -p 


After changed… check and startup database again: 


$ cat /proc/sys/kernel/shmall 8388608 


SQL> startup . . . 


— NO ERROR — 


From this idea with memory 32GB 


mem=$(free|grep Mem|awk ‘{print$2}’) 

totmem=$(echo “$mem*1024″|bc) 


huge=$(grep Hugepagesize /proc/meminfo|awk ‘{print $2}’) 


max=$(echo “$totmem*75/100″|bc) 


all=$(echo “$max/$huge”|bc) 


echo “kernel.shmmax = $max” 

echo “kernel.shmall = $all” 



Result: 


kernel.shmmax = 25213120512, 


kernel.shmall = 12311094 


However, This case “ORA-27102: out of memory Linux-X86_64 Error: 28: No space left on device” , 


solved by setting


SHMALL = MemTotal(byte)/PAGE_SIZE




No comments:

Post a Comment

Understanding SQL Plan Baselines in Oracle Database

  Understanding SQL Plan Baselines in Oracle Database SQL Plan Baseline is the feature in Oracle started from Database 11g that helps to pre...