Download - Solaris Kernel

Transcript

There are some new kernel parameters needs to be configured in order to Install new patch set for 11gR2 (11.2.0.2) The following are the list of parameters: 1) tcp_smallest_anon_port 2) tcp_largest_anon_port 3) udp_smallest_anon_port 4) udp_largest_anon_port When i was trying to Install this new patchset, the result for pre-requisite che ck was failed because of these newly introduces kernel parameters. Setting these kernel parameters: 1) To view the current value of these parameters, login as root user: bash-3.00# ndd /dev/tcp tcp_smallest_anon_port tcp_largest_anon_port 9000 65500 bash-3.00# bash-3.00# ndd /dev/udp udp_smallest_anon_port udp_largest_anon_port 9000 65500 bash-3.00# The kernel parameters as expected by the Installer: kernel parameter present val expected tcp_smallest_anon_port -- 32768 --> 9000 tcp_largest_anon_port -- 65535 --> 65500 udp_smallest_anon_port -- 32768 --> 9000 udp_largest_anon_port -- 65535 --> 65500 update these kernel parameters using following parameters: bash-3.00# bash-3.00# bash-3.00# bash-3.00# ndd ndd ndd ndd -set -set -set -set /dev/udp /dev/udp /dev/tcp /dev/tcp udp_smallest_anon_port 9000 udp_largest_anon_port 65500 tcp_smallest_anon_port 9000 tcp_largest_anon_port 65500

Note these settings will be lost at next reboot of your server. To keep these se tting permanent add it in a system startup file. Then verify the settings using: bash-3.00# ndd /dev/tcp tcp_smallest_anon_port tcp_largest_anon_port

bash-3.00# ndd /dev/udp udp_smallest_anon_port udp_largest_anon_port After setting these kernel parameters the pre-requisite check was successfull an d Installation completed without any issue.

Summary: System resource usage and trend analysis data gathering for capacity pl anning can profit of Oracle AWR 10g repository as the source of data, both for R AC and single instance. 1. System metric I had the need to provide management with system resource utilization data for t rend analysis and capacity planning of a production database. Production is on 1 0g RAC. Standard OS monitoring tools provide system metrics for each cluster nod e separately, which would require the development of custom scripts to aggregate the data in a cluster-wide view. Instead I have used AWR to extract system reso urce usage metrics for the whole cluster. This has saved me considerable time an d allowed for easier analysis. In particular I ran the query reported here below against dba_hist_sysmetric_summary. The result of the query was spooled to a fi le and imported to a spreadsheet to produce graphs from the collected metric val ues. ---------------------------set lines 250 set pages 9999 spool sysmetric_outp.log alter session set nls_date_format='dd-mm-yyyy hh24:mi'; select min(begin_time), max(end_time), sum(case metric_name when 'Physical Read Total Bytes Per Sec' then averag e end) Physical_Read_Total_Bps, sum(case metric_name when 'Physical Write Total Bytes Per Sec' then avera ge end) Physical_Write_Total_Bps, sum(case metric_name when 'Redo Generated Per Sec' then average end) Redo _Bytes_per_sec, sum(case metric_name when 'Physical Read Total IO Requests Per Sec' then average end) Physical_Read_IOPS, sum(case metric_name when 'Physical Write Total IO Requests Per Sec' then average end) Physical_write_IOPS, sum(case metric_name when 'Redo Writes Per Sec' then average end) Physica l_redo_IOPS, sum(case metric_name when 'Current OS Load' then average end) OS_LOad, sum(case metric_name when 'CPU Usage Per Sec' then average end) DB_CPU_Us age_per_sec, sum(case metric_name when 'Host CPU Utilization (%)' then average end) Ho st_CPU_util, --NOTE 100% = 1 loaded RAC node sum(case metric_name when 'Network Traffic Volume Per Sec' then average e nd) Network_bytes_per_sec, snap_id from dba_hist_sysmetric_summary group by snap_id order by snap_id; spool off -------------------------Prior to running this and the following analysis I had set the retention period for AWR to 31 days (default is 7 days, which may be too short for trend analysis

): EXECUTE DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(retention => 60*24* 31) 2. Service Activity On a production 10g RAC database we run several database applications. Each appl ication is associated with a dedicated Oracle service. For performance and capac ity planning analysis I needed to find the list of most active applications/serv ices and their activity trend. Service activity is defined as the ratio of 'DB T ime' over 'Elapsed Time' (i.e. the percentage of time a given service is in a DB call, as opposed to processing application logic or waiting for input). I extra cted the application activity data from the AWR repository, and in particular th e DBA_HIST_SERVICE_STAT view. The query I used makes use of analytic functions t o extract the deltas of the 'DB time' metric between successive AWR snapshots an d is RAC aware. -------------set lines 250 set pages 9999 col service_name for a40 col Interval_time for a40 spool service_activity.log alter session set nls_date_format='dd-mm-yyyy hh24:mi'; select service_name,max(END_INTERVAL_TIME) Interval_time,round(sum(DeltaValue/De ltaT_sec)*(100/1000000),0) Pct_active_time from ( select sn.snap_id,ss.service_name,sn.END_INTERVAL_TIME,ss.instance_number,ss. stat_name,ss.value, lag(ss.value) over (partition by ss.service_name,ss.instance_number order by sn.snap_id) prevValue, ss.value - lag(ss.value) over (partition by ss.service_name,ss.instance_n umber order by sn.snap_id nulls first) BlindDelta, nvl2(lag(ss.value) over (partition by ss.service_name,ss.instance_number order by sn.snap_id), -- if the instance restarted Delta=0, error by defect ss.value - lag(ss.value) over (partition by ss.service_name,ss.insta nce_number order by sn.snap_id), 0 ) DeltaValue, extract(hour from END_INTERVAL_TIME-begin_interval_time)*3600 + extract(minute from END_INTERVAL_TIME-begin_interval_time)* 60 + extract(second from END_INTERVAL_TIME-begin_interval_time) Delta T_sec from DBA_HIST_SERVICE_STAT ss, dba_hist_snapshot sn where ss.snap_id=sn.snap_id and ss.instance_number=sn.instance_number and ss.stat_name='DB time' ) group by snap_id, service_name having sum(DeltaValue/DeltaT_sec)*(100/1000000)>10 -- Filters out points of low activity (