Results 1 to 2 of 2
  1. #1
    Join Date
    Dec 2002
    Posts
    2

    Unanswered: [HELP]memory amount of SGA not being allocated whe instance is up and running

    Hi all,

    Could someone help me out with unexpected low memory usage I am facing when I start the DB instance.

    I am running Oracle 8.1.7.3.2 on Windows 2000 Adv Srv with
    2GB of RAM and 3GB of swap area.

    I only have 1 instance with memory related init parameters setted as below.

    shared_pool_size = 293510451
    large_pool_size = 104857600
    java_pool_size = 20971520
    db_block_buffers = 107289
    sort_area_size = 1048576
    db_block_size = 8192

    avg of about 150~250session so I was expecting the oracle
    to allocate about 1.5GB of RAM when the instance is up and running.

    Now, when I startup the instance, EXPECTING the os to
    allocate about 1.5GB of RAM for oracle, and check the
    memory allocation status from the "task manager", it
    shows that 1.4GB of physical memory is AVAILABLE. In another words, the whole system is only using 600MB of physical memory.

    Could anyone explain me why this is happening and the solution to solve this problem?

    BTW, even if I give loads to oracle using the Mercury LoadRunner, the memory allocation status does not change much while oracle is barely processing each transactions.

    Thanks, in advance

  2. #2
    Join Date
    Jan 2003
    Posts
    1

    Re: [HELP]memory amount of SGA not being allocated whe instance is up and running

    this is somewhat more complicated.
    W2k uses, just as every modern o/s does, a virtual memory concept. This means that processes can use more memory than physically is in the machine. I tell this because there is no mapping between what you are using on o/s level (which is virtual) and what is used physically.

    When activating the taskmanager, you can see the memory usage per process. Oracle on W2k is implemented using threads under a single process, not seperate processes for each database process. When looking at the 'oracle.exe' process, you can see the memory it uses.

    Please mind that the 'oracle.exe' process uses not all the sizes you mentioned:
    the 'oracle.exe' processes uses:
    -shared pool (293m is *way* too large; I would suggest 100m)
    -large pool (are you using MTS? if not, do not set large pool)
    -java pool (set at default; if not using java, leave it this way!)
    -log buffer (not mentioned; do not set too large; 200k is good)
    -buffers (858m)

    If I add these numbers, it leads to 293+104+20+858 = 1275m

    When you are doing load tests, the testprogram interacts with the database using a database connection. The process associated with the connection is referred often as "server process" or "shadow process". This processes use the 'oracle.exe' process too. The typical footprint of a oracle client process is about 1m. Processes do not default have the sort_area used, it is allocated on demand.

    So, to complete the used memory calculation, 1275+200 (avg)= 1475m, what looks awfull much like you've measured.

    Hope this gives some clarification about oracle's memory usages....

    Originally posted by valkyrie
    Hi all,

    Could someone help me out with unexpected low memory usage I am facing when I start the DB instance.

    I am running Oracle 8.1.7.3.2 on Windows 2000 Adv Srv with
    2GB of RAM and 3GB of swap area.

    I only have 1 instance with memory related init parameters setted as below.

    shared_pool_size = 293510451
    large_pool_size = 104857600
    java_pool_size = 20971520
    db_block_buffers = 107289
    sort_area_size = 1048576
    db_block_size = 8192

    avg of about 150~250session so I was expecting the oracle
    to allocate about 1.5GB of RAM when the instance is up and running.

    Now, when I startup the instance, EXPECTING the os to
    allocate about 1.5GB of RAM for oracle, and check the
    memory allocation status from the "task manager", it
    shows that 1.4GB of physical memory is AVAILABLE. In another words, the whole system is only using 600MB of physical memory.

    Could anyone explain me why this is happening and the solution to solve this problem?

    BTW, even if I give loads to oracle using the Mercury LoadRunner, the memory allocation status does not change much while oracle is barely processing each transactions.

    Thanks, in advance

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •