Oracle8i Administrator's Guide
Release 2 (8.1.6) for Windows NT

A73008-01

Library

Product

Contents

Index

Prev Next

10
Tuning Windows NT to Optimize Oracle8i

This chapter describes how to tune the Windows NT Server operating system to ensure that your Oracle8i database is running in the best possible environment.

Specific topics discussed are:

Overview

Compared to UNIX, Windows NT Server offers considerably fewer knobs that can be adjusted to tune the operating system (OS). This reduces the ability of systems administrators to optimize Windows NT Server performance, but helps to make Windows NT Server easier to use than some operating systems.

There are still ways, however, to make Windows NT Server a better application server environment for the Oracle8i database. Most of these OS-specific procedures have the effect of reserving more system resources for the Oracle8i database, such as CPU, memory, and disk I/O. These procedures are described in this chapter. In addition, the Oracle8i database is a high-performance database management system that effectively uses the resources within your Windows NT computer. In general, the Windows NT computer that is running your Oracle8i database should not also serve as any of the following:

These configurations consume both network, memory, and CPU resources. In addition, the Windows NT computer that is running your Oracle8i database should not be locally accessed with a high frequency or intensively used for local user processing, unless there exist significant resources to accommodate all this activity.


Note:

The information described in this chapter is specific to Oracle8i database installations on Windows NT Server, and not on Windows NT Workstation. This information is also applicable to Oracle8i database installations on Windows NT Server 4.0, Enterprise Edition. Windows NT Server 4.0, Enterprise Edition includes the capability for using additional products, such as the Microsoft Cluster Server, which is required if you want to implement Oracle Fail Safe (OFS). 


4 GB RAM Tuning (4 GT) for Windows NT Server, Enterprise Edition

Windows NT Server, Enterprise Edition includes a new capability called 4 GB RAM Tuning (4GT). This capability allows memory-intensive applications running on Windows NT Server, Enterprise Edition to utilize up to 50% more RAM on Intel Architecture servers. It does this by reducing the potential RAM allocated to the NT kernel from 2 Gigabytes (GB) to 1 GB, and increasing the potential RAM allocated to processes from 2 GB to 3 GB. Note that this capability is not currently available on any other Microsoft operating system.

For Oracle Server releases 7.3.4 or later, there is no additional Oracle configuration required to take advantage of 4 GB RAM Tuning, nor is there a requirement that this feature be enabled in order to use Oracle Server.

Additional Information:

See your Microsoft operating system documentation for more information on using 4 GB RAM Tuning, or visit:

http://www.microsoft.com/ntserver/ntserverenterprise/exec/feature/4gbt.asp 

Oracle8i Support for the Intel Extended Server Memory Architecture (ESMA)

A new feature in Oracle8i for Windows NT is support for Intel ESMA, which allows Oracle8i to access more than the 4 GB of RAM traditionally available to Windows NT applications.


Note:

This feature is only available on Intel Pentium II and Pentium III Xeon 32-bit processors. 


