oracle gc remaster,Oracle DRM技术的变迁 (五)

01fac6460a22031b8af8da5848698a70.png

Oracle BDE team的Michael Polaski 写了一个用于诊断DRM问题的SQL脚本,此脚本可以用来收集所有DRM问题诊断所需要的信息,大幅简化了诊断DRM问题的流程。以下纯粹是从MOS文档 Script to Collect DRM Information (drmdiag.sql) [ID 1492990.1] 中拷贝过来的。适用的版本为11.2.0.1+

将以下脚本复制并保存为DRMDIAG.sql,然后使用sysdba用户登录以后执行。执行成功以后会在本地目录下生成一个drmdiag_.out 的文件。

-- NAME: DRMDIAG.SQL

-- ------------------------------------------------------------------------

-- AUTHOR: Michael Polaski - Oracle Support Services

-- ------------------------------------------------------------------------

-- PURPOSE:

-- This script is intended to provide a user friendly guide to troubleshoot

-- drm (dynamic resource remastering) waits. The script will create a file

-- called drmdiag_.out in your local directory.

set echo off

set feedback off

column timecol new_value timestamp

column spool_extension new_value suffix

select to_char(sysdate,'Mondd_hh24mi') timecol,

'.out' spool_extension from sys.dual;

column output new_value dbname

select value || '_' output

from v$parameter where name = 'db_name';

spool drmdiag_&&dbname&&timestamp&&suffix

set trim on

set trims on

set lines 120

set pages 100

set verify off

alter session set optimizer_features_enable = '10.2.0.4';

set feedback on

PROMPT DRMDIAG DATA FOR &&dbname&&timestamp

PROMPT Important paramenters:

PROMPT

PROMPT _gc_policy_minimum (default is 1500). Increasing this would cause DRMs to happen less frequently.

PROMPT Use the "OBJECT_POLICY_STATISTICS" section later in this report to see how active various objects are.

PROMPT

PROMPT _gc_policy_time (default to 10 (minutes)). Amount of time to evaluate policy stats. Use the

PROMPT "OBJECT_POLICY_STATISTICS" section later in this report to see how active various objects are for the

PROMPT _gc_policy_time. Usually not necessary to change this parameter.

PROMPT

PROMPT _gc_read_mostly_locking (default is TRUE). Setting this to FALSE would disable read mostly related DRMs.

PROMPT

PROMPT gcs_server_processes (default is derived from CPU count/4). May need to increase this above the

PROMPT default to add LMS processes to complte the work during a DRM but the default is usually adequate.

PROMPT

PROMPT _gc_element_percent (default is 110). May need to apply the fix for bug 14791477 and increase this to

PROMPT 140 if running out of lock elements. Usually not necessary to change this parameter.

PROMPT

PROMPT GC Related parameters set in this instance:

show parameter gc

PROMPT

PROMPT CPU count on this instance:

show parameter cpu_count

PROMPT

PROMPT SGA INFO FOR &&dbname&&timestamp

PROMPT

PROMPT Larger buffer caches (above 100 gig) may increase the cost of DRMs significantly.

set lines 120

set pages 100

column component format a40 tru

column current_size format 99999999999999999

column min_size format 99999999999999999

column max_size format 99999999999999999

column user_specified_size format 99999999999999999

select component, current_size, min_size, max_size, user_specified_size

from v$sga_dynamic_components

where current_size > 0;

PROMPT

PROMPT ASH THRESHOLD...

PROMPT

PROMPT This will be the threshold in milliseconds for total drm freeze

PROMPT times. This will be used for the next queries to look for the worst

PROMPT 'drm freeze' minutes. Any minutes that have an average log file

PROMPT sync time greater than the threshold will be analyzed further.

column threshold_in_ms new_value threshold format 999999999.999

select decode(min(threshold_in_ms),null,0,min(threshold_in_ms)) threshold_in_ms

from (select inst_id, to_char(sample_time,'Mondd_hh24mi') minute,

sum(time_waited)/1000 threshold_in_ms

from gv$active_session_history

where event like '%drm freeze%'

group by inst_id,to_char(sample_time,'Mondd_hh24mi')

order by 3 desc)

where rownum <= 10;

PROMPT

PROMPT ASH WORST MINUTES FOR DRM FREEZE WAITS:

PROMPT

PROMPT APPROACH: These are the minutes where the avg drm freeze time

PROMPT was the highest (in milliseconds).

column event format a30 tru

column program format a35 tru

column total_wait_time format 999999999999.999

column avg_time_waited format 999999999999.999

select to_char(sample_time,'Mondd_hh24mi') minute, inst_id, event,

