欢迎您访问我爱IT技术网,今天小编为你分享的是oracle数据库教程:【[Oracle]如何提高Oracle进程的优先级】,通过学习这些教程,你能够更深层次的掌握Oracle数据库!
[Oracle]如何提高Oracle进程的优先级
在繁忙的系统中,我们总是会期望提高某些Oracle进程的优先级,使其能够更容易的获得CPU资源,执行重要的任务。在Oracle 10g之前,这样的工作要通过操作系统上的设置来实现,在Oracle 10gR2中,一个新的隐含参数被引入到数据库中,用于配置提升Oracle后台进程
在繁忙的系统中,我们总是会期望提高某些Oracle进程的优先级,使其能够更容易的获得CPU资源,执行重要的任务。在Oracle 10g之前,这样的工作要通过操作系统上的设置来实现,在Oracle 10gR2中,一个新的隐含参数被引入到数据库中,用于配置提升Oracle后台进程的优先级。
这个核心参数是: _high_priority_processes
在 10.2 版本中,Oracle 缺省的对 LMS* 设置高优先级,在11g开始,对 LMS*||VKTM 设置高优先级。
在Linux平台上,进程的内核调用分为三类:
TS - SCHED_OTHER (SCHED_NORMAL) ,这是分时调度策略,缺省的正常级别;
FF - SCHED_FIFO,这是实时调度策略,先到先服务,先进先出;
RR - SCHED_RR,实时调度策略,时间片轮转;
其中 FF,RR 都是实时调度队列的,实时进程调度队列,是从优先级最高的进程运行,如果当前运行的是FIFO进程,如果进程不主动让出CPU,其他进程都不能运行,如果是RR(时间片轮转)的,则不会一直独占CPU,运行一段时间会被切换出来。
以下是在Linux中设置PMON进程提高优先级的测试。
[eygle@enmoteam2 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Fri Aug 9 10:43:50 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 1670221824 bytes
Fixed Size 2228944 bytes
Variable Size 402656560 bytes
Database Buffers 1258291200 bytes
Redo Buffers 7045120 bytes
Database mounted.
Database opened.
检查此时PMON进程的优先级为:TS 。
[eygle@enmoteam2 ~]$ ps -eo pid,class,pri,nice,time,args |grep pmon |grep -v grep
25424 TS 19 0 00:00:00 ora_pmon_enmot2
设置PMON进程,重新启动数据库:
SQL> alter system set "_high_priority_processes"="PMON" scope=spfile;
System altered.
SQL> shutdown abort;
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 1670221824 bytes
Fixed Size 2228944 bytes
Variable Size 402656560 bytes
Database Buffers 1258291200 bytes
Redo Buffers 7045120 bytes
Database mounted.
Database opened.
此时检查,可以发现PMON进程运行在RR模式:
SQL> ! ps -eo pid,class,pri,nice,time,args |grep pmon |grep -v grep
26222 RR 41 - 00:00:00 ora_pmon_enmot2
在Solaris下有所不同,高优先级进程运行在RT模式 - Real Time,实时模式:
SQL> show parameter pri
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_high_priority_processes string LMS*|LGWR|PMON
oracle@solaris:$ ps -eo pid,class,pri,nice,time,args |egrep 'lgwr|pmon' |grep -v grep
27674 RT 101 RT 00:00 ora_pmon_orcl
27694 RT 101 RT 00:00 ora_lgwr_orcl
注意,在RAC系统中,LMS*可能会导致一系列的LMS进程都获得高优先级,这可能是不必要的,也会抢占其他进程的资源,所以可以根据具体情况进行设置。
当系统中既有分时调度 - TS,又有时间片轮转调度(RR)和先进先出调度(FF)时,以下是一些细节上的说明:
当实时进程准备就绪后,如果当前CPU正在运行非实时进程,则实时进程立即抢占非实时进程;
RR进程和FIFO进程都采用实时优先级做为调度的权值标准,RR实际上是FIFO的一个延伸;
FIFO时,如果两个进程的优先级一样,则这两个优先级一样的进程具体执行哪一个是由其在队列中的位置决定的,这样导致一些不公正性,如果将两个优先级一样的任务的调度策略都设为RR,则保证了这两个任务可以循环执行,保证了公平。
关于[Oracle]如何提高Oracle进程的优先级的用户使用互动如下:
相关问题:LGWR进程任务是非常频繁的,oracle为什么没有采用...
答:oracle采用的是多线程模式,加快进程书写速度,但是没有采用多进程模式。 举个例子:上公交车。 (1)排队的速度可能比大家一拥而上要快。(现在硬盘的并口换为串口也能说明这个) (2)一拥而上看起来快,但是如果前面出现“争门”(相当于两个进... >>详细
相关问题:oracle里如何按地区优先级统计信息
答:建一个表存储区域的优先级,create table 区域优先级(area varchar2(200), priority number); 插入优先级数据,查找统计数据的时候用 select a.* from (select rownum rn, b.* from (select t1.* from t1, 区域优先级 where t1.area = 区域优先... >>详细
相关问题:oracle数据库优化有哪些方法?
答:你最好买一本专门讲ORACLE性能优化的书,好好看看 1、调整数据库服务器的性能 Oracle数据库服务器是整个系统的核心,它的性能高低直接影响整个系统的性能,为了调整Oracle数据库服务器的性能,主要从以下几个方面考虑: 1.1、调整操作系统以适合... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
