Memory Question

Tobias Speckbacher TSpeckbacher at quova.com
Thu Jul 29 00:48:05 UTC 2004


It's not so much about how much you leave for the OS, more about how
many connections are you going to have to service and what these
connections are going to do in Oracle.  Oracle's memory requirements are
not satisfied with simply allocating SGA and PGA, each connection
creates a process which again needs a certain amount of memory which
again is variable.

Partial list of oracle connection processes:

31296 oracle    15   0  160M 160M  158M S    38.2  2.2   9:40 oracle
12465 oracle    18   0 1150M 1.1G 1145M R    33.2 16.3  12:37 oracle
24611 oracle    15   0 1690M 1.7G 1689M D    31.3 24.0  24:51 oracle
31529 oracle    15   0  810M 810M  803M S    17.4 11.5  15:34 oracle
31542 oracle    15   0  803M 803M  795M S    16.6 11.4  15:31 oracle
31525 oracle    15   0  817M 817M  809M S    15.6 11.6  15:28 oracle
31521 oracle    15   0  807M 807M  799M S    15.4 11.4  15:27 oracle
31517 oracle    15   0  838M 838M  830M S    14.0 11.9  15:45 oracle
31546 oracle    15   0  758M 758M  751M S    11.8 10.7  15:40 oracle
 1914 oracle    15   0  644M 644M  641M S     6.9  9.1   0:36 oracle
 1920 oracle    15   0  439M 439M  436M D     6.7  6.2   0:24 oracle
 1916 oracle    15   0  516M 516M  513M S     6.5  7.3   0:27 oracle
29322 oracle    15   0 11852 8416  8256 S     3.9  0.1 851:02 oracle


I run an Oracle system with 8GB physical memory.
My memory layout as of 5 minutes looks like this:

        total:    used:    free:  shared: buffers:  cached:
Mem:  7369531392 7112523776 257007616 2756382720 621797376 2528374784
Swap: 10741956608 136052736 10605903872
MemTotal:      7196808 kB
MemFree:        250984 kB
MemShared:     2691780 kB
Buffers:        607224 kB
Cached:        2341388 kB
SwapCached:     127728 kB
Active:         308604 kB
Inact_dirty:   5458968 kB
Inact_clean:       548 kB
Inact_target:  1799128 kB
HighTotal:     6422464 kB
HighFree:       245544 kB
LowTotal:       774344 kB
LowFree:          5440 kB
SwapTotal:    10490192 kB
SwapFree:     10357328 kB
BigPagesFree:        0 kB

The Oracle server has 2.7GB SGA, out of that roughly 400MB is allocated
to the shared pool.

I think I have allocated 400MB or so to PGA.

How much memory you on your server will need to operate, really does
depend on how your users will interact with the database.  

You of course always can exhaust physical memory, at which point the
system will start thrashing swap around (usually does not instill much
joy in userland).

Also of consideration, if you exhaust your memory the buffer cache will
shrink (as you can see in my config, it already is pretty tiny 600+MB).
This has the side effect of the system having to process more atomic IO
operations rather than having the luxury of waiting for a good chunk to
come together and flush it out in one operation.

If you are unsure about how much you are really going to need, start
with a high memory config and scale it down until you reach a mode of
operation that is optimal for your application/users.  Just have to set
the expectation that you may have to take the DB down a few times to
adjust the SGA sizing.

-Tobias

-----Original Message-----
From: redhat-list-bounces at redhat.com
[mailto:redhat-list-bounces at redhat.com] On Behalf Of Parekh, Ketan
Sent: Wednesday, July 28, 2004 2:21 PM
To: General Red Hat Linux discussion list
Subject: RE: Memory Question

As a general rule of thumb how much memory should be left for the OS ?

Assuming I have 4 GB physical memory ?

Thanks
Ketan

-----Original Message-----
From: redhat-list-bounces at redhat.com
[mailto:redhat-list-bounces at redhat.com] On Behalf Of Tobias Speckbacher
Sent: Wednesday, July 28, 2004 2:31 PM
To: General Red Hat Linux discussion list
Subject: RE: Memory Question



Looking at your kernel version you are using AS2.1.
The only parameters you should have had to change are shmmax, sem
,shmall, semmni (some of the default are acceptable)
The commands indeed should return the correct output.

The OS should be using far less than 500MB.

As you can see in the info you posted.

Free: 154764
Buffers: 333072
Total "free" = 476MB

So OS memory used should be 4GB - 476MB - SGA - PGA

In any case an SGA this large with 4GB memory will cause issues as you
start using the DB from my experience.

-Tobias

-----Original Message-----
From: redhat-list-bounces at redhat.com
[mailto:redhat-list-bounces at redhat.com] On Behalf Of Parekh, Ketan
Sent: Wednesday, July 28, 2004 12:07 PM
To: redhat-list at redhat.com
Subject: Memory Question

HI! Folks,

 

I need some help with memory stats. I have an Oracle database running. 

Below is he OS version : 

Linux tsonode1 2.4.9-e.25enterprise #1 SMP Fri Jun 6 17:55:13 EDT 2003
i686 unknown

 

oracle at tsonode1[tsodev1]$ free -t

                     total         used       free     shared    buffers
cached

Mem:       2058760    1814816     243944     742204     243924
213272

-/+ buffers/cache:      1357620     701140

Swap:      2096472     217516    1878956

Total:     4155232      2032332    2122900

 

>From the above as to what I understand is 

Total Physical memory is : 2 GB

USED                               1.35 GB is used

Free                                  701 Megs

 

So of the 1.35 used 

Oracle SGA is                             950 Megs

Oracle PGA ( Process memory )  260 Megs

Other non-oacle process             150 Megs

                        Total                 1.35 GB

 

Now there is a limitation on RH 2.1 Advanced server for having oracle
SGA > 1.8 GB. To increase the SGA we had to 

Changes to the memory settings and relinked the oracle binaries as
explained in the RH doc. 

 

OS : Linux tsonode2 2.4.9-e.46enterprise #1 SMP Wed Jun 30 18:11:26 EDT
2004 i686 unknown

 

                     total       used       free     shared    buffers
cached

Mem:       3863184    3708420     154764    2461228     333072
587348

-/+ buffers/cache:       2788000    1075184

Swap:      2096472       1116    2095356

Total:       5959656    3709536    2250120

 

SGA                  : 2.75 GB

PGA                  : 837 Megs

 

Total Physical memory is 4 GB on ths host.

 

So now the confusion part is is Oracle has sucked in 2.75 + 537 = 3.5 GB
- is the OS using only 500 megs ?

Does free -t , top vmstat commands show the right numbers after this
change in the kernel ?

 

BTW : both the free -t outputs are from diff nodes - I put them to
compare and see where am I going wrong here.

 

Thanks for your help..

 

Ketan

 

 

-- 
redhat-list mailing list
unsubscribe mailto:redhat-list-request at redhat.com?subject=subscribe
https://www.redhat.com/mailman/listinfo/redhat-list


-- 
redhat-list mailing list
unsubscribe mailto:redhat-list-request at redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/redhat-list


-- 
redhat-list mailing list
unsubscribe mailto:redhat-list-request at redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/redhat-list





More information about the redhat-list mailing list