Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

Oracle Potential Server Performance Impact

Posted on 2009-07-07
13
394 Views
Last Modified: 2013-12-27
I have a Solaris 9 server which has three instances of Oracle, a Physical Standby and two development environments.  Following a power cut and UPS failure, my server began to run incredibly slowly following a reboot.  An output from "sar -g 5 5" and "prstat -s size -n 5" show that my server is paging and the top memory resources are Oracle.  The only instance up at the moment is the physical standby.  I am also running a restore from tape to the server.

Is this likely to be an issue with the DR instance? What would be the best way to resolve the issue? Recreate the physical standby?

Thanks,

Terry
michaelt@colt: /d10/oracle/proddata
$ sar -g 5 5
 
SunOS colt 5.9 Generic_122300-10 sun4u    07/07/2009
 
09:34:37  pgout/s ppgout/s pgfree/s pgscan/s %ufs_ipf
09:34:42   336.88  5265.48  5640.63 428815.75     0.00
09:34:47   430.27  6682.62  7222.07 411592.19     0.00
09:34:52   442.72  6929.51  7306.21 320783.28     0.00
09:34:57   427.18  6656.50  7055.53 301319.03     0.00
09:35:03   290.65  4474.66  4975.00 332370.56     0.00
 
Average    383.01  5960.94  6400.87 357967.91     0.00
michaelt@colt: /d10/oracle/proddata
$ prstat -s size -n 5
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP
 14997 oracle   3636M 3556M sleep   59    0   0:01:01 0.0% oracle/71
   889 oracle   3611M 3556M sleep   59    0   0:01:35 0.0% oracle/258
 15017 oracle   3611M 3556M sleep   59    0   0:00:12 0.0% oracle/11
 14963 oracle   3611M 3557M sleep   59    0   0:00:00 0.0% oracle/11
   918 oracle   3609M 3549M sleep   59    0   0:00:01 0.0% oracle/1
Total: 124 processes, 633 lwps, load averages: 4.14, 3.20, 2.15

Open in new window

0
Comment
Question by:gflmartins
  • 5
  • 4
  • 2
  • +1
13 Comments
 
LVL 48

Expert Comment

by:schwertner
ID: 24792481
Please check the network parameters and the NIC cards.
Are they working properly?
Are the parameters correct?

Also check the sessions on the servers:

SELECT count(*) FROM v$session;

The memory should be used up to the last byte - this is the normal behavior of Unix.
But paging is not good.
0
 
LVL 40

Expert Comment

by:mrjoltcola
ID: 24793644
What is the overall system memory usage? It may be that you configured Oracle with too much memory and it did not take affect until the restart. Perhaps someone modified init settings with "alter system .. scope = spfile", so they did not affect until reboot.
0
 

Author Comment

by:gflmartins
ID: 24793787
well sga_max_size is set to 3673741824 whilst shminfo_shmmax is a massive 9663676416 as the /etc/system file was taken from a production system.  The server itself has only 4GB or RAM so I figure, it has over allocated shmmax thus forcing everything else to page into virtual memory (as is currenlty happening on an idle db with no users logged on or requests running).

do you aggree?
0
NFR key for Veeam Backup for Microsoft Office 365

Veeam is happy to provide a free NFR license (for 1 year, up to 10 users). This license allows for the non‑production use of Veeam Backup for Microsoft Office 365 in your home lab without any feature limitations.

 
LVL 40

Expert Comment

by:mrjoltcola
ID: 24793835
Yes! That is way too much memory your SGA_MAX_SIZE should _never_ be larger than your physical memory size. Oracle will just use the virtual memory with no regard to physical vs swap space

That is your problem.
0
 
LVL 40

Accepted Solution

by:
mrjoltcola earned 250 total points
ID: 24793860
Also my rule of thumbs:

1) Dedicated DB server I always leave at least 25% free memory overhead, and that may vary depending on other factors. For machines with 4GB total RAM or less, I leave 1.5GB free for OS. Windows needs this much.

2) On shared DB server (with other apps) I never dedicate more than 50% RAM to Oracle, and again that changes with other apps as well.
0
 

Author Comment

by:gflmartins
ID: 24793865
SGA_MAX_SIZE is slightly smaller than virtual memory, it is shminfo_shmmax  which is ridiculously high.  Does this basically have the same outcome?

Thanks,

Terry
0
 
LVL 40

Expert Comment

by:mrjoltcola
ID: 24793901
Even if SGA_MAX_SIZE is slightly smaller, this may not leave enough overhead for:

1) PGA
2) Oracle process overhead
3) Other OS  / kernel processes
4) Other applications

So I recommend decrease SGA to no more than 50% of total RAM or you will have the problems you see. For 4GB RAM I recommend a 2GB or less SGA.
0
 

Author Comment

by:gflmartins
ID: 24793948
That certainly sounds feasible - I will look into changing this now and see what the results are.  Thanks mrjoltcola :)
0
 
LVL 34

Assisted Solution

by:johnsone
johnsone earned 250 total points
ID: 24794009
Is your physical standby open for read only operations?  If not, then you can reduce the SGA to a very small size (say 300M or even smaller).  The database is only in recovery mode an does not require a large SGA.
0
 

Author Comment

by:gflmartins
ID: 24794049
Hi,
No the physical standby is just mounted as standby database and not openned.  I will have two development instances on this server once I have sorted out the performance issues as well so any space will be graciously received.

Thanks,

Terry
0
 
LVL 34

Expert Comment

by:johnsone
ID: 24794194
Then there is definitely no need for an SGA that large.  Cut it way down.
0
 

Author Comment

by:gflmartins
ID: 24794204
Good advice - thanks Johnsone
0
 
LVL 48

Expert Comment

by:schwertner
ID: 24795483
SGA is too big. Take in account that every connection uses 2-5 MB RAM.
Will recommend smaller SGA, because due the latches big SGA works slower.
Also use automatic memory allocation that will dinamically change the size of the SGA caches.
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
T-SQL: Do I need CLUSTERED here? 13 59
Teradata converting character to integer 2 26
minium over 4 numeric columns for each row in oracle 2 27
date show only hh:mm 2 25
SQL Command Tool comes with APEX under SQL Workshop. It helps us to make changes on the database directly using a graphical user interface. This helps us writing any SQL/ PLSQL queries and execute it on the database and we can create any database ob…
CCModeler offers a way to enter basic information like entities, attributes and relationships and export them as yEd or erviz diagram. It also can import existing Access or SQL Server tables with relationships.
This video explains at a high level with the mandatory Oracle Memory processes are as well as touching on some of the more common optional ones.
This video shows how to copy an entire tablespace from one database to another database using Transportable Tablespace functionality.

856 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question