sum(time_waited)/1000 TOTAL_WAIT_TIME , count(*) WAITS,

avg(time_waited)/1000 AVG_TIME_WAITED

from gv$active_session_history

where event like '%drm freeze%'

group by to_char(sample_time,'Mondd_hh24mi'), inst_id, event

having sum(time_waited)/1000 > &&threshold

order by 1,2;

PROMPT

PROMPT ASH DRM BACKGROUND PROCESS WAITS DURING WORST MINUTES:

PROMPT

PROMPT APPROACH: What is LMS doing when 'drm freeze' waits

PROMPT are happening? LMD and LMON info may also be relevant

column inst format 999

column minute format a12 tru

column event format a50 tru

column program format a55 wra

select to_char(sample_time,'Mondd_hh24mi') minute, inst_id inst,

sum(time_waited)/1000 TOTAL_WAIT_TIME , count(*) WAITS,

avg(time_waited)/1000 AVG_TIME_WAITED,

program, event

from gv$active_session_history

where to_char(sample_time,'Mondd_hh24mi') in (select to_char(sample_time,'Mondd_hh24mi')

from gv$active_session_history

where event like '%drm freeze%'

group by to_char(sample_time,'Mondd_hh24mi'), inst_id

having sum(time_waited)/1000 > &&threshold and sum(time_waited)/1000 > 0.5)

and (program like '%LMS%' or program like '%LMD%' or

program like '%LMON%' or event like '%drm freeze%')

group by to_char(sample_time,'Mondd_hh24mi'), inst_id, program, event

order by 1,2,3,5 desc, 4;

PROMPT

PROMPT POLICY HISTORY INFO:

PROMPT See if you can correlate policy history events with minutes of high

PROMPT wait time.

select * from gv$policy_history

order by event_date;

PROMPT

PROMPT DYNAMIC_REMASTER_STATS

PROMPT This shows where time is spent during DRM operations.

set heading off

set lines 60

select 'Instance: '||inst_id inst, 'Remaster Ops: '||remaster_ops rops,

'Remaster Time: '||remaster_time rtime, 'Remastered Objects: '||remastered_objects robjs,

'Quiesce Time: '||quiesce_time qtime, 'Freeze Time: '||freeze_time ftime,

'Cleanup Time: '||cleanup_time ctime, 'Replay Time: '||replay_time rptime,

'Fixwrite Time: '||fixwrite_time fwtime, 'Sync Time: '||sync_time stime,

'Resources Cleaned: '||resources_cleaned rclean,

'Replayed Locks Sent: '||replayed_locks_sent rlockss,

'Replayed Locks Received: '||replayed_locks_received rlocksr,

'Current Objects: '||current_objects

from gv$dynamic_remaster_stats

order by 1;

set lines 120

set heading on

PROMPT

PROMPT OBJECT_POLICY_STATISTICS:

PROMPT The sum of the last 3 columns (sopens,xopens,xfers) decides whether the object

PROMPT will be considered for DRM (_gc_policy_minimum). The duration of the stats

PROMPT are controlled by _gc_policy_time (default is 10 minutes).

select object,node,sopens,xopens,xfers from x$object_policy_statistics;

PROMPT

PROMPT ACTIVE OBJECTS (OBJECT_POLICY_STATISTICS)

PROMPT These are the objects that are above the default _gc_policy_minimum (1500).

select object, node, sopens+xopens+xfers activity

from x$object_policy_statistics

where sopens+xopens+xfers > 1500

order by 3 desc;

PROMPT LWM FOR LE FREELIST

PROMPT This number should never get near zero, if it does consider the fix for bug 14791477

PROMPT and/or increasing _gc_element_percent.

select sum(lwm) from x$kclfx;

PROMPT

PROMPT GCSPFMASTER INFO WITH OBJECT NAMES

column objname format a120 tru

select o.name || ' - '|| o.subname objname, o.type#, h.*

from v$gcspfmaster_info h, obj$ o where h.data_object_id=o.dataobj#

order by data_object_id;

PROMPT

PROMPT ASH DETAILS FOR WORST MINUTES:

PROMPT

PROMPT APPROACH: If you cannot determine the problem from the data

PROMPT above, you may need to look at the details of what each session

PROMPT is doing during each 'bad' snap. Most likely you will want to

PROMPT note the times of the high drm freezewaits, look at what

PROMPT LMS, LMD0, LMON is doing at those times, and go from there...

set lines 140

column program format a45 wra

column sample_time format a25 tru

column event format a30 tru

column time_waited format 999999.999

column p1 format a40 tru

column p2 format a40 tru

column p3 format a40 tru

select sample_time, inst_id inst, session_id, program, event, time_waited/1000 TIME_WAITED,

p1text||': '||p1 p1,p2text||': '||p2 p2,p3text||': '||p3 p3

from gv$active_session_history

where to_char(sample_time,'Mondd_hh24mi') in (select

to_char(sample_time,'Mondd_hh24mi')

from gv$active_session_history

where event like '%drm freeze%'

group by to_char(sample_time,'Mondd_hh24mi'), inst_id

having sum(time_waited)/1000 > &&threshold)

and time_waited > 0.5

order by 1,2,3,4,5;

spool off

PROMPT

PROMPT OUTPUT FILE IS: drmdiag_&&dbname&&timestamp&&suffix

PROMPT

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《Cartoon FX Remaster Bundle》是一个卡通特效包,用于增强动画或游戏中的卡通效果。这个包包含了各种各样的特效资源,供设计师使用,以创建更生动、更吸引人的卡通场景。 该特效包提供了丰富多样的功能,比如火焰、爆炸、烟雾、闪电、波浪等等,可以应用于不同的卡通场景中。这些特效资源设计精美,色彩鲜艳,具有鲜明的卡通风格,能够帮助设计师有效地表达出所需的情境和剧情。 此外,特效包还提供了可自定义参数的特效,使设计师能够根据自己的需求,进行特效的调整和修改。这种灵活性使得《Cartoon FX Remaster Bundle》成为一个非常实用的工具,适用于各种不同类型的卡通游戏和动画项目。 对于动画或游戏制作人员来说,《Cartoon FX Remaster Bundle》能够显著提高他们的工作效率和创作质量。这个特效包不仅仅是一个简单的资源库,更是一个强大的工具,可以帮助设计师轻松地实现他们的创意,并打造出令人惊叹的卡通场景。 总之,无论是专业的游戏开发者还是动画制作人员,都可以从《Cartoon FX Remaster Bundle》这个卡通特效包中获益。它提供丰富多样的特效资源,并允许自定义调整。使用它,可以轻松地创建出令人印象深刻的卡通特效,提高作品的可见度和吸引力。 ### 回答2: Cartoon FX Remaster Bundle是由一个团队设计和开发的一个动画特效包。这个特效包包含了许多激动人心和有趣的动画特效,可以用于游戏制作、动画制作以及其他多媒体项目。 这个特效包包括了各种各样的动画特效,例如爆炸、火焰、闪电、雨雪等等。这些特效都是经过精细的设计和优化的,可以帮助开发者和设计师以更高的质量和效率完成他们的项目。 这个特效包还提供了易于使用的工具和接口,可以让开发者和设计师轻松地使用这些特效。他们只需要导入特效包,然后根据自己的需求调整特效的参数,就可以快速地创建出华丽的动画特效。 Cartoon FX Remaster Bundle不仅可以节省制作时间,还可以增加动画效果的动感和趣味性。这些特效可以给游戏和动画带来更加生动和引人入胜的体验,吸引更多的观众和玩家。 总的来说,Cartoon FX Remaster Bundle是一个功能强大的动画特效包,它提供了丰富多样的特效和易于使用的工具,可以帮助开发者和设计师创造出令人惊叹和有趣的动画作品。无论是游戏制作还是动画制作,这个特效包都将是一个非常有价值的资源。 ### 回答3: "Cartoon FX Remaster Bundle"是一个卡通特效重制合集。它为创作者提供了一套全新的卡通特效工具,用于增强动画作品的视觉效果。这个合集包含了各种各样的卡通特效,如火焰、水流、烟雾、爆炸和闪电等,可以通过简单的拖放操作来应用到动画中。 这个合集的目的是提供一个方便易用的工具,让创作者能够轻松地为其动画作品添加独特的卡通效果。它不仅可以节省创作者的时间和精力,还能增强作品的视觉吸引力,使观众更容易与动画世界产生共鸣。 卡通特效在动画作品中起着非常重要的作用。它们可以增强故事情节的表达,让角色动作更生动,场景更真实。而这个合集的特效工具拥有高品质的视觉效果,可以根据创作者的需要进行个性化调整,以适应不同类型的动画风格。 "Cartoon FX Remaster Bundle"还附带了一些教程和示例文件,帮助创作者更好地使用特效工具,并为他们提供了一些灵感。它支持各种常见的动画软件,并且与不同操作系统兼容,可以在不同平台上使用。 总之,"Cartoon FX Remaster Bundle"是一个非常实用的卡通特效工具合集,可以帮助动画创作者轻松地为自己的作品添加独特的视觉效果,提升作品的质量和吸引力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值