Specifically, Oracle8i (in conjunction with Intel's PSE36 driver) can now allocate substantially more database buffers than previous releases. Further details are posted at:



http://www.intel.com/ebusiness/server/resources/pentiumii/xeon/esma.pdf

To take advantage of this support, you must do the following:

  1. More than 4 GB of RAM must be present in the server on which Oracle8i will run.

  2. Windows NT v4.0 Enterprise Edition, Service Pack 3 or later must be installed.

  3. The Intel PSE36 driver must be installed and operational. See

    http://developer.intel.com/vtune/pse36/index.htm

    for further PSE36 system requirements and for download instructions.

  4. USE_INDIRECT_DATA_BUFFERS=TRUE must be present in the INIT.ORA for the database instance that will use the PSE36 driver. If this parameter is not set, then Oracle8i behaves in exactly the same way as previous releases.

  5. Set DB_BLOCK_BUFFERS and DB_BLOCK_SIZE as desired for the database. Note that the total number of bytes of database buffers (that is, DB_BLOCK_BUFFERS multiplied by DB_BLOCK_SIZE) is no longer limited to 3 GB as was the case in previous releases.

  6. The VLM_BUFFER_MEMORY registry parameter must be created and set in the appropriate key for your Oracle home in the Windows NT Registry. This parameter is specified in bytes and has a default of 1 GB. When set, this parameter tells Oracle8i how much non-PSE36 memory to use for database buffers. This memory comes from Oracle8i's virtual address space, as was the case in previous releases. Setting this parameter to a large value has the effect of using more of Oracle8i's address space for buffers and using less PSE36 memory for buffers. However, since accessing PSE36 buffers is somewhat slower than accessing virtual address space buffers, tune this parameter to be as large as possible without adversely limiting database operations.

    For instance, assume that the Oracle8i database is running on a machine with 8 GB of RAM, which means that the PSE36 driver has control of 4 GB of RAM. If DB_BLOCK_BUFFERS=2500000 and DB_BLOCK_SIZE=2048, then a total of 5 GB of database buffers needs to be allocated. If VLM_BUFFER_MEMORY is set to 1 GB, then 1 GB of buffers come from the Oracle8i virtual address space and 4 GB come from the PSE36 driver. If you set VLM_BUFFER_MEMORY to 500 MB, an error occurs at startup because there is not 4.5 GB of memory available to the PSE36 driver for database buffers. Likewise, if you set VLM_BUFFER_MEMORY to 3 GB, an error occurs because the Oracle8i address space is limited to 3 GB on Windows NT, and this address space must also hold Oracle8i code, shared pool, PGA memory, and other structures. In general, the higher the VLM_BUFFER_MEMORY is set, the fewer connections and memory allocations will be possible for Oracle8i. The lower VLM_BUFFER_MEMORY is set, the slower the performance will be.

  7. Once these parameters are set, the Oracle8i database can be started up and will function exactly the same as before except that more database buffers are available to the instance. In addition, disk I/O may be reduced since more Oracle data blocks can be cached in the SGA. If out of memory errors occur during the startup sequence, verify the following:

    1. PSE36 driver is installed and functional

    2. DB_BLOCK_BUFFERS is not set too high for the amount of memory in the machine. Note that more memory than just the database buffers themselves is required when starting up the database. For each database buffer, a database buffer header is also allocated in Oracle8i's virtual address space. When allocating 2,000,000 database buffers, the memory for these buffer headers amounts to several hundred megabytes. This must be considered when setting DB_BLOCK_BUFFERS and VLM_BUFFER_MEMORY.

    3. VLM_BUFFER_MEMORY is not set too high for the amount of address space available to Oracle8i. In Windows NT's Performance Monitor, under the Process object, monitor the Virtual Bytes counter for the "ORACLE" process. If this counter approaches 3 GB, then out of memory errors can occur. If this happens, reduce DB_BLOCK_BUFFERS and/or VLM_BUFFER_MEMORY until the database is able to start up.

  8. Currently, there is a limitation in Server Manager for NT whereby the amount of database buffers displayed during database startup is incorrect if more than 4 GB of buffers are in use. For instance, if 5 GB of buffers are used, Server Manager will incorrectly report that 1 GB are being used. This limitation will be fixed in the next release of Oracle8i.

Reduce Priority of Foreground Applications on the Server Console

Interactive foreground applications running on Windows NT Server are given priority over background processes. This is the setting provided by default during the installation of Windows NT Server. In order to prevent foreground applications on the server console from taking excessive processor time away from the Oracle8i database, remove the priority for foreground applications.

To reduce the priority of foreground applications:

  1. Choose Start > Settings > Control Panel > System.

    The System Properties dialog box appears.

  2. Click the Performance tab.

    The Performance tab displays:


  3. Move the Application Performance Boost slider to None.

  4. Click OK.

  5. Exit the Control Panel.

Configure Windows NT Server to Be an Application Server

Windows NT Server is a 32-bit OS capable of addressing a 4 GB memory space (that is, 232 = 4,294,967,296 bytes = 4 GB). Half of this addressable memory space is reserved for system services and the file cache. The other half is addressable by user programs, such as the Oracle8i database.

Very few Windows NT Servers are equipped with 4 GB of RAM, so virtual memory plays an important role in Windows NT Server. The Windows NT Server memory manager tries to balance each application's usage of memory by dynamically paging memory between physical RAM and a virtual memory paging file. If an application is particularly memory-intensive (like the Oracle8i database) or if a large number of applications are running concurrently, the combined memory requirements of the applications may exceed the capacity of physical memory.

The Windows NT memory manager divides up system memory into three different pools.

Windows NT Server Memory Pools 
Category  Pools  Approximate % of Total Memory 

System Area 

Kernel and other system services 

9% 

 

File Cache 

41% 

User Area 

Paged Memory 

50% 

The large proportion of memory (41%) reserved for file caching can be quite beneficial to file and print servers but may not be advantageous to application servers that often run memory-intensive network applications. A Windows NT Server file cache is particularly unnecessary for the Oracle8i database, which performs its own caching (through the System Global Area Memory).

Windows NT Server is set by default to perform as a file and print server with a large file cache. Reset the server memory model for network applications so that the file cache is reduced and more physical memory is available for the Oracle8i database.

To configure Windows NT Server to be an applications server:

  1. Choose Start > Settings > Control Panel > Network.

    The Network dialog box appears.

  2. Click the Services tab.

    The following information appears:


  3. Select the Server service and click Properties.

  4. Select the radio button for a network applications configuration and click OK.

  5. Click OK on the Network dialog box.

  6. Exit the Control Panel.

  7. Reboot the system for the changes to take effect.

Disable Unnecessary Services

Once the file cache has been significantly reduced in size (as described in section "Configure Windows NT Server to Be an Application Server"), retrieve additional physical memory for the Oracle8i database by disabling services not needed for core OS functionality.

To disable unnecessary services:

  1. Choose Start > Settings > Control Panel > Services.

    The Services dialog box appears.

  2. Scroll through the list of services and identify any unnecessary services. This is a partial list of services that can or cannot be disabled:

    You Can Disable These Services  Do Not Disable These Services 

    License Logging Service 

    Alerter 

    Plug and Play 

    Computer Browser 

    Remote Access Autodial Manager 

    EventLog 

    Remote Access Connection Manager 

    Messenger 

    Remote Access Server 

    OracleServiceSID 

    Telephony Service 

    OracleHOME_NAMETNSListener 

     

    OracleStartSID (for releases 8.0.5 and earlier) 

     

    Remote Procedure Call (RPC) Service 

     

    Server 

     

    Spooler 

     

    TCP/IP NetBIOS Helper 

     

    Workstation 


    Note:

    Consult with your systems administrator to find out if there are additional services that can be disabled. 


  3. Select the service.

  4. Click Startup.

    The Service dialog box appears.

  5. Select Disabled in the Startup Type field.

  6. Click OK.

  7. Exit the Control Panel.

Remove Unused Network Protocols

Remove all unnecessary network protocols on Windows NT Server so that processing time may be concentrated on servicing only critical protocols.

To remove unnecessary network protocols:

  1. Choose Start > Settings > Control Panel > Network.

    The Network dialog box appears.

  2. Click the Protocols tab.


  3. If multiple protocols are installed, choose one, preferably TCP/IP, for use as the sole network protocol, unless others are necessary for server functionality.

  4. Select unneeded network protocols and click Remove.

  5. Click Yes in the confirmation dialog box until only the necessary protocols remain.

  6. Exit the Control Panel.

Reset the Network Protocol Bind Order

If multiple protocols must be installed on the server, then prioritize the bindings so that the protocol most frequently used by the Oracle8i database is given the highest priority.

To reset the network protocol bind order:

  1. Choose Start > Settings > Control Panel > Network.

    The Network dialog box appears.

  2. Click the Bindings tab.

    The Bindings tab displays:

  3. Select all services from the Show Bindings for drop-down list box.

  4. Double-click Server to expand the list of currently installed services.

    All available protocol adapters display:


  5. If the primary Oracle8i database protocol is not at the top of the list, select the protocol.

  6. Click Move Up until the primary protocol is at the top of the list.

  7. If multiple network interface cards (NICs) are installed, expand each protocol and move the NIC used most often by the Oracle8i database to the top of the list.

  8. Click the OK button to save the changes.

  9. Exit the Control Panel.

  10. Reboot Windows NT Server to enable the new changes.

Apply Latest Reliable Windows NT Server Service Pack

Microsoft releases operating system patches, called Service Packs, on a quarterly basis. Service Packs are sometimes abbreviated as SPx where x is the release number of the Service Pack (for example, Windows NT Server 4.0 SP4 denotes a Windows NT Server 4.0 installation with Service Pack 4 applied). Service Packs are a collection of bug fixes and product enhancements to the basic Windows NT Server release. In general, apply Service Packs as soon as it is safe to do so, since they fix bugs and can improve Windows NT Server performance or functionality.

While the Service Packs are supposed to fix bugs, there have been reports (for example, the initial release of Windows NT Server 4.0 SP2) of bugs within the patch updates themselves. In general, it is safest to wait a few weeks after a Service Pack is released before implementing it. This allows time for other field sites to report any problems with the SP release.

The latest Windows NT Server Service Packs (as a self-extracting archive) may be downloaded from:

http://support.microsoft.com/support/ntserver/content/servicepacks/default.asp

To install a Service Pack:

  1. Download the Service Pack version you want.

  2. Read the README file, which contains important installation instructions.

    Unless there are assurances that the Service Pack works without flaws on Windows NT Server, choose to create an Uninstall directory. This enables the Service Pack to be removed and the original configuration to be restored.

    Service Pack files overwrite similarly-named files from those in the previous Windows NT Server configuration. However, Service Pack files can be overwritten in turn by setup programs that copy files from the original installation media.

    For example, installing a new network protocol or printer driver usually requires the copying of files from the original Windows NT Server installation media. When Service Pack files are comprehensively or selectively overwritten, the Service Pack must be re-applied.

To uninstall a Service Pack (if an Uninstall directory was created):

  1. Launch the UPDATE.EXE (or the self-extracting archive) program.

  2. Follow the appropriate prompts.

Use Hardware or Operating System Striping

Now that hard disk drives are relatively inexpensive, Windows NT Server should use logical volumes comprised of striped physical disks.

Compared to solid state CPU and memory speeds, mechanical hard disk drives are extremely slow. Data striping is an effective means of reducing the impact of relatively slow hard drives by distributing file I/O across a number of hard drives simultaneously.

Striping data across a number of disks is one example of a redundant array of inexpensive disks (RAID). There are several different types of RAID, ranging from high performance to high reliability. The three most common RAID levels in Oracle8i database installations are RAID-0, RAID-1, and RAID-5. Each are described below, along with a fourth RAID level, RAID 0+1:

RAID Level  Description  Read Penalty  Write Penalty 

0

(Disk striping) 

Enables high-performance, non-fault tolerant disk striping. Multiple physical hard disks are aggregated into a logical whole, either by a disk controller or through the operating system (for example, Windows NT Server stripe sets). Data operations against the logical volume are broken down into the "number of physical drives in the array" chunks, making simultaneous use of all disks. Given identical hard disks, if one hard disk has a throughput rate of DISKRATE operations/second, then a RAID 0 logical volume has a rate of:

(DISKRATE * [number of physical drives in array]) operations/second

The downside is that there is no fault tolerance and if one disk in the logical volume fails, the whole volume fails and must be restored from a backup. 

1:1 (1 I/O per read request) 

1:1 (1 I/O per write request) 

1 (Disk mirroring) 

Enables fault tolerant disk mirroring (some chance of a performance penalty). Essentially, every write to a mirrored disk is duplicated on another drive dedicated to this purpose (the mirror drive). If the mirrored disk fails, the mirror drive is brought online in real-time. After the faulted drive is replaced, the mirror configuration can be re-established. 

1:1 (may benefit from split reads on some controllers) (For example, lower seek times when the controller knows which mirror contains the fastest accessed data.)  

2:1 (writing to two sources)  

0+1 

Enables mirroring of an array of striped hard disks. This is a blend of RAID 0 and RAID 1, offering high-performing fault tolerance. 

1:1 (may benefit from split reads on some controllers) (For example, lower seek times when the controller knows which mirror contains the fastest accessed data.)  

2:1 

5 (Distributed Data Guarding (Disk striping with parity) 

Enables distributed data guarding, eliminating the costly need to mirror. In RAID 5, multiple hard disks are aggregated into a striped logical volume, similar to RAID 0, but each drive contains parity information such that any single drive failure is tolerated. With one failed drive, a RAID-5 system may allow continued access to the data, although access times are greatly reduced due to the on-the-fly rebuilding of bytes from the parity information. RAID-5 solutions usually allow hot-swapping of faulty drives with replacements, triggering a rebuild of the failed drive's data onto the replacement from the parity information. 

1:1 

4:1 (2 reads/2 writes during parity calculation) 

Data striping is achieved at the hardware level through the use of a RAID controller or, less efficiently, at the operating system level through Windows NT Server stripe sets. For a performance Windows NT Server configuration, data striping without parity (RAID-0 or equivalent) may be the best choice.

This example demonstrates the creation of a Windows NT Server stripe set. Suppose that there are six SCSI-2 hard disks attached to a common non-RAID disk controller. Each hard drive is not yet partitioned.

To create a Windows NT Server stripe set:

  1. Choose Start > Programs > Administrative Tools (Common) > (Disk Administrator.

    The Disk Administrator dialog box appears.


  2. Click drive 0's free space.

  3. Choose Create Extended from the Partition menu to create an extended partition sized to the hard disk's total capacity.

    Note that the hash marks filling the partitioned drive 0's free space are now in the opposite direction to the marks in the free space of the unpartitioned hard disks:


  4. Repeat steps 2 and 3 for each of the five remaining unpartitioned hard disks.

  5. Click the first (topmost) drive.

  6. Press Ctrl while clicking the remaining five drives so that all six hard disks are selected.

  7. Choose Create Stripe Set from the Partition menu.

  8. Click OK on the Logical Volume Size dialog box. The maximum total size of the stripe set volume will be:

    [number of hard disks] * [capacity of the smallest selected partition]

    The Disk Administrator automatically adjusts the sizes of each drive's stripe if a stripe set size of less than the maximum allowable is chosen.

  9. Choose Commit Changes Now from the Partition menu to save the volume changes.

    The logical stripe set volume across all physical hard disks appears.


  10. Reboot the system to enact the change. After restarting, the new logical stripe set volume is ready to be formatted.

.


Note:

It is not strictly necessary to create an extended partition on each hard disk before creating a stripe set, but it is useful to do so for cases when a drive's stripe does not occupy its entire capacity and additional non-stripe set logical volumes are created on the drive. Extended partitions are necessary, however, when creating more than four logical partitions due to a Windows NT limit of only four primary (non-extended) partitions. 


Multiple Striped Volumes for Sequential and Random Access

If there are enough physical disks in Windows NT Server, at least two striped volumes should be created (in addition to a stand-alone hard disk or striped volume for the OS). One striped volume can be used for sequential data access and the other can be used for random data access.

Oracle8i database redo logs and archived redo logs, for example, are written in sequential order. Because of the reduced head movement, hard disks perform best when reading or writing sequential data.

Oracle8i database data files, however, are usually accessed in random order. Random access in a hard disk results in significant head movement, translating to slower data access.

Unless redo logs are separated from data files (at the physical device level), undo file I/O contention may result, lowering the access times for both types of files.

Span Windows NT Server Virtual Memory Paging File Across Physical Volumes

Even if the Oracle8i database is the only network application running on Windows NT Server, some virtual memory paging is likely to happen as the Windows NT Server memory manager attempts to move an application's seldom-used pages to disk in order to free up more physical memory for hot pages.

Multiplexing the Windows NT Server virtual memory paging file is a good strategy to boost overall system performance. Splitting the paging file onto at least two different physical volumes (or logical volumes as long as the underlying physical volumes do not overlap) provides a significant performance boost to virtual memory swapping operations.

Even though this is a good technique to increase the speed of virtual memory paging, too much paging activity is still a performance hit and should be corrected by adding more RAM to the server.

General Page File Sizing Tip

It is recommended that the total combined size of the page files be at least the same size as the physical amount of RAM on the computer, and configurations where the combined size is two to four times the size of the physical RAM are not uncommon. Although the goal is to minimize paging as much as possible, a situation in which the operating system runs out of or low on paging space is to be avoided at all costs. Adequate paging files spaced across physical disks spread out the I/O most efficiently, since the operating system spreads paging evenly across page files.

Close All Unnecessary Foreground Applications

Once the procedures in the previous sections have been applied, remember to close any unnecessary foreground applications. Three are described below:

Startup Folder

Remove applications from the Startup folders of Windows NT Server console operators. For example, if MS Office Pro 95 is installed on the server, make sure that the FindFast indexing utility is not being loaded. The Office 95 Shortcut Toolbar is also unnecessary (using upwards of 3 MB when launched).


Virtual DOS Machines

Database administrators (DBAs) frequently run SQL scripts from MS-DOS command prompts (also known as virtual DOS machines, or VDMs). While VDMs are relatively lightweight, screen painting VDMs is expensive. When executing long-running scripts from a VDM, minimize the window so that the system can focus on the operation and not on a flood of window repaint messages.

Screen Savers

The most entertaining screen savers quickly saturate the CPU. If a screen saver must be run, choose Blank Screen, which uses the least amount of processing time.

To set a blank screen saver:

  1. Choose Start > Settings > Control Panel > Display.

    The Display Properties dialog box appears.

  2. Click the Screen Saver tab.

The following information appears:


  1. Select Blank Screen from the Screen Saver drop-down list box.

  2. Click OK.

  3. Exit the Control Panel.


Prev Next
Oracle
Copyright © 2000 Oracle Corporation.

All Rights Reserved.

Library

Product

Contents

Index