Solaris Kernel

download Solaris Kernel

If you can't read please download the document

Transcript of Solaris Kernel

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 (