一般SGA 都会在100G 左右或以内,但随着超大内存的出现,为了业务更多的使用内存和减少IO 读写。在Oracle 中使用SGA >100g则变得相当普遍。
下面是Oracle 给出的注意点(SGA 可以大到4TB)。
a. Set _lm_sync_timeout to 1200
Setting this will prevent some timeouts during reconfiguration and DRM
b. Set _ksmg_granule_size to 134217728
Setting this will cut down the time needed to locate the resource for a data block.
c. Set shared_pool_size to 15% or larger of the total SGA size.
For example, if SGA size is 1 TB, the shared pool size should be at least 150 GB.
d. Set _gc_policy_minimum to 15000
There is no need to set _gc_policy_minimum if DRM is disabled by setting _gc_policy_time = 0
e. Set _lm_tickets to 5000
Default is 1000. Allocating more tickets (used for sending messages) avoids issues where we ran out of tickets during the reconfiguration.
f. Set gcs_server_processes to the twice the default number of lms processes that are allocated.
The default number of lms processes depends on the number of CPUs/cores that the server has,
so please refer to the gcs_server_processes init.ora parameter section in the Oracle Database Reference Guide
for the default number of lms processes for your server. Please make sure that the total number of lms processes
of all databases on the server is less than the total number of CPUs/cores on the server.
这些值也都是预估值,如果使用还需要根据具体环境进行配置。