Oracle9i Administrator's Reference Release 1 (9.0.1) for UNIX Systems: AIX-Based Systems, Compaq Tru64 UNIX, HP 9000 Series HP-UX, Linux Intel and Sun SPARC Solaris Part Number A90347-02 |
|
This appendix contains the following tuning information for Oracle9i on HP:
On HP, most processes run under a time sharing scheduling policy. Time sharing can have detrimental effects on Oracle performance by descheduling an Oracle process during critical operations, for example holding a latch. HP has a modified scheduling policy, referred to as SCHED_NOAGE, that specifically addresses this issue. Unlike the normal time sharing policy, a process scheduled using SCHED_NOAGE does not increase or decrease in priority, nor is it preempted.
This feature is suited to online transaction processing (OLTP) environments because OLTP environments can cause competition for critical resources. In laboratory tests, Oracle9i performance increased by up to 10 percent in OLTP environments using the SCHED_NOAGE policy.
The SCHED_NOAGE policy creates little or no gains in decision support (DSS) environments because there is little resource competition in these environments. Because each application and server environment is different, you should test and verify whether your environment benefits from the SCHED_NOAGE policy.
To allow Oracle9i to use the SCHED_NOAGE scheduling policy, the group that the Oracle software owner belongs to (dba
), must have the RTSCHED and RTPRIO privileges to change the scheduling policy and set the priority level for Oracle processes. To give the dba
group these privileges:
root
user, enter the following command:
# setprivgrp dba RTSCHED RTPRIO
/etc/privgroup
file, if it does not exist on your system, and add the following line to it:
dba RTSCHED RTPRIO
Oracle9i release 1 (9.0.1) on HP-UX uses a new system library call to calculate elapsed time when the TIMED_STATISTICS initialization parameter is set to TRUE. Laboratory tests show that the new library call provides a performance improvement of up to 10 percent over the previous implementation.
Before running Oracle9i, ensure that the required operating system patches are installed on your system. If you run Oracle9i on unpatched versions of the HP kernel, you will receive undefined and unresolved references to the gethrtime()
library call.
The asynchronous I/O pseudo-driver on HP allows the Oracle server to perform I/O to raw disk partitions using an asynchronous method, resulting in less I/O overhead and higher throughput. You can use the asynchronous I/O pseudo-driver on both HP-UX 9000 servers and workstations.
To allow Oracle9i to execute asynchronous I/O operations, the group that the Oracle software owner belongs to (dba
) must have the MLOCK privilege. To give the dba
group the MLOCK privilege:
root
user, enter the following command:
# setprivgrp dba MLOCK
/etc/privgroup
file, if it does not exist on your system, and add the following line to it:
dba MLOCK
If you want to use asynchronous I/O on HP, you must use raw partitions for database files. Use the System Administrator Management (SAM) utility to configure the asynchronous disk driver into the HP kernel.
To add the asynchronous disk driver and configure the kernel using the SAM utility:
# sam
asyncdsk
).
The MAX_ASYNC_PORTS parameter is a configurable HP kernel parameter that controls the maximum number of processes that can open the /dev/async
file simultaneously.
The system displays an error when a process tries to open the /dev/async
file after the maximum number of processes have opened the file. This error can reduce performance on computers with a large number of shadow processes or many parallel query slaves performing asynchronous I/O. This error is not recorded. To avoid this error, estimate the highest likely number of processes that can access the /dev/async
file and set the MAX_ASYNC_PORTS parameter to this value.
If you choose the second option, the new kernel, vmunix_test
, and the system.SAM
configuration file used to create it, are both created in the /stand/build
directory.
To use the new kernel:
# /usr/sbin/kmupdate
# shutdown -r
To enable asynchronous I/O operations using the HP asynchronous device driver:
root
user.
# /sbin/mknod /dev/async c 101 0x0
/dev/async
device file exists and has the major number 101:
# ls -l /dev/async
The output of this command should look similar to the following:
crw------- 1 orcle oracle 101 0x000000 Oct 28 10:32 /dev/async
If the Oracle software owner is oracle
, enter the following commands:
# /usr/bin/chown oracle:dba /dev/async # /usr/bin/chmod 660 /dev/async
To verify that asynchronous I/O is working:
$ gpm
The list of files currently opened by the database writer process appears.
/dev/async
file or the mode 101 0x000000 in the list of open files.
If either the /dev/async
file or the mode 101 0x000000 is in the list, the /dev/async
file has been opened by the database writer process. This means that the database writer process is executing I/O through the HP asynchronous device driver and is working properly.
Oracle9i release 1 (9.0.1) on HP uses a non-blocking polling facility provided by the HP asynchronous driver to check the status of I/O operations. This polling is performed by checking a flag that is updated by the asynchronous driver based on the status of the I/O operations submitted. HP requires that this flag be in shared memory.
Oracle9i configures an asynchronous flag in the SGA for each oracle process. Oracle9i on HP has a true asynchronous I/O mechanism where I/O requests can be issued even though some previously issued I/O operations are not complete. This helps to enhance performance and ensures good scalability of parallel I/O processes.
Before Oracle8i release 8.1.7, the Oracle server was only able to execute I/O operations from shared memory using the HP asynchronous driver. Oracle8i release 8.1.7 executes I/O operations from both shared memory and process-private regions using the new HP asynchronous driver. However, I/O operations through the asynchronous driver are not asynchronous in nature. This is because Oracle8i must perform a blocking wait to check the status of I/O operations submitted to the asynchronous driver. Doing this causes some Oracle processes, for example the database writer process, to essentially execute synchronous I/O.
HP Superdome systems have a data prefetch feature that might impair Oracle performance in update or insert intensive applications. Oracle Corporation and Hewlett-Packard Corporation recommend that you disable this feature for these types of applications.
Prefetching data usually improves application performance. However, the Oracle server is developed to run well on all HP systems, including those that do not include the prefetch feature. In update and insert intensive applications, enabling the data prefetch feature unintentionally creates contention on redo allocation and redo copy latches. This contention is increased as the number of processors is increased. Disabling the data prefetch feature helps to reduce redo latch contention.
HP Superdome systems can run multiple instances of the HP-UX 11i operating system on a single server by defining multiple partitions within a Superdome server. Each partition on a HP Superdome system acts as a logical server running a single instance of HP-UX. Each system can boot, reboot, and operate independently of other partitions and hardware within the Superdome system. Each partition has its own console.
To disable data prefetch on a HP Superdome system, you must disable the prefetch option in each partition on which the Oracle server is running. To disable the prefetch option for each partition:
$ telnet superdome_hostname
The Guardian Server Processor (GSP) prompt appears.
GSP> CO
The partition console appears.
root
user.
# hostname
# shutdown -r
The following message appears:
To discontinue boot, hit space bar within 10 secs
....
CO
to display the BCH Configuration menu.
DataPrefetch DISABLE
# shutdown -r
The following message appears:
To discontinue boot, hit space bar within 10 secs
....
exit
to exit the partition.
To disable data prefetch on another partition where the Oracle server is running, perform steps 4 through 14.
|
![]() Copyright © 2001 Oracle Corporation. All Rights Reserved. |
|