monitoring and managing memory

28
15 Copyright © 2004, Oracle. All rights reserved. Monitoring and Managing Memory

Upload: sierra

Post on 16-Jan-2016

35 views

Category:

Documents


0 download

DESCRIPTION

Monitoring and Managing Memory. Objectives. After completing this lesson, you should be able to: Describe the memory components in the SGA Implement Automatic Shared Memory Management Manually configure SGA parameters Use automatic PGA memory management. Keep buffer cache. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Monitoring and Managing Memory

15Copyright © 2004, Oracle. All rights reserved.

Monitoring and Managing Memory

Page 2: Monitoring and Managing Memory

15-2 Copyright © 2004, Oracle. All rights reserved.

Objectives

After completing this lesson, you should be able to:

• Describe the memory components in the SGA

• Implement Automatic Shared Memory Management

• Manually configure SGA parameters

• Use automatic PGA memory management

Page 3: Monitoring and Managing Memory

15-3 Copyright © 2004, Oracle. All rights reserved.

Oracle Memory Structures

Java poolDatabase

buffer cache

Shared pool

Redo log buffer

Large pool

SGA

Streams pool

Serverprocess

1PGA

Serverprocess

2PGA

Back-groundprocess

PGA

Keep buffer cache

Recycle buffer cache

nK Block Size buffer caches

Page 4: Monitoring and Managing Memory

15-5 Copyright © 2004, Oracle. All rights reserved.

Buffer Cache

Data files

SGA

Checkpoint queue

.

.

.

.

DBWn

Server

DB_BLOCK_SIZE

DB_CACHE_SIZE

DB_RECYCLE_CACHE_SIZE

DB_KEEP_CACHE_SIZE

LRU lists

.

.

.

.

DB buffer cache

Page 5: Monitoring and Managing Memory

15-7 Copyright © 2004, Oracle. All rights reserved.

Using Multiple Buffer Pools

SGADB buffer caches

Keep pool

Recycle pool

Default pool

Page 6: Monitoring and Managing Memory

15-8 Copyright © 2004, Oracle. All rights reserved.

Using Multiple Buffer Pools

CREATE INDEX cust_idx … STORAGE (BUFFER_POOL KEEP …);

ALTER TABLE oe.customers STORAGE (BUFFER_POOL RECYCLE);

ALTER INDEX oe.cust_lname_ix STORAGE (BUFFER_POOL KEEP);

Page 7: Monitoring and Managing Memory

15-9 Copyright © 2004, Oracle. All rights reserved.

Shared pool

Librarycache

Datadictionary

cache

UGA

Shared poolShared pool

• Defined by SHARED_POOL_SIZE• Library cache contains statement text, parsed

code, and execution plan.• Data dictionary cache contains definitions for

tables, columns, and privileges from the data dictionary tables.

• UGA contains session information for Oracle Shared Server users when a large pool is not configured.

Shared Pool

Page 8: Monitoring and Managing Memory

15-10 Copyright © 2004, Oracle. All rights reserved.

Shared poolDatabase

buffer cacheRedo log

buffer Large pool

Large Pool

Library cache

Dictionary cache

User global area

• Can be configured as a separate memory area in the SGA

• Is sized by the LARGE_POOL_SIZE parameter

• Is used to store data in memory for:– Backup and restore operations– Session data for the shared servers– Parallel query messaging

Page 9: Monitoring and Managing Memory

15-11 Copyright © 2004, Oracle. All rights reserved.

UGA and Oracle Shared Server

Shared pool

PGA

Shared poolor

large pool Stack space

PGA

Stack space

Cursor state

User session

data

UGA

Dedicated server configuration

Shared server configuration

User session

data

Cursor state

UGA

Page 10: Monitoring and Managing Memory

15-12 Copyright © 2004, Oracle. All rights reserved.

Java Pool

• Can be configured as a separate memory area in the SGA

• Is sized by the JAVA_POOL_SIZE parameter

• Is used to store data in memory for all session-specific Java code and data within the JVM

Shared poolDatabase

buffer cacheRedo log

buffer Large pool Library cache

Dictionary cache

User global area

Page 11: Monitoring and Managing Memory

15-13 Copyright © 2004, Oracle. All rights reserved.

The Redo Log Buffer

SQL> UPDATE employees

2 SET salary=salary*1.1

3 WHERE employee_id=736;

Serverprocess

LGWR

Control files

ARCn

Archivedlog files

Redo log files

Data files

Shared poolRedo logbuffer

Library cache

Dictionary cache

User global area

Database buffer cache

Page 12: Monitoring and Managing Memory

15-14 Copyright © 2004, Oracle. All rights reserved.

Automatic Shared Memory Management: Overview

• Automatically adapts to workload changes

• Maximizes memory utilization

• Helps eliminate out-of-memory errors

Buffer cache

Large pool

Shared pool

Java pool

Buffer cache

Large pool

Shared pool

Java pool

Online users Batch jobs

Page 13: Monitoring and Managing Memory

15-15 Copyright © 2004, Oracle. All rights reserved.

Benefits of Automatic Shared Memory Management

DB_CACHE_SIZESHARED_POOL_SIZELARGE_POOL_SIZEJAVA_POOL_SIZE

Total SGA size

SGA_TARGET

Page 14: Monitoring and Managing Memory

15-16 Copyright © 2004, Oracle. All rights reserved.

SGA Tuning Principles

• Based on workload information, MMAN captures statistics periodically in the background.

• MMAN uses the different memory advisories.

• Memory is moved to where it is most needed.

• Using an SPFILE is recommended:– Component sizes saved across shutdowns– Saved values used to bootstrap component sizes– Avoids having to relearn optimal values

Page 15: Monitoring and Managing Memory

15-17 Copyright © 2004, Oracle. All rights reserved.

Database Control andAutomatic Shared Memory Management

Page 16: Monitoring and Managing Memory

15-18 Copyright © 2004, Oracle. All rights reserved.

Manual Configuration

SGA_TARGET = 8G

Total SGA size = 8 GB

Java pool

Databasebuffer cache

Redo log buffer

Shared pool

Large poolFixed SGA

STATISTICS_LEVEL = TYPICAL

Auto-tuned Auto-tuned

Auto-tunedAuto-tuned

Streams pool

Keepbuffer pool

Page 17: Monitoring and Managing Memory

15-19 Copyright © 2004, Oracle. All rights reserved.

Behavior of Auto-TunedSGA Parameters

• When SGA_TARGET is not set or is set to zero:– Auto-tuned parameters behave as previously.– SHARED_POOL_SIZE may need to be increased

from settings used on earlier database versions.

• When SGA_TARGET is set to a non-zero value:– Default value of auto-tuned parameters is zero.– If set to a non-zero value, the specified value is

used as a minimum size.

SELECT SUM(bytes)/1024/1024 FROM v$sgastatWHERE pool = 'shared pool';

SELECT component,current_size/1024/1024||'M'FROM v$sga_dynamic_components;

Page 18: Monitoring and Managing Memory

15-20 Copyright © 2004, Oracle. All rights reserved.

Behavior of Manually Tuned SGA Parameters

• Some components are not auto-tuned.– KEEP and RECYCLE buffer caches– Multiple block size caches– Log buffer– Streams pool

• These components must be manually configured using database parameters.

• The memory used by these components reduces the amount of memory available for auto-tuning the SGA.

Page 19: Monitoring and Managing Memory

15-21 Copyright © 2004, Oracle. All rights reserved.

Using the V$PARAMETER View

SGA_TARGET = 8G

SELECT name, value, isdefault FROM v$parameterWHERE name LIKE '%size';

DB_CACHE_SIZE = 0JAVA_POOL_SIZE = 0LARGE_POOL_SIZE = 0SHARED_POOL_SIZE = 0

Page 20: Monitoring and Managing Memory

15-22 Copyright © 2004, Oracle. All rights reserved.

Resizing SGA_TARGET

• The SGA_TARGET initialization parameter:– Is dynamic– Can be increased up to SGA_MAX_SIZE– Can be reduced until all components reach their

minimum size

• A change in the value of SGA_TARGET affects only automatically sized components.

Page 21: Monitoring and Managing Memory

15-23 Copyright © 2004, Oracle. All rights reserved.

SGA size = 8 GB

Disabling Automatic Shared Memory Management

• Setting SGA_TARGET to zero disables auto-tuning.

• Auto parameters are set to their current sizes.

• SGA size as a whole is unaffected.

Parameters:

sga_target = 8G

shared_pool_size=1G

Parameters:

sga_target = 0

db_cache_size = 4G

shared_pool_size = 2G

large_pool_size = 512M

java_pool_size = 512M

SGA size = 8 GB

Original values

Page 22: Monitoring and Managing Memory

15-24 Copyright © 2004, Oracle. All rights reserved.

Manually Resizing Dynamic SGA Parameters

• For auto-tuned parameters, manual resizing:– Results in immediate component resize if the new

value is greater than the current size– Changes the minimum size if the new value is

smaller than the current size

• Manually tuned parameter resizing affects only the tunable portion of the SGA.

Page 23: Monitoring and Managing Memory

15-25 Copyright © 2004, Oracle. All rights reserved.

Program Global Area (PGA)

PGA

Serverprocess

PGA

Shared poolor

large poolPGA

Dedicatedconnections

Sharedserver

PGA

Shared serverconnections

PrivateSQLareas

Cursor and SQL

area

Sessionmemory

Workarea

Page 24: Monitoring and Managing Memory

15-27 Copyright © 2004, Oracle. All rights reserved.

Automatic PGA Memory Management

• Dynamically adjusts the amount of PGA memory dedicated to work areas

• Memory allocated to work areas is derived from the PGA_AGGREGATE_TARGET parameter

• Helps to maximize the performance of all the memory-intensive SQL operations

• Enabled by default

Page 25: Monitoring and Managing Memory

15-28 Copyright © 2004, Oracle. All rights reserved.

PGA Management Resources

• Statistics to manage the PGA_AGGREGATE_TARGET initialization parameter, such as PGA cache hit percentage

• Views for monitoring the PGA work area include:– v$sql_workarea_histogram– v$pgastat– v$sql_workarea_active– v$sql_workarea– v$tempseg_usage

• Views to assist in sizing the PGA work area are:– v$pga_target_advice– v$pga_target_advice_histogram

Page 26: Monitoring and Managing Memory

15-29 Copyright © 2004, Oracle. All rights reserved.

Using the Memory Advisor

Page 27: Monitoring and Managing Memory

15-30 Copyright © 2004, Oracle. All rights reserved.

Summary

In this lesson, you should have learned how to:

• Describe the memory components in the SGA

• Implement Automatic Shared Memory Management

• Manually configure SGA parameters

• Use automatic PGA memory management

Page 28: Monitoring and Managing Memory

15-31 Copyright © 2004, Oracle. All rights reserved.

Practice 15 Overview:Automatic Shared Memory Management

This practice covers using Automatic Shared Memory Management to avoid long running query issues.