In this best practice we used an Oracle configuration parameter to set database processes to high priority. The Linux operating system enables setting priorities on processes to ensure critical processes gain priority of the operating systems.
Category | Oracle 19c Database |
Product | Oracle 19c |
Type of best practice | Performance Optimization |
Day and value | Day 3, Fine Tuning |
Overview
The Oracle configuration parameter _high_priority_processes enables the database administrator to set related database processes to a higher priority. The following command shows the default value of the parameter:
_high_priority_processess = ’LMS*|LM1*|LM2*|LM3*|LM4*|LM5*|LM6*|LM7*|LM8*|LM9*’
LMSn and LMn - relates to the global cache service process.
- VKTM – is the virtual keeper of time process and provides a wall clock time for measurements.
- LGWR – is the log writer processes and writes data to the online redo logs.
The LMSn and LMn process relates to the global cache service process. These processes receive, process, and send requests for the global cache service and the buffer cache resources.
To optimize the database configuration, we configured the parameter to prioritize these processes:
_high_priority_processess = ’LMS*|VKTM|LGWR’
Changing the _high_priority_processess parameter does require a database restart.
Recommendation
Updating the _high_priority_processess database parameter slightly increased performance across the following metrics:
- New Orders per Minute (NOPM)
- Transactions per Minute (TPM)
- PowerMax IOPS.
- Server CPU utilization.
- DB File Sequential Read
- Log File Parallel Write
We recommend changing the _high_priority_processess parameter as a Day 3, Fine Tuning activity as it can provide the database with a slight performance boost. We also recommend testing this thoroughly before applying to production systems. Refer to Oracle support DOC: Doc ID 1373500.1
Implementation Steps
Use the following steps to update the parameter related to high priority processes:
- Log in to the database node/VM (rp2vm2) as oracle user
- Connect to sqlplus
- Update the priority of intended processes
SQL> alter system set "_high_priority_processes"='LMS*|VKTM|LGWR' scope=spfile;
SQL> Exit
- Restart the database
[oracle@rp2vm2 ~]$ srvctl stop database -d rdpp1 [oracle@rp2vm2 ~]$ srvctl start database -d rdpp1
- Verfiy the updated priority using the following steps
- Connect to sqlplus
SQL> select ksppstvl from x$ksppi join x$ksppcv using (indx) where ksppinm='_high_priority_processes';
Follow these steps for all the eight database nodes/VMs (rp2vm2, rp2vm3 to rp2vm9).