明确内存边界:SGA 为实例内共享内存,包含 Database Buffer Cache、Shared Pool、Redo Log Buffer、Large Pool 等;PGA 为每个进程私有内存,包含 Session/UGA、Sort Area、Hash Area 等。专用服务器模式下 UGA 位于 PGA,共享服务器模式下 UGA 位于 Large Pool。优先保证系统预留 约 20% 物理内存 给 OS 与其他进程,避免内存争用与抖动。容量初配可按负载类型划分:
AMM:ALTER SYSTEM SET MEMORY_TARGET=24G SCOPE=BOTH;(确保 /dev/shm ≥ 24G)
ASMM:ALTER SYSTEM SET SGA_TARGET=16G SCOPE=BOTH;
手动组件:ALTER SYSTEM SET DB_CACHE_SIZE=8G SCOPE=BOTH;
PGA:ALTER SYSTEM SET WORKAREA_SIZE_POLICY=AUTO SCOPE=BOTH;ALTER SYSTEM SET PGA_AGGREGATE_TARGET=4G SCOPE=BOTH;
注:修改 SGA_MAX_SIZE 通常需 SCOPE=SPFILE 并重启;使用 AMM 时 SGA_TARGET/PGA_AGGREGATE_TARGET 之和不应大于 MEMORY_TARGET。
三 Linux 层关键优化
启用 HugePages:减少 TLB Miss 与页表开销,提升大 SGA 场景稳定性与性能。规划步骤: