Database resource configuration

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Database resource configuration

satish
Dear Erman,

Need your expertise

We are on oracle version 11.2.0.1.0 supporting tomcat application server

 
We have only one instance running on server.It has 32 GB ram out of which we have assigned 12GB to SGA and 4 GB to PGA as below.

1)From the free output below,We could see the system has 30G free space and the used is 2G.We could not understand why 5G of swap is used here when we have lots of free space.Is this normal?Will this create performance issues?


We have 6 physical core and 2 sockets,total 12 cores on this server.

2)Idle shows 90% but some processes are there in runqueue.Is this CPU problem?

 

SQL> sho parameter sga

 

NAME                                 TYPE            VALUE

------------------------------------ --------------- ------------------------------

lock_sga                             boolean         FALSE

pre_page_sga                         boolean         FALSE

sga_max_size                         big integer     12032M

sga_target                           big integer     12032M

 

SQL> sho parameter pga

 

NAME                                 TYPE            VALUE

------------------------------------ --------------- ------------------------------

pga_aggregate_target                 big integer     4000M

SQL>

 

[oracle@PAPLVERTA~]$ free -m

             total       used       free     shared    buffers     cached

Mem:         32158      22387       9770          0         44      20278

-/+ buffers/cache:       2065      30092

Swap:        63999       5472     58527

 

[oracle@PAPLVERTA~]$ cat /proc/cpuinfo|grep -i proc|wc -l|grep -v grep

24

 

 

NAME                                 TYPE            VALUE

------------------------------------ --------------- -----

cpu_count                            integer         24

parallel_threads_per_cpu             integer         2

resource_manager_cpu_allocation      integer         24

SQL>

 

[oracle@PAPLVERTA~]$ sar -u 2 5

Linux 2.6.18-194.el5 (SSSTINDCPODB01.SSST.ORG)  06/04/2019

 

 

07:33:53 AM       CPU     %user     %nice   %system   %iowait    %steal     %idle

07:33:55 AM       all      9.83      0.00      2.08      0.04      0.00     88.04

07:33:57 AM       all      5.89      0.00      0.19      0.00      0.00     93.92

07:33:59 AM       all      7.89      0.00      0.29      0.08      0.00     91.73

07:34:01 AM       all      7.39      0.00      1.10      0.00      0.00     91.50

07:34:03 AM       all     10.20      0.00      0.75      0.02      0.00     89.03

Average:          all      8.24      0.00      0.88      0.03      0.00     90.84

[oracle@PAPLVERTA~]$

 

 

SQL> !top

top - 07:33:38 up 8 days, 15:26,  1 user,  load average: 5.75, 5.99, 5.96

Tasks: 434 total,   4 running, 430 sleeping,   0 stopped,   0 zombie

Cpu(s):  5.3%us,  1.2%sy,  0.0%ni, 91.9%id,  1.5%wa,  0.0%hi,  0.1%si,  0.0%st

Mem:  32930016k total, 22875996k used, 10054020k free,    57400k buffers

Swap: 65535992k total,  5603816k used, 59932176k free, 21100308k cached

 

 

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

17641 oracle    16   0 12.0g 1.0g 1.0g R 100.9  3.2   0:33.53 oracleCAPROD (LOCAL=NO)

14411 oracle    20   0 12.0g 1.6g 1.6g R 98.9  5.2  41:25.39 oracleCAPROD (LOCAL=NO)

17194 oracle    24   0 12.2g 4.0g 3.8g R 98.9 12.9   8:38.33 oracleCAPROD (LOCAL=NO)

17698 oracle    15   0 13000 1292  740 R  1.9  0.0   0:00.02 top

    1 root      15   0 10348  684  576 S  0.0  0.0   0:12.77 init [5]

    2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.16 [migration/0]

    3 root      34  19     0    0    0 S  0.0  0.0   0:00.37 [ksoftirqd/0]

    4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 [watchdog/0]

    5 root      RT  -5     0    0    0 S  0.0  0.0   0:00.15 [migration/1]

    6 root      34  19     0    0    0 S  0.0  0.0   0:04.33 [ksoftirqd/1]

    7 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 [watchdog/1]

    8 root      RT  -5     0    0    0 S  0.0  0.0   0:00.02 [migration/2]

 

 

[oracle@PAPLVERTA~]$ vmstat 2 5

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------

r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

4  0 5603816 9999456  58344 21102688    0    1   168   426    1    1  5  1 92  1  0

7  0 5603812 9775612  58384 21102732    0    0  1008   168 1273 2908 17  4 79  0  0

7  0 5603812 9475436  58392 21102824    0    0  1000    72 1017 2584 26  3 71  0  0

4  0 5603812 9593280  58448 21102788    0    0  1004   110 1085 2722 18  1 82  0  0

2  0 5603812 9717060  58488 21102812    0    0  1016   146 1168 2803 12  0 87  0  0

[oracle@PAPLVERTA~]$


The recent change is,we have increased SGA from 6gb to 12gb....increased pga size from 1gb tp 4gb.

Thank you,
satish

Reply | Threaded
Open this post in threaded view
|

Re: Database resource configuration

ErmanArslansOracleBlog
Administrator
1)Linux uses swap in any case.. It is in its nature and that's why Swap usage is not important unless you see lots of swapin and swapout operation.. (you can check using sar utility)

2)You have 12 core and 24 threads then.. If the CPU is idle %90 of the time, then you don't have a big load your server.
I will give some additional info to you;

Check the load average as well..
So if you have one cpu-core machine. The optimum value for maximum load average is 1.
If you have multicore or multicpu machine; our rule of thumb is -> max load average = number of cpu cores.
Of course , multicore and multicpu are different in technology, in terms of cache and etc, but this is what we accept roughly..
There are situations where the load average can be high even if the cpu utilization is low.
I mean, we can have free cpu cyles in system but we should have to wait for other things.. These situation will lead our load average to increase while our cpu utilization does not change..  

Reply | Threaded
Open this post in threaded view
|

Re: Database resource configuration

satish
Dear erman,

Different meanings for load averages from different sites.

Is below definition holds true?

the load average represents the average number of processes that have to wait for CPU time during the last 1, 5 or 15 minutes

How do you define load average?
How do you define the runqueue?

Your answers will clarify many confusions about these things

Thank you
Reply | Threaded
Open this post in threaded view
|

Re: Database resource configuration

ErmanArslansOracleBlog
Administrator
In Linux, the load average is calculated as the average number of runnable or running tasks (R state), and the number of tasks in uninterruptible sleep (D state) over the specified interval.

your statement about "Last 1, 5 and 15 minutes" is true.
CPU utilization is another thing.

High CPU utilization may not necessarily indicate that there is a problem; it could just mean that the system is being well utilized.

About runqueue -> Every process enters the runqueue before its processed by the processor.
run-queue: Number of active ( running ) and queued processes.

For ex: In a 8 core system, a run queue with a length of 100 can be in the form of 8 processes actively being served by CPU and 92 queued and waiting for execution.