隐含参数"_gc_defer_time"

尊敬的客户您好:

感谢您的更新与耐心等待。

回答1

-->11.2是毫秒(milliseconds)。

SQL> select a.ksppinm "Parameter",a.KSPPDESC "Description",b.ksppstvl "Value"
from x$ksppi a, x$ksppcv b where a.indx = b.indx and a.ksppinm like '%_gc_defer_time'; 2

Parameter

Description

Value

_gc_defer_time
how long to defer pings for hot buffers in milliseconds
0

-->19c是微妙(microseconds)。
SQL> select a.ksppinm "Parameter",a.KSPPDESC "Description",b.ksppstvl "Value"
from x$ksppi a, x$ksppcv b where a.indx = b.indx and a.ksppinm like '%_gc_defer_time'; 2

Parameter

Description

Value

_gc_defer_time
how long to defer pings for hot buffers in microseconds
0

回答2
19c的环境通过测试发现,最小值是32,设置32以下的值会自动设置成32,
如果大于32的话,就会正常反映。

如果您的系统没有遇到性能问题或者没有遭遇已知的bug,您不需要手工
设置这个参数。

谢谢。

Best Regards,

Oracle Support	- 11 days ago		[ODM Test Case]

<testcase #2022/01/24 #P1>

  1. 初始值确认
    sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jan 24 05:03:17 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle. All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select a.ksppinm "Parameter",a.KSPPDESC "Description",b.ksppstvl "Value"
from x$ksppi a, x$ksppcv b where a.indx = b.indx and a.ksppinm like '%_gc_defer_time'; 2

Parameter

Description

Value

_gc_defer_time
how long to defer pings for hot buffers in microseconds
0

  1. 设置小于32的值
    SQL> alter system set "_gc_defer_time"=3 scope=spfile;

System altered.

SQL> startup force
ORACLE instance started.

Total System Global Area 1207955552 bytes
Fixed Size 9134176 bytes
Variable Size 1107296256 bytes
Database Buffers 83886080 bytes
Redo Buffers 7639040 bytes
Database mounted.
Database opened.
SQL>
SQL> select a.ksppinm "Parameter",a.KSPPDESC "Description",b.ksppstvl "Value"
from x$ksppi a, x$ksppcv b where a.indx = b.indx and a.ksppinm like '%_gc_defer_time'; 2

Parameter

Description

Value

_gc_defer_time
how long to defer pings for hot buffers in microseconds
32 <---★

  1. 设置大于32的值
    SQL> alter system set "_gc_defer_time"=40 scope=spfile;

System altered.

SQL> startup force
ORACLE instance started.

Total System Global Area 1207955552 bytes
Fixed Size 9134176 bytes
Variable Size 1056964608 bytes
Database Buffers 134217728 bytes
Redo Buffers 7639040 bytes
Database mounted.
Database opened.
SQL> select a.ksppinm "Parameter",a.KSPPDESC "Description",b.ksppstvl "Value"
from x$ksppi a, x$ksppcv b where a.indx = b.indx and a.ksppinm like '%_gc_defer_time'; 2

Parameter

Description

Value

_gc_defer_time
how long to defer pings for hot buffers in microseconds
40

SQL>

  1. 无效该功能(设置为0)
    SQL> alter system set "_gc_defer_time"=0 scope=spfile;

System altered.

SQL> startup force
ORACLE instance started.

Total System Global Area 1207955552 bytes
Fixed Size 9134176 bytes
Variable Size 1107296256 bytes
Database Buffers 83886080 bytes
Redo Buffers 7639040 bytes
Database mounted.
Database opened.
SQL> select a.ksppinm "Parameter",a.KSPPDESC "Description",b.ksppstvl "Value"
from x$ksppi a, x$ksppcv b where a.indx = b.indx and a.ksppinm like '%_gc_defer_time'; 2

Parameter

Description

Value

_gc_defer_time
how long to defer pings for hot buffers in microseconds
0

Oracle Support	- 11 days ago		[Notes]

亲爱的用户,您好:

您的更新已经收到,我们会尽快查看!感谢您的耐心等待。

Best Regards,

[Update from Customer]

RAC系统中"_gc_defer_time"=32 , 确认一下这个时间单位是什么?

对比其他RAC系统,"_gc_defer_time"有值为0或3 的, 这个值为32,不是很大吗,gc延时不是很长?

谢谢!

Oracle Support	- 11 days ago		[ODM Answer]

尊敬的客户您好:

感谢您的耐心等待。

回答1
关于隐含参数"_gc_defer_time",并没有公开的文档对这个参数进行明确的说明。
您可以大概理解为,LMS 进程将数据块发给申请者进程的延迟(defer)时间。
通常是在规避一些问题的时候,开发会给出类似修改这个参数的workaround。

回答2
是的,遇到一些案例,以及我们这边的测试环境和您遇到的现象相同,修改不能
生效。请问,您遇到了什么具体问题需要修改这个参数吗?请分享您修改这个参
数的背景。

谢谢您的理解。

Best Regards,

Oracle Support	- 11 days ago		[ODM Question]

1、咨询一下隐含参数"_gc_defer_time"的意义和文档介绍信息
2、一系统中"_gc_defer_time"=32,当将其修改为3,重启RAC数据库,修改不能生效。为什么修改这个"_gc_defer_time"参数值不能生效?

posted @ 2022-02-04 16:57  武汉OracleDBA  阅读(217)  评论(0编辑  收藏  举报