<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Tuning &#8216;log file sync&#8217; wait events</title>
	<atom:link href="http://orainternals.wordpress.com/2008/07/07/tuning-log-file-sync-wait-events/feed/" rel="self" type="application/rss+xml" />
	<link>http://orainternals.wordpress.com/2008/07/07/tuning-log-file-sync-wait-events/</link>
	<description>Discussions about Oracle performance tuning, Oracle internal &#38; E-business suite.</description>
	<lastBuildDate>Fri, 06 Nov 2009 05:09:37 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: orainternals</title>
		<link>http://orainternals.wordpress.com/2008/07/07/tuning-log-file-sync-wait-events/#comment-372</link>
		<dc:creator>orainternals</dc:creator>
		<pubDate>Fri, 14 Aug 2009 03:27:44 +0000</pubDate>
		<guid isPermaLink="false">http://orainternals.wordpress.com/?p=40#comment-372</guid>
		<description>Hello Muthu
  Sorry, it took a while to respond. 
  Do you have tkprof for this report run? Is the parent job slow or report is slow? What is the short_name?
  There have been many performance issues reported for journal entries report. One prominent bug I see is that parent job is deleting from ar_journal_interim. Bug fix was to truncate that table instead of delete. Bug 2830651.
  I guess, we will have to look at tkrpof output files to see where the slowness. If you are trying to tune the instance for log file sync issues, I guess, converting delete statement to truncate statement might help.

Cheers
Riyaj</description>
		<content:encoded><![CDATA[<p>Hello Muthu<br />
  Sorry, it took a while to respond.<br />
  Do you have tkprof for this report run? Is the parent job slow or report is slow? What is the short_name?<br />
  There have been many performance issues reported for journal entries report. One prominent bug I see is that parent job is deleting from ar_journal_interim. Bug fix was to truncate that table instead of delete. Bug 2830651.<br />
  I guess, we will have to look at tkrpof output files to see where the slowness. If you are trying to tune the instance for log file sync issues, I guess, converting delete statement to truncate statement might help.</p>
<p>Cheers<br />
Riyaj</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Muthu</title>
		<link>http://orainternals.wordpress.com/2008/07/07/tuning-log-file-sync-wait-events/#comment-366</link>
		<dc:creator>Muthu</dc:creator>
		<pubDate>Mon, 10 Aug 2009 18:57:11 +0000</pubDate>
		<guid isPermaLink="false">http://orainternals.wordpress.com/?p=40#comment-366</guid>
		<description>Hello Riyaj,

Thanks for the quick update. I&#039;m trying to address the concurrent request that took forever due to the &#039;log file sync&#039; wait event. I referred the other request set and it&#039;s CPU usage (which&#039;s not what ppl. are worrying about), because you had asked to check the CPU usage (guideline # 2).

Here&#039;re the answers for your questions :

This is the standard Oracle report (Journal Entries Report). It&#039;s a good point to drop/rebuild the indices to reduce the redo generation. I&#039;ve never thought about that. Since this is not a real production, I think, we can think about it.

It&#039;s a straight Insert statement with bind variables.

We&#039;ve 4 log members (4 group with one each) of 1.5 Gb each. Ours is a JFS2 type of file system.

The issue here is that, this is the break fix environment that&#039;s being refreshed every night from the copy from production.

Thanks once again and cheers
Muthu</description>
		<content:encoded><![CDATA[<p>Hello Riyaj,</p>
<p>Thanks for the quick update. I&#8217;m trying to address the concurrent request that took forever due to the &#8216;log file sync&#8217; wait event. I referred the other request set and it&#8217;s CPU usage (which&#8217;s not what ppl. are worrying about), because you had asked to check the CPU usage (guideline # 2).</p>
<p>Here&#8217;re the answers for your questions :</p>
<p>This is the standard Oracle report (Journal Entries Report). It&#8217;s a good point to drop/rebuild the indices to reduce the redo generation. I&#8217;ve never thought about that. Since this is not a real production, I think, we can think about it.</p>
<p>It&#8217;s a straight Insert statement with bind variables.</p>
<p>We&#8217;ve 4 log members (4 group with one each) of 1.5 Gb each. Ours is a JFS2 type of file system.</p>
<p>The issue here is that, this is the break fix environment that&#8217;s being refreshed every night from the copy from production.</p>
<p>Thanks once again and cheers<br />
Muthu</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: orainternals</title>
		<link>http://orainternals.wordpress.com/2008/07/07/tuning-log-file-sync-wait-events/#comment-358</link>
		<dc:creator>orainternals</dc:creator>
		<pubDate>Sat, 08 Aug 2009 04:06:00 +0000</pubDate>
		<guid isPermaLink="false">http://orainternals.wordpress.com/?p=40#comment-358</guid>
		<description>Hello Daniel
  I need to think about this little bit. It is possible to do that by hooking a simple dtrace script with sem* calls and print them. I am trying to see if there is an easier way.
 
Cheers
Riyaj</description>
		<content:encoded><![CDATA[<p>Hello Daniel<br />
  I need to think about this little bit. It is possible to do that by hooking a simple dtrace script with sem* calls and print them. I am trying to see if there is an easier way.</p>
<p>Cheers<br />
Riyaj</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: orainternals</title>
		<link>http://orainternals.wordpress.com/2008/07/07/tuning-log-file-sync-wait-events/#comment-356</link>
		<dc:creator>orainternals</dc:creator>
		<pubDate>Sat, 08 Aug 2009 04:01:43 +0000</pubDate>
		<guid isPermaLink="false">http://orainternals.wordpress.com/?p=40#comment-356</guid>
		<description>Hello Muthu
  I am really not sure what problem you are trying to address here? Are you trying to tune that concurrent request? or Are you trying to identify why there is high CPU usage?
  
  If you are trying to tune the request, I guess, redo size need to be reduced (or) LGWR &amp; its components need to be tuned. Since there are 5 requests running, all of them may be generating much redo. Is this a custom program or standard seeded program? Is there a possibility of reducing redo size by dropping few indices on that table and then rebuild them later?  Look for the opportunities to tune them.

  Also, all these inserts, are they inserts with bind variables? or &#039;insert into table select * from table1&#039; form of SQLS?

  How many Log members you have? What type of file system? How big are the log files?

  Sorry to ask you more questions, but I would like to understand the root cause before giving you some suggestions.

Cheers
Riyaj</description>
		<content:encoded><![CDATA[<p>Hello Muthu<br />
  I am really not sure what problem you are trying to address here? Are you trying to tune that concurrent request? or Are you trying to identify why there is high CPU usage?</p>
<p>  If you are trying to tune the request, I guess, redo size need to be reduced (or) LGWR &amp; its components need to be tuned. Since there are 5 requests running, all of them may be generating much redo. Is this a custom program or standard seeded program? Is there a possibility of reducing redo size by dropping few indices on that table and then rebuild them later?  Look for the opportunities to tune them.</p>
<p>  Also, all these inserts, are they inserts with bind variables? or &#8216;insert into table select * from table1&#8242; form of SQLS?</p>
<p>  How many Log members you have? What type of file system? How big are the log files?</p>
<p>  Sorry to ask you more questions, but I would like to understand the root cause before giving you some suggestions.</p>
<p>Cheers<br />
Riyaj</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Muthu</title>
		<link>http://orainternals.wordpress.com/2008/07/07/tuning-log-file-sync-wait-events/#comment-355</link>
		<dc:creator>Muthu</dc:creator>
		<pubDate>Fri, 07 Aug 2009 22:35:07 +0000</pubDate>
		<guid isPermaLink="false">http://orainternals.wordpress.com/?p=40#comment-355</guid>
		<description>Riyaj,

Wonderful article and happy to read you. We&#039;ve an issue with the same wait event. Here&#039;s our scenario :

We&#039;re running Oracle EBS 11i in AIX 5.3 (16 CPU and 60 Gb RAM) SGA is 3G and log_buffer is 10 M. Database is running in no archive log mode.

This is our breakfix environment and only one concurrent request is running for hours, waiting on this and &#039;db file sequential read&#039; on an Insert statement.

I collected the stats as follows :
&lt;pre&gt;
  SID  STAT# NAME                                      VALUE
----- ------ ------------------------------ ----------------
   95    115 redo size                          -708,973,184
   95      5 user rollbacks                                0
   95    117 redo wastage                                  0
   95    118 redo writer latching time                     0
   95    121 redo write time                               0
   95    125 redo ordering marks                           0
   95    124 redo log switch interrupts                    0
   95    120 redo blocks written                           0
   95    119 redo writes                                   0
   95      0 logons cumulative                             1
   95      1 logons current                                1
   95      4 user commits                                  3
   95    116 redo buffer allocation retries               30
   95    122 redo log space requests                      38
   95      6 user calls                                   75
   95    123 redo log space wait time                    425
   95     73 redo synch time                       2,265,549
   95     72 redo synch writes                    18,909,918
   95    114 redo entries                         60,812,763

Output from Tanel&#039;s tool : (edited for clarity, of course)

----------------------------------------------------------------
 SID, TYPE, STATISTIC                  DELTA, HDELTA/SEC,  %TIME
----------------------------------------------------------------
  95, WAIT, log file sync            2076179,   692.06ms,  69.2%
  95, WAIT, db file sequential read    58498,     19.5ms,   1.9%
--  End of snap 1, end=2009-08-07 18:06:06, seconds=3
&lt;/pre&gt;
User commits is low; so is user calls and redo blocks written is 0. Only redo synch time, redo synch writes and redo entries are huge.

(And the redo size is a negative number. Metalink says this is a bug in the pre-10g releases (ours is 9.2.0.7) and asked to refer the &#039;redo blocks written&#039;)

I had checked the CPU usage. In the morning, there was a request set that laucnhed 5 child threads and they all sucked up the CPU to the tune of more than 50% and I waited for their completion. But even after the completion of them and the CPU usage came down to under 10 %, the issue remained the same.

I had discussed with our OS sysadmin and he had involved the SAN guys and confirmed that, though the filesystem is active, it&#039;s quite normal.

Can you help me what to look for, further ?

Thanks
Muthu</description>
		<content:encoded><![CDATA[<p>Riyaj,</p>
<p>Wonderful article and happy to read you. We&#8217;ve an issue with the same wait event. Here&#8217;s our scenario :</p>
<p>We&#8217;re running Oracle EBS 11i in AIX 5.3 (16 CPU and 60 Gb RAM) SGA is 3G and log_buffer is 10 M. Database is running in no archive log mode.</p>
<p>This is our breakfix environment and only one concurrent request is running for hours, waiting on this and &#8216;db file sequential read&#8217; on an Insert statement.</p>
<p>I collected the stats as follows :</p>
<pre>
  SID  STAT# NAME                                      VALUE
----- ------ ------------------------------ ----------------
   95    115 redo size                          -708,973,184
   95      5 user rollbacks                                0
   95    117 redo wastage                                  0
   95    118 redo writer latching time                     0
   95    121 redo write time                               0
   95    125 redo ordering marks                           0
   95    124 redo log switch interrupts                    0
   95    120 redo blocks written                           0
   95    119 redo writes                                   0
   95      0 logons cumulative                             1
   95      1 logons current                                1
   95      4 user commits                                  3
   95    116 redo buffer allocation retries               30
   95    122 redo log space requests                      38
   95      6 user calls                                   75
   95    123 redo log space wait time                    425
   95     73 redo synch time                       2,265,549
   95     72 redo synch writes                    18,909,918
   95    114 redo entries                         60,812,763

Output from Tanel's tool : (edited for clarity, of course)

----------------------------------------------------------------
 SID, TYPE, STATISTIC                  DELTA, HDELTA/SEC,  %TIME
----------------------------------------------------------------
  95, WAIT, log file sync            2076179,   692.06ms,  69.2%
  95, WAIT, db file sequential read    58498,     19.5ms,   1.9%
--  End of snap 1, end=2009-08-07 18:06:06, seconds=3
</pre>
<p>User commits is low; so is user calls and redo blocks written is 0. Only redo synch time, redo synch writes and redo entries are huge.</p>
<p>(And the redo size is a negative number. Metalink says this is a bug in the pre-10g releases (ours is 9.2.0.7) and asked to refer the &#8216;redo blocks written&#8217;)</p>
<p>I had checked the CPU usage. In the morning, there was a request set that laucnhed 5 child threads and they all sucked up the CPU to the tune of more than 50% and I waited for their completion. But even after the completion of them and the CPU usage came down to under 10 %, the issue remained the same.</p>
<p>I had discussed with our OS sysadmin and he had involved the SAN guys and confirmed that, though the filesystem is active, it&#8217;s quite normal.</p>
<p>Can you help me what to look for, further ?</p>
<p>Thanks<br />
Muthu</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel</title>
		<link>http://orainternals.wordpress.com/2008/07/07/tuning-log-file-sync-wait-events/#comment-352</link>
		<dc:creator>Daniel</dc:creator>
		<pubDate>Thu, 06 Aug 2009 05:27:56 +0000</pubDate>
		<guid isPermaLink="false">http://orainternals.wordpress.com/?p=40#comment-352</guid>
		<description>&quot;Then, process goes to sleep with semtimedop call, in its own semaphore.
Semaphore set id is 9, but semnum is 118 which is for the user process I was tracing.&quot;

How to know semnum 118 is the user process traced? Any method to map a process with a set id and semnum? I am trying to map the semnum to oracle pid from v$process, but it can&#039;t map correctly.</description>
		<content:encoded><![CDATA[<p>&#8220;Then, process goes to sleep with semtimedop call, in its own semaphore.<br />
Semaphore set id is 9, but semnum is 118 which is for the user process I was tracing.&#8221;</p>
<p>How to know semnum 118 is the user process traced? Any method to map a process with a set id and semnum? I am trying to map the semnum to oracle pid from v$process, but it can&#8217;t map correctly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: orainternals</title>
		<link>http://orainternals.wordpress.com/2008/07/07/tuning-log-file-sync-wait-events/#comment-302</link>
		<dc:creator>orainternals</dc:creator>
		<pubDate>Tue, 12 May 2009 14:23:12 +0000</pubDate>
		<guid isPermaLink="false">http://orainternals.wordpress.com/?p=40#comment-302</guid>
		<description>I forgot to point out that AWR report has OS_CPU_WAIT_TIME of 133,200. USER_TIME is 769,745. So, at some point during this AWR report duration, there were waits for CPUs. It is possible that LGWR was also affected by this high CPU usage in the server. That ,in turn, can lead to massive waits for &#039;log file sync&#039; event.</description>
		<content:encoded><![CDATA[<p>I forgot to point out that AWR report has OS_CPU_WAIT_TIME of 133,200. USER_TIME is 769,745. So, at some point during this AWR report duration, there were waits for CPUs. It is possible that LGWR was also affected by this high CPU usage in the server. That ,in turn, can lead to massive waits for &#8216;log file sync&#8217; event.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: orainternals</title>
		<link>http://orainternals.wordpress.com/2008/07/07/tuning-log-file-sync-wait-events/#comment-301</link>
		<dc:creator>orainternals</dc:creator>
		<pubDate>Tue, 12 May 2009 14:11:30 +0000</pubDate>
		<guid isPermaLink="false">http://orainternals.wordpress.com/?p=40#comment-301</guid>
		<description>Hello Chan

   What is the duration of your AWR report? It may be for 1 hour or 30 minutes and so, aggregation might be hiding the details. Even ASH report of 15 minutes is not useful.
   
   This might needs little bit more research using v$active_session_history.

   (i) Try to find what sessions were waiting for using the script: http://www.orainternals.com/scripts_perf1.php  - ash_top20.sql  (or) use this query:

&lt;pre&gt;
select * from (
select event,  inst_id, 
   sum(decode(ash.session_state,&#039;WAITING&#039;,1,0)) cnt_waiting
from  gv$active_session_history ash
where sample_time between sysdate - (&amp;&amp;start_min /( 60*24) ) and sysdate-(&amp;&amp;end_min/(60*24))
group by event,inst_id
order by 3 desc
) where rownum &lt;=30
/
&lt;/pre&gt;

   (ii) If data in v$active_session_history is still available, review LGWR activity using ash_lgwr.sql script. 

   (iii) Create ash report for very specific duration:

&lt;pre&gt;
select output from table(dbms_workload_repository.ash_report_text( (select dbid from v$database),
                             1,
                             sysdate- &amp;&amp;start_min/(24*60),
                             sysdate-&amp;&amp;end_min,
                             0))
/
&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>Hello Chan</p>
<p>   What is the duration of your AWR report? It may be for 1 hour or 30 minutes and so, aggregation might be hiding the details. Even ASH report of 15 minutes is not useful.</p>
<p>   This might needs little bit more research using v$active_session_history.</p>
<p>   (i) Try to find what sessions were waiting for using the script: <a href="http://www.orainternals.com/scripts_perf1.php" rel="nofollow">http://www.orainternals.com/scripts_perf1.php</a>  &#8211; ash_top20.sql  (or) use this query:</p>
<pre>
select * from (
select event,  inst_id,
   sum(decode(ash.session_state,'WAITING',1,0)) cnt_waiting
from  gv$active_session_history ash
where sample_time between sysdate - (&amp;&amp;start_min /( 60*24) ) and sysdate-(&amp;&amp;end_min/(60*24))
group by event,inst_id
order by 3 desc
) where rownum &lt;=30
/
</pre>
<p>   (ii) If data in v$active_session_history is still available, review LGWR activity using ash_lgwr.sql script. </p>
<p>   (iii) Create ash report for very specific duration:</p>
<pre>
select output from table(dbms_workload_repository.ash_report_text( (select dbid from v$database),
                             1,
                             sysdate- &amp;&amp;start_min/(24*60),
                             sysdate-&amp;&amp;end_min,
                             0))
/
</pre>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chan</title>
		<link>http://orainternals.wordpress.com/2008/07/07/tuning-log-file-sync-wait-events/#comment-299</link>
		<dc:creator>Chan</dc:creator>
		<pubDate>Tue, 12 May 2009 02:38:51 +0000</pubDate>
		<guid isPermaLink="false">http://orainternals.wordpress.com/?p=40#comment-299</guid>
		<description>Hi Riyaj,

We had slow performance on the database and the requests from app server are queued up. I looked at AWR and ASH reports. I saw log file sync in one top top 5 wait event in AWR and it is listed as Blocking session in ASH report. THe blocking session with log file sync by LGWR was there the same time period of problem. I do not see high CPU usage or user commits during that time. 
&lt;pre&gt;

Top 5 Timed Events                                         Avg %Total
~~~~~~~~~~~~~~~~~~                                        wait   Call
Event                                 Waits    Time (s)   (ms)   Time Wait Class
------------------------------ ------------ ----------- ------ ------ ----------
CPU time                                          6,458          90.2
db file sequential read             318,605         644      2    9.0   User I/O
log file sync                        22,952          96      4    1.3     Commit
log file parallel write              23,407          80      3    1.1 System I/O
read by other session                15,400          53      3    0.7   User I/O

Statistic                                       Total
-------------------------------- --------------------
AVG_BUSY_TIME                                 236,562
AVG_IDLE_TIME                                 125,022
AVG_IOWAIT_TIME                                 7,748
AVG_SYS_TIME                                   44,124
AVG_USER_TIME                                 192,347
BUSY_TIME                                     946,610
IDLE_TIME                                     500,474
IOWAIT_TIME                                    31,357
SYS_TIME                                      176,865
USER_TIME                                     769,745
LOAD                                                3
OS_CPU_WAIT_TIME                              133,200
RSRC_MGR_CPU_WAIT_TIME                              0
VM_IN_BYTES                                   999,424
VM_OUT_BYTES                                        0
PHYSICAL_MEMORY_BYTES                  33,569,898,496
NUM_CPUS                                            4
          -------------------------------------------------------------

Statistic                                     Total     per Second     per Trans
-------------------------------- ------------------ -------------- -------------
total number of times SMON poste                 20            0.0           0.0
transaction rollbacks                            77            0.0           0.0
transaction tables consistent re                  0            0.0           0.0
transaction tables consistent re                  0            0.0           0.0
undo change vector size                 110,010,444       30,452.7       6,225.5
user I/O wait time                           69,807           19.3           4.0
user calls                               12,892,591        3,568.9         729.6
user commits                                 17,437            4.8           1.0
user rollbacks                                  234            0.1           0.0


But I see log file sync under Blocking session in ASH

Top Blocking Sessions        DB/Inst: COMMON5/common5  (May 10 15:15 to 15:30)
-&gt; Blocking session activity percentages are calculated with respect to
      waits on enqueues, latches and &quot;buffer busy&quot; only
-&gt; &#039;% Activity&#039; represents the load on the database caused by
      a particular blocking session
-&gt; &#039;# Samples Active&#039; shows the number of ASH samples in which the
      blocking session was found active.
-&gt; &#039;XIDs&#039; shows the number of distinct transaction IDs sampled in ASH
      when the blocking session was found active.

   Blocking Sid % Activity Event Caused                      % Event
--------------- ---------- ------------------------------ ----------
User                 Program                          # Samples Active     XIDs
-------------------- ------------------------------ ------------------ --------
      771,    1       4.12 log file sync                        4.12
                                                           0/90 [  0%]        0
&lt;/pre&gt;
Did it cause the performance issue on the database?</description>
		<content:encoded><![CDATA[<p>Hi Riyaj,</p>
<p>We had slow performance on the database and the requests from app server are queued up. I looked at AWR and ASH reports. I saw log file sync in one top top 5 wait event in AWR and it is listed as Blocking session in ASH report. THe blocking session with log file sync by LGWR was there the same time period of problem. I do not see high CPU usage or user commits during that time. </p>
<pre>

Top 5 Timed Events                                         Avg %Total
~~~~~~~~~~~~~~~~~~                                        wait   Call
Event                                 Waits    Time (s)   (ms)   Time Wait Class
------------------------------ ------------ ----------- ------ ------ ----------
CPU time                                          6,458          90.2
db file sequential read             318,605         644      2    9.0   User I/O
log file sync                        22,952          96      4    1.3     Commit
log file parallel write              23,407          80      3    1.1 System I/O
read by other session                15,400          53      3    0.7   User I/O

Statistic                                       Total
-------------------------------- --------------------
AVG_BUSY_TIME                                 236,562
AVG_IDLE_TIME                                 125,022
AVG_IOWAIT_TIME                                 7,748
AVG_SYS_TIME                                   44,124
AVG_USER_TIME                                 192,347
BUSY_TIME                                     946,610
IDLE_TIME                                     500,474
IOWAIT_TIME                                    31,357
SYS_TIME                                      176,865
USER_TIME                                     769,745
LOAD                                                3
OS_CPU_WAIT_TIME                              133,200
RSRC_MGR_CPU_WAIT_TIME                              0
VM_IN_BYTES                                   999,424
VM_OUT_BYTES                                        0
PHYSICAL_MEMORY_BYTES                  33,569,898,496
NUM_CPUS                                            4
          -------------------------------------------------------------

Statistic                                     Total     per Second     per Trans
-------------------------------- ------------------ -------------- -------------
total number of times SMON poste                 20            0.0           0.0
transaction rollbacks                            77            0.0           0.0
transaction tables consistent re                  0            0.0           0.0
transaction tables consistent re                  0            0.0           0.0
undo change vector size                 110,010,444       30,452.7       6,225.5
user I/O wait time                           69,807           19.3           4.0
user calls                               12,892,591        3,568.9         729.6
user commits                                 17,437            4.8           1.0
user rollbacks                                  234            0.1           0.0

But I see log file sync under Blocking session in ASH

Top Blocking Sessions        DB/Inst: COMMON5/common5  (May 10 15:15 to 15:30)
-&gt; Blocking session activity percentages are calculated with respect to
      waits on enqueues, latches and "buffer busy" only
-&gt; '% Activity' represents the load on the database caused by
      a particular blocking session
-&gt; '# Samples Active' shows the number of ASH samples in which the
      blocking session was found active.
-&gt; 'XIDs' shows the number of distinct transaction IDs sampled in ASH
      when the blocking session was found active.

   Blocking Sid % Activity Event Caused                      % Event
--------------- ---------- ------------------------------ ----------
User                 Program                          # Samples Active     XIDs
-------------------- ------------------------------ ------------------ --------
      771,    1       4.12 log file sync                        4.12
                                                           0/90 [  0%]        0
</pre>
<p>Did it cause the performance issue on the database?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: orainternals</title>
		<link>http://orainternals.wordpress.com/2008/07/07/tuning-log-file-sync-wait-events/#comment-218</link>
		<dc:creator>orainternals</dc:creator>
		<pubDate>Thu, 26 Feb 2009 16:02:09 +0000</pubDate>
		<guid isPermaLink="false">http://orainternals.wordpress.com/?p=40#comment-218</guid>
		<description>
Hello 
  First of all, AWR duration of 15 hours too long. AWR report is an aggregated report and so, it is very hard to decipher details based upon aggregated data.

  What is that you are trying to tune? A specific business process?

  I will try to help.
1.  It looks like write performance to log files are not great.  12ms average for log file parallel write is not sufficient. Couple of things you can do to improve throughput to log files:
   a) Try using direct and asynch I/O. I am not sure, whether underlying file system supports direct I/O or not. You might want to research that. I do see that filesystemio_options is set to setall, which means that Oracle will try to use asynch and direct I/O if the file system supports it.
                                                                   Avg
                                             %Time  Total Wait    wait     Waits
Event                                 Waits  -outs    Time (s)    (ms)      /txn
---------------------------- -------------- ------ ----------- ------- ---------
..
log file parallel write              90,505     .0       1,114      12       1.2
log file sequential read             82,154     .0       1,057      13       1.1
..
control file parallel write          48,544     .0         326       7       0.6
...
control file single write             8,255     .0         154      19       0.1
..
LGWR-LNS wait on channel              4,380  100.0          47      11       0.1
..

2. Same with control files too. control file single writes are taking an average of 19ms. Much of the control file writes are performed under the protection of CF enqueue and so, CF enqueue waits may be related to this issue.
3. Looks like LGWR ASYNC is used for log archive to standby. You might want to consider tuning LNS process also. Simply even increasing buffer size might be a good start.
4. _log_io_size is set to 256. I am not sure why. In most platforms that will result in triggering LGWR after 128KB of redo. That might trigger hyperactive LGWR. I don&#039;t know your application well enough to recommend something here. Check the ratio between redo size and user commits + user rollbacks to see if that parameter value is warranted.
5. Last but not least, there are bugs in 10.2.0.3 with LGWR and  log file sync events. In some cases, LGWR is not efficient enough when the workload is not so high. Read 34592.1 for further information. You might want to think about 10.2.0.4 upgrade. Of course, test your upgrade thoroughly :-)

In summary, this goes to basic things. Improve write throughput to redo log files and control files. Eliminate bugs with better software etc.

It is also critical to review this again with an AWR report of 30 minutes or so. 

</description>
		<content:encoded><![CDATA[<p>Hello<br />
  First of all, AWR duration of 15 hours too long. AWR report is an aggregated report and so, it is very hard to decipher details based upon aggregated data.</p>
<p>  What is that you are trying to tune? A specific business process?</p>
<p>  I will try to help.<br />
1.  It looks like write performance to log files are not great.  12ms average for log file parallel write is not sufficient. Couple of things you can do to improve throughput to log files:<br />
   a) Try using direct and asynch I/O. I am not sure, whether underlying file system supports direct I/O or not. You might want to research that. I do see that filesystemio_options is set to setall, which means that Oracle will try to use asynch and direct I/O if the file system supports it.<br />
                                                                   Avg<br />
                                             %Time  Total Wait    wait     Waits<br />
Event                                 Waits  -outs    Time (s)    (ms)      /txn<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;- &#8212;&#8212;&#8212;<br />
..<br />
log file parallel write              90,505     .0       1,114      12       1.2<br />
log file sequential read             82,154     .0       1,057      13       1.1<br />
..<br />
control file parallel write          48,544     .0         326       7       0.6<br />
&#8230;<br />
control file single write             8,255     .0         154      19       0.1<br />
..<br />
LGWR-LNS wait on channel              4,380  100.0          47      11       0.1<br />
..</p>
<p>2. Same with control files too. control file single writes are taking an average of 19ms. Much of the control file writes are performed under the protection of CF enqueue and so, CF enqueue waits may be related to this issue.<br />
3. Looks like LGWR ASYNC is used for log archive to standby. You might want to consider tuning LNS process also. Simply even increasing buffer size might be a good start.<br />
4. _log_io_size is set to 256. I am not sure why. In most platforms that will result in triggering LGWR after 128KB of redo. That might trigger hyperactive LGWR. I don&#8217;t know your application well enough to recommend something here. Check the ratio between redo size and user commits + user rollbacks to see if that parameter value is warranted.<br />
5. Last but not least, there are bugs in 10.2.0.3 with LGWR and  log file sync events. In some cases, LGWR is not efficient enough when the workload is not so high. Read 34592.1 for further information. You might want to think about 10.2.0.4 upgrade. Of course, test your upgrade thoroughly <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>In summary, this goes to basic things. Improve write throughput to redo log files and control files. Eliminate bugs with better software etc.</p>
<p>It is also critical to review this again with an AWR report of 30 minutes or so.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
