Issue:
Seeing slow SGA allocation on database startup (even in startup nomount taking long time appears hung/hang)
Alert Log stuck at "DISM Started" Line as shown below:
TRUSS output shows startup nomount is sleeping... looping and Err#11 EAGAIN at semtimedop and sleeping... at pollsys
When truss ( truss -o connect.out -f sqlplus / as sysdba ) the startup or shutdown, or truss the SQL*Plus connection, they all will show spinning on the same semtimedop command.
This is OS level issues.
Cause:
The underlying problem in this specific case was an OS Bug.
If DISM is enabled in a Local Domain / Local Zone configuration the SGA is put into a memory segment which is larger than the actual size of the SGA.
Solution #1:
Disable the use of DISM by the database on Oracle Solaris in one of two ways:
1.Unset the SGA_MAX_SIZE / MEMORY_MAX_TARGET / MEMORY_TARGET parameters.
2.Ensure SGA_MAX_SIZE is set to the same value as SGA_TARGET parameter or equal to the sum of all SGA components in the instance.
Solution #2:
Need to check with OS admin to determine the underlying cause of the semtimedop call failure.
Please apply official patch 150400-02 or later at OS Level.
Workaround is available by setting the following in /etc/system:
set disable_ism_large_pages=0x74
A reboot is required to make the change effective.
Thanks a lot for the post, this solved my issue..
ReplyDelete