Know Oracle Process OS Scheduled Priority
Can you kindly define and explain of this parameter?
_os_sched_high_priority
Regarding _os_sched_high_priority :
Setting LMS priority automatically via _os_sched_high_priority
It has been proven that performance is increased when LMS processes are running in the real time priority class, as opposed to the timesharing class. The parameter _os_sched_high_priority was introduced in Oracle 10g Release 2, and it allows LMS processes to be automatically configured in the real time priority class at instance startup. This feature basically obsoletes the need to manually set the real time priority for the LMS processes using a C program or the renice command.
On Unix platforms, process priority changes are normally executed under the root privilege, and the LMS process priority changes are implemented through an executable � oradism � owned by root with the setuid bit set.
The default value for _os_sched_high_priority in 10.2.0.1 is 1. With _os_sched_high_priority = 1, it means that all LMS processes are set to priority 1 in the real time class. We suggest to always set _os_sched_high_priority=1 in the init.ora, regardless of the default, and only toggle the behavior by restoring the original privileges and permissions on the oradism executable. Other possible values for this parameter are:
� If set to 0, LMS processes are not prioritized at startup, they are kept at the timesharing class as in earlier releases.
� Values higher than 1 give LMS higher priority in the real time class. Those settings are not recommended because they might cause starvation for other Oracle processes, leading to performance degradation.
If LMS processes remain in the timesharing class at instance startup, despite _os_sched_high_priority set to 1, then ownership and/or privileges for oradism may not have been set properly. To correct / verify these settings:
$ ls -l oradism
-rwsr-sr-x 1 root dba 15871 Jun 13 10:32 oradism
# chown root:dba oradism
# chmod 6755 oradism
Note about Linux process priorities:
SCHED_OTHER
static prio 0 : shows dynamic priorities with 'ps', ranging from 59-99
SCHED_RR / SCHED_FIFO
static prio 1 -> shows as priority 58 with 'ps'
static prio 11 -> shows as priority 48 with 'ps'
static prio 59 -> shows as priority 0 with 'ps'
static prio 60 -> shows as priority -1 with 'ps'
static prio 99 -> shows as priority -40 with 'ps' (highest RT priority)
On Linux, the LMS process priority can be seen via �ps �efl | grep lms�:
$ ps -efl|grep lms
0 S spommere 2201 1 0 58 0 - 285308 schedu 14:39 ? 00:00:00 ora_lms0_appsu01
0 S spommere 2205 1 0 58 0 - 285308 schedu 14:39 ? 00:00:00 ora_lms1_appsu01
In the above example, the LMS processes are running in the real-time class.
In the example below, the change in process prioritization failed, and the process priority remained at 75, because the permissions on the oradism executable were incorrectly set.
$ ps -efl | grep lms
0 S spommere 2002 1 1 75 0 - 285307 schedu 14:38 ? 00:00:00 ora_lms0_appsu01
0 S spommere 2006 1 1 75 0 - 285308 schedu 14:38 ? 00:00:00 ora_lms1_appsu01
Reference: internal Note 341974.1
Unpublished note 433105.1: 'LMS Real Time Priority in RAC 10g Release 2 - Things to Consider Before Changing'.
_os_sched_high_priority: Default value is 1.
Setting it to 0 means that all scheduling class manipulation will be disabled.
The parameter is mainly ised in RAC systems, where you may want specific procecces like LMS to run at a higher priority.
Any underscore (hidden) parameters (like _os_sched_high_priority) should not be set unless specificly instructed by Support either via a Service Request or via a MetaLink Note. In all other cases, it's default value should be used.
(You may see examples of notes by querying in MetaLink with the word _os_sched_high_priority).
posted on 2010-01-13 05:54 Oracle和MySQL 阅读(288) 评论(0) 编辑 收藏 举报