Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Performence on Oracle instance running on Sun Solaris/Sparc

Re: Performence on Oracle instance running on Sun Solaris/Sparc

From: Tommy Svensson <tkman23_at_hotmail.com>
Date: 24 May 2001 03:09:04 -0700
Message-ID: <ebf7c6db.0105240209.5934d983@posting.google.com>

Hi!

Below I post a output of utlbstat.sql och utlestat.sql running during more
then 12hour during intensive report running on our Norway server

---
SVRMGR> 
SVRMGR> set charwidth 12
Charwidth                       12
SVRMGR> set numwidth 10
Numwidth                        10
SVRMGR> Rem Select Library cache statistics.  The pin hit rate shoule
be high.
SVRMGR> select namespace library,
     2>        gets, 
     3>        round(decode(gethits,0,1,gethits)/decode(gets,0,1,gets),3)
     4>           gethitratio,
     5>        pins, 
     6>        round(decode(pinhits,0,1,pinhits)/decode(pins,0,1,pins),3)
     7>           pinhitratio,
     8>        reloads, invalidations
     9>   from stats$lib;
LIBRARY      GETS       GETHITRATI PINS       PINHITRATI RELOADS   
INVALIDATI
------------ ---------- ---------- ---------- ---------- ----------
----------
BODY              19454       .998      19454       .998          0   
      0
CLUSTER               0          1          0          1          0   
      0
INDEX                 0          1          0          1          0   
      0
OBJECT                0          1          0          1          0   
      0
PIPE                  0          1          0          1          0   
      0
SQL AREA          55767       .962     391304       .993          0   
      1
TABLE/PROCED       2992       .505     232723       .994          0   
      0
TRIGGER               0          1          0          1          0   
      0
8 rows selected.
SVRMGR> 
SVRMGR> set charwidth 27;
Charwidth                       27
SVRMGR> set numwidth 12;
Numwidth                        12
SVRMGR> Rem The total is the total value of the statistic between the
time
SVRMGR> Rem bstat was run and the time estat was run.  Note that the
estat
SVRMGR> Rem script logs on as "internal" so the per_logon statistics
will
SVRMGR> Rem always be based on at least one logon.
SVRMGR> select n1.name "Statistic", 
     2>        n1.change "Total", 
     3>        round(n1.change/trans.change,2) "Per Transaction",
     4>        round(n1.change/logs.change,2)  "Per Logon",
     5>        round(n1.change/(to_number(to_char(end_time,  
'J'))*60*60*24 -
     6>                         to_number(to_char(start_time,
'J'))*60*60*24 +
     7> 			to_number(to_char(end_time,   'SSSSS')) -
     8> 			to_number(to_char(start_time, 'SSSSS')))
     9>              , 2) "Per Second"
    10>    from stats$stats n1, stats$stats trans, stats$stats logs,
stats$dates
    11>    where trans.name='user commits'
    12>     and  logs.name='logons cumulative'
    13>     and  n1.change != 0
    14>    order by n1.name;
Statistic                   Total        Per Transact Per Logon    Per
Second
--------------------------- ------------ ------------ ------------
------------
CPU used by this session         2219381       228.92       685.21    
   57.26
CPU used when call started       2219381       228.92       685.21    
   57.26
CR blocks created                    927           .1          .29    

.02
DBWR buffers scanned 46606 4.81 14.39 1.2 DBWR checkpoints 328 .03 .1
.01
DBWR free buffers found 32357 3.34 9.99
.83
DBWR lru scans 227 .02 .07
.01
DBWR make free requests 114 .01 .04 0 DBWR summed scan depth 46640 4.81 14.4 1.2 DBWR timeouts 12296 1.27 3.8
.32
SQL*Net roundtrips to/from 2830687 291.97 873.94 73.03 background checkpoints comp 15 0 0 0 background checkpoints star 15 0 0 0 background timeouts 41857 4.32 12.92 1.08 bytes received via SQL*Net 36120900 3725.72 11151.87 931.91 bytes sent via SQL*Net to c 614684350 63402.2 189775.96 15858.73 calls to get snapshot scn: 176513 18.21 54.5 4.55 calls to kcmgas 9763 1.01 3.01
.25
calls to kcmgcs 420 .04 .13
.01
calls to kcmgrs 204742 21.12 63.21 5.28 change write time 3293 .34 1.02
.08
cleanouts and rollbacks - c 113 .01 .03 0 cleanouts only - consistent 100 .01 .03 0 cluster key scan block gets 425791 43.92 131.46 10.99 cluster key scans 180004 18.57 55.57 4.64 commit cleanout failures: b 2 0 0 0 commit cleanout failures: c 78 .01 .02 0 commit cleanout number succ 20379 2.1 6.29
.53
consistent changes 1299 .13 .4
.03
consistent gets 1051878703 108497.03 324754.15 27138.25 cursor authentications 319 .03 .1
.01
data blocks consistent read 1275 .13 .39
.03
db block changes 144254 14.88 44.54 3.72 db block gets 173999 17.95 53.72 4.49 deferred (CURRENT) block cl 11667 1.2 3.6 .3 dirty buffers inspected 1 0 0 0 enqueue conversions 4257 .44 1.31
.11
enqueue releases 32589 3.36 10.06
.84
enqueue requests 35135 3.62 10.85
.91
enqueue timeouts 2551 .26 .79
.07
enqueue waits 22 0 .01 0 execute count 210491 21.71 64.99 5.43 free buffer inspected 73 .01 .02 0 free buffer requested 66609 6.87 20.56 1.72 immediate (CR) block cleano 213 .02 .07
.01
immediate (CURRENT) block c 1666 .17 .51
.04
logons cumulative 3239 .33 1
.08
messages received 4984 .51 1.54
.13
messages sent 4984 .51 1.54
.13
no work - consistent read g 1050974193 108403.73 324474.9 27114.92 opened cursors cumulative 55704 5.75 17.2 1.44 opened cursors current 12 0 0 0 parse count 66524 6.86 20.54 1.72 parse time cpu 4379 .45 1.35
.11
parse time elapsed 22711 2.34 7.01
.59
physical reads 61619 6.36 19.02 1.59 physical writes 13519 1.39 4.17
.35
process last non-idle time 1291579595 133221.21 398758.75 33322.49 recursive calls 1195197 123.28 369 30.84 recursive cpu usage 13748 1.42 4.24
.35
redo blocks written 30665 3.16 9.47
.79
redo buffer allocation retr 18 0 .01 0 redo entries 72925 7.52 22.51 1.88 redo log space requests 28 0 .01 0 redo log space wait time 1372 .14 .42
.04
redo size 13969988 1440.95 4313.06 360.42 redo small copies 72906 7.52 22.51 1.88 redo synch time 32 0 .01 0 redo synch writes 3205 .33 .99
.08
redo wastage 1156728 119.31 357.13 29.84 redo write time 24214 2.5 7.48
.62
redo writes 7101 .73 2.19
.18
rollback changes - undo rec 14 0 0 0 rollbacks only - consistent 805 .08 .25
.02
session connect time 1291579595 133221.21 398758.75 33322.49 session logical reads 1052048335 108514.53 324806.53 27142.63 session pga memory 2832210792 292131.08 874409.01 73070.45 session pga memory max 3010660596 310537.45 929503.12 77674.42 session uga memory 9562224 986.3 2952.21 246.7 session uga memory max 265006144 27334.31 81817.27 6837.1 sorts (disk) 212 .02 .07
.01
sorts (memory) 33602 3.47 10.37
.87
sorts (rows) 1273738 131.38 393.25 32.86 table fetch by rowid 1025678874 105794.62 316665.29 26462.3 table fetch continued row 6859047 707.48 2117.64 176.96 table scan blocks gotten 1721928 177.61 531.62 44.43 table scan rows gotten 4518355 466.05 1394.98 116.57 table scans (long tables) 35 0 .01 0 table scans (short tables) 17008 1.75 5.25
.44
total number commit cleanou 20481 2.11 6.32
.53
transaction rollbacks 6 0 0 0 user calls 2833906 292.31 874.93 73.11 user commits 9695 1 2.99
.25
write requests 6704 .69 2.07
.17
94 rows selected. SVRMGR> SVRMGR> SVRMGR> set numwidth 27 Numwidth 27 SVRMGR> Rem Average length of the dirty buffer write queue. If this is larger SVRMGR> Rem than the value of: SVRMGR> Rem 1. (db_files * db_file_simultaneous_writes)/2 SVRMGR> Rem or SVRMGR> Rem 2. 1/4 of db_block_buffers SVRMGR> Rem which ever is smaller and also there is a platform specific limit SVRMGR> Rem on the write batch size (normally 1024 or 2048 buffers). If the average SVRMGR> Rem length of the dirty buffer write queue is larger than the value SVRMGR> Rem calculated before, increase db_file_simultaneous_writes or db_files. SVRMGR> Rem Also check for disks that are doing many more IOs than other disks. SVRMGR> select queue.change/writes.change "Average Write Queue Length" 2> from stats$stats queue, stats$stats writes 3> where queue.name = 'summed dirty queue length' 4> and writes.name = 'write requests'; Average Write Queue Length --------------------------- 0 1 row selected. SVRMGR> SVRMGR> SVRMGR> set charwidth 32; Charwidth 32 SVRMGR> set numwidth 13; Numwidth 13 SVRMGR> Rem System wide wait events for non-background processes (PMON, SVRMGR> Rem SMON, etc). Times are in hundreths of seconds. Each one of SVRMGR> Rem these is a context switch which costs CPU time. By looking at SVRMGR> Rem the Total Time you can often determine what is the bottleneck SVRMGR> Rem that processes are waiting for. This shows the total time spent SVRMGR> Rem waiting for a specific event and the average time per wait on SVRMGR> Rem that event. SVRMGR> select n1.event "Event Name", 2> n1.event_count "Count", 3> n1.time_waited "Total Time", 4> round(n1.time_waited/n1.event_count, 2) "Avg Time" 5> from stats$event n1 6> where n1.event_count > 0 7> order by n1.time_waited desc; Event Name Count Total Time Avg Time -------------------------------- ------------- ------------- ------------- rdbms ipc message 3260 9708613 2978.1 dispatcher timer 646 3880557 6007.05 virtual circuit status 1291 3877574 3003.54 SQL*Net message from client 2830722 289956 .1 db file sequential read 28352 16464 .58 SQL*Net message to client 2830722 8230 0 db file scattered read 4304 2063 .48 latch free 462 1742 3.77 log file switch completion 28 1372 49 rdbms ipc reply 69 966 14 buffer busy waits 101 358 3.54 write complete waits 53 235 4.43 enqueue 20 69 3.45 SQL*Net more data to client 1045 20 .02 log file sync 3 8 2.67 instance recovery 1 6 6 control file sequential read 125 0 0 SQL*Net more data from client 3 0 0 18 rows selected. SVRMGR> SVRMGR> SVRMGR> Rem System wide wait events for background processes (PMON, SMON, etc) SVRMGR> select n1.event "Event Name", 2> n1.event_count "Count", 3> n1.time_waited "Total Time", 4> round(n1.time_waited/n1.event_count, 2) "Avg Time" 5> from stats$bck_event n1 6> where n1.event_count > 0 7> order by n1.time_waited desc; Event Name Count Total Time Avg Time -------------------------------- ------------- ------------- ------------- rdbms ipc message 43238 15434099 356.96 pmon timer 12892 3876067 300.66 smon timer 133 3864849 29059.02 db file parallel write 6704 28838 4.3 log file parallel write 7101 24203 3.41 control file parallel write 436 2895 6.64 log file sync 821 2680 3.26 latch free 313 949 3.03 timer in sksawat 347 729 2.1 db file single write 150 259 1.73 enqueue 2 103 51.5 log file single write 60 102 1.7 rdbms ipc reply 2 42 21 db file sequential read 168 38 .23 db file scattered read 29 29 1 control file sequential read 751 22 .03 log file sequential read 30 11 .37 buffer busy waits 3 6 2 18 rows selected. SVRMGR> SVRMGR> SVRMGR> set charwidth 18; Charwidth 18 SVRMGR> set numwidth 11; Numwidth 11 SVRMGR> Rem Latch statistics. Latch contention will show up as a large value for SVRMGR> Rem the 'latch free' event in the wait events above. SVRMGR> Rem Sleeps should be low. The hit_ratio should be high. SVRMGR> select name latch_name, gets, misses, 2> round((gets-misses)/decode(gets,0,1,gets),3) 3> hit_ratio, 4> sleeps, 5> round(sleeps/decode(misses,0,1,misses),3) "SLEEPS/MISS" 6> from stats$latches 7> where gets != 0 8> order by name; LATCH_NAME GETS MISSES HIT_RATIO SLEEPS SLEEPS/MISS ------------------ ----------- ----------- ----------- ----------- ----------- archive control 15 0 1 0 0 cache buffer handl 21 0 1 0 0 cache buffers chai 2104481738 232 1 574 2.474 cache buffers lru 87182 0 1 0 0 dml lock allocatio 33217 0 1 0 0 enqueue hash chain 71993 2 1 3 1.5 enqueues 92446 0 1 0 0 ktm global data 145 0 1 0 0 latch wait list 190 0 1 0 0 library cache 1887509 94 1 161 1.713 library cache load 2802 0 1 0 0 list of block allo 19455 0 1 0 0 messages 106628 2 1 2 1 modify parameter v 3239 0 1 0 0 multiblock read ob 8956 0 1 0 0 process allocation 4 0 1 0 0 redo allocation 109863 15 1 25 1.667 row cache objects 236144 2 1 3 1.5 sequence cache 11 0 1 0 0 session allocation 448490 1 1 2 2 session idle bit 5676559 2 1 2 1 session switching 626 0 1 0 0 shared pool 108173 0 1 0 0 sort extent pool 1357 0 1 0 0 system commit numb 233533 1 1 2 2 transaction alloca 30455 1 1 1 1 undo global data 31362 0 1 0 0 user lock 12 0 1 0 0 virtual circuit qu 2583 0 1 0 0 29 rows selected. SVRMGR> SVRMGR> set numwidth 16 Numwidth 16 SVRMGR> Rem Statistics on no_wait gets of latches. A no_wait get does not SVRMGR> Rem wait for the latch to become free, it immediately times out. SVRMGR> select name latch_name, 2> immed_gets nowait_gets, 3> immed_miss nowait_misses, 4> round((immed_gets/immed_gets+immed_miss), 3) 5> nowait_hit_ratio 6> from stats$latches 7> where immed_gets + immed_miss != 0 8> order by name; LATCH_NAME NOWAIT_GETS NOWAIT_MISSES NOWAIT_HIT_RATIO ------------------ ---------------- ---------------- ---------------- cache buffers chai 9896870 885 886 cache buffers lru 95586 0 1 process allocation 4 0 1 3 rows selected. SVRMGR> SVRMGR> Rem Buffer busy wait statistics. If the value for 'buffer busy wait' in SVRMGR> Rem the wait event statistics is high, then this table will identify SVRMGR> Rem which class of blocks is having high contention. If there are high SVRMGR> Rem 'undo header' waits then add more rollback segments. If there are SVRMGR> Rem high 'segment header' waits then adding freelists might help. Check SVRMGR> Rem v$session_wait to get the addresses of the actual blocks having SVRMGR> Rem contention. SVRMGR> select * from stats$waitstat 2> where count != 0 3> order by count desc; CLASS COUNT TIME ------------------ ---------------- ---------------- data block 53 311 undo header 51 53 2 rows selected. SVRMGR> SVRMGR> SVRMGR> set numwidth 19; Numwidth 19 SVRMGR> Rem Waits_for_trans_tbl high implies you should add rollback segments. SVRMGR> select * from stats$roll; UNDO_SEGMENT TRANS_TBL_GETS TRANS_TBL_WAITS UNDO_BYTES_WRITTEN SEGMENT_SIZE_BYTES XACTS SHRINKS WRAPS ------------------- ------------------- ------------------- ------------------- ------------------- ------------------- ------------------- ------------------- 0 134 0 0 237568 0 0 0 1 5444 0 1422494 15966208 0 0 2 2 4895 0 1382975 26615808 0 0 1 3 4736 2 1892249 18096128 0 0 2 4 5316 1 1316371 26615808 0 0 1 5 rows selected. SVRMGR> SVRMGR> set charwidth 39 Charwidth 39 SVRMGR> Rem The init.ora parameters currently in effect: SVRMGR> select name, value from v$parameter where isdefault = 'FALSE' 2> order by name; NAME VALUE --------------------------------------- --------------------------------------- always_anti_join NESTED_LOOPS audit_trail NONE background_dump_dest /usr/oracle/admin/prod/bdump cache_size_threshold 1000 compatible 7.3.0.0 control_files /var/opt/oradata/prod/cnt1, /usr/oracle core_dump_dest /usr/oracle/admin/prod/cdump cpu_count 1 db_block_buffers 10000 db_block_lru_latches 1 db_block_size 8192 db_files 200 db_name prod distributed_transactions 31 dml_locks 100 enqueue_resources 265 gc_freelist_groups 50 gc_releasable_locks 10000 job_queue_interval 30 job_queue_keep_connections TRUE job_queue_processes 3 log_archive_dest /usr/oracle/archive/prod log_archive_format prod_us%s.arc log_archive_start TRUE log_buffer 163840 log_checkpoint_interval 10000 log_simultaneous_copies 0 max_dump_file_size 10240 mts_dispatchers (ADDRESS=(PARTIAL=yes)(PROTOCOL=ipc)),1 mts_listener_address (ADDRESS=(PROTOCOL=ipc)(KEY=prod)) mts_max_dispatchers 10 mts_max_servers 10 mts_servers 1 mts_service prod nls_date_format DD-MON-RR nls_language american nls_territory america open_cursors 500 optimizer_mode RULE processes 100 remote_login_passwordfile NONE rollback_segments rbseg10, rbseg20, rbseg11, rbseg21 sequence_cache_entries 30 sequence_cache_hash_buckets 30 sessions 115 shared_pool_size 200000000 sort_area_retained_size 65536 sort_direct_writes AUTO sql_trace TRUE temporary_table_locks 115 timed_statistics TRUE transactions 126 transactions_per_rollback_segment 71 user_dump_dest /usr/oracle/admin/prod/udump utl_file_dir * 55 rows selected. SVRMGR> SVRMGR> set charwidth 15; Charwidth 15 SVRMGR> set numwidth 8; Numwidth 8 SVRMGR> Rem get_miss and scan_miss should be very low compared to the requests. SVRMGR> Rem cur_usage is the number of entries in the cache that are being used. SVRMGR> select * from stats$dc 2> where get_reqs != 0 or scan_reqs != 0 or mod_reqs != 0; NAME GET_REQS GET_MISS SCAN_REQ SCAN_MIS MOD_REQS COUNT CUR_USAG --------------- -------- -------- -------- -------- -------- -------- -------- dc_tablespaces 243 1 0 0 0 5 2 dc_free_extents 3040 23 16 0 16 140 115 dc_segments 3236 2602 0 0 16 2671 2656 dc_rollback_seg 2666 0 0 0 0 18 11 dc_used_extents 16 16 0 0 16 47 35 dc_users 19770 12 0 0 0 18 15 dc_user_grants 2485 12 0 0 0 24 12 dc_objects 3008 1364 0 0 0 1541 1539 dc_tables 8503 1266 0 0 0 1354 1349 dc_columns 60027 14355 4461 1265 0 15173 15168 dc_table_grants 6341 6226 0 0 0 6281 6231 dc_indexes 2151 1427 1617 1202 0 1517 1491 dc_constraint_d 88 71 37 17 0 158 156 dc_constraint_d 5 5 19 17 0 6 5 dc_synonyms 8 4 0 0 0 12 5 dc_usernames 16577 2 0 0 0 20 4 dc_object_ids 1907 1426 0 0 0 1475 1468 dc_sequences 2 1 0 0 1 14 1 dc_tablespaces 16 1 0 0 16 7 2 19 rows selected. SVRMGR> SVRMGR> SVRMGR> set charwidth 80; Charwidth 80 SVRMGR> set numwidth 10; Numwidth 10 SVRMGR> Rem Sum IO operations over tablespaces. SVRMGR> select 2> table_space||' ' 3> table_space, 4> sum(phys_reads) reads, sum(phys_blks_rd) blks_read, 5> sum(phys_rd_time) read_time, sum(phys_writes) writes, 6> sum(phys_blks_wr) blks_wrt, sum(phys_wrt_tim) write_time, 7> sum(megabytes_size) megabytes 8> from stats$files 9> group by table_space 10> order by table_space; TABLE_SPACE READS BLKS_READ READ_TIME WRITES BLKS_WRT WRITE_TIME MEGABYTES ------------------------------------------------------------------------------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- FND_DATA 14647 42164 5591 1001 1001 5420 577 FND_INDEX 1418 1418 529 1063 1063 5307 786 FND_REPORT 248 1550 150 20 20 154 315 RBS1 2 2 2 4096 4096 16681 419 RBS2 1 1 0 4104 4104 16073 419 SYSTEM 16347 16482 13199 3002 3002 10163 419 TEMP 5 14 16 233 233 1980 157 TOOLS 0 0 0 0 0 0 52 USERS 0 0 0 0 0 0 52 USER_DATA 0 0 0 0 0 0 52 10 rows selected. SVRMGR> SVRMGR> SVRMGR> set charwidth 48; Charwidth 48 SVRMGR> set numwidth 10; Numwidth 10 SVRMGR> Rem I/O should be spread evenly accross drives. A big difference between SVRMGR> Rem phys_reads and phys_blks_rd implies table scans are going on. SVRMGR> select table_space, file_name, 2> phys_reads reads, phys_blks_rd blks_read, phys_rd_time read_time, 3> phys_writes writes, phys_blks_wr blks_wrt, phys_wrt_tim write_time, 4> megabytes_size megabytes 5> from stats$files order by table_space, file_name; TABLE_SPACE FILE_NAME READS BLKS_READ READ_TIME WRITES BLKS_WRT WRITE_TIME MEGABYTES ------------------------------ ------------------------------------------------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- FND_DATA /d/prod/fnd_data.dbf 14647 42164 5591 1001 1001 5420 577 FND_INDEX /d/prod/fnd_index.dbf 1418 1418 529 1063 1063 5307 786 FND_REPORT /d/prod/fnd_report.dbf 248 1550 150 20 20 154 315 RBS1 /d/prod/rbs1 2 2 2 4096 4096 16681 419 RBS2 /d/prod/rbs2 1 1 0 4104 4104 16073 419 SYSTEM /d/prod/system01 16347 16482 13199 3002 3002 10163 419 TEMP /d/prod/temp01 5 14 16 233 233 1980 157 TOOLS /d/prod/tools.dbf 0 0 0 0 0 0 52 USERS /d/prod/users.dbf 0 0 0 0 0 0 52 USER_DATA /d/prod/user_data1 0 0 0 0 0 0 52 10 rows selected. SVRMGR> SVRMGR> SVRMGR> set charwidth 25 Charwidth 25 SVRMGR> Rem The times that bstat and estat were run. SVRMGR> select to_char(start_time, 'dd-mon-yy hh24:mi:ss') start_time, 2> to_char(end_time, 'dd-mon-yy hh24:mi:ss') end_time 3> from stats$dates; START_TIME END_TIME ------------------------- ------------------------- 23-may-01 19:08:58 24-may-01 05:54:58 1 row selected. SVRMGR> SVRMGR> set charwidth 75 Charwidth 75 SVRMGR> Rem Versions SVRMGR> select * from v$version; BANNER ---------------------------------------------------------------- Oracle7 Server Release 7.3.4.2.0 - Production PL/SQL Release 2.3.4.2.0 - Production CORE Version 3.5.4.0.0 - Production TNS for Solaris: Version 2.3.4.0.0 - Production NLSRTL Version 3.2.4.0.0 - Production 5 rows selected. SVRMGR> SVRMGR> SVRMGR> spool off;
Received on Thu May 24 2001 - 05:09:04 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US