Information Library for Solaris 2.6 (SPARC Platform Edition)

Database Performance

Significant efforts were made to improve performance of the system for database engines. Work focused on two areas: virtual memory (VM) improvements and I/O throughput improvements.

VM changes focused on reducing overhead by using larger pages for the shared memory area used by database engines to share and store data. Instead of using the default system page size for pages in this area, a large page size of 4 Mbytes is used. This reduces the amount of internal work the system has to do when managing the descriptions attached to each process for pages the process is using. When coupled with existing mechanisms for sharing these descriptions, a performance increase of about 12% was achieved on various industry standard tests.

I/O throughput jumped as the result of low-level changes that minimized the overhead associated with processing large lists of pages for I/O. These modifications reduced the overhead associated with converting the virtual address used by the system to the physical address needed by the device drivers to execute I/O requests. With these improvements, the cost of doing I/O to physical devices dropped dramatically.

Throughput improvements have been demonstrated in a recent Informix TPC-C benchmark which

This produced the highest Informix TPC-C number ever produced and reflects the best price/performance in the mid-range class.

TPC-C is a benchmark conducted under the auspices of the Transaction Performance Processing Council (TPC). It simulates a warehouse distribution system. Data is contained in nine tables and five transactions are executed against this data in prespecified mixes. The figure of merit is tpmC, which is shorthand for transactions per minute" in the TPC-C benchmark.

UFS Direct I/O

Many customers are interested in placing data directly on disk without buffering it in memory. The Solaris 2.6 release provides direct I/O to do this. Bulk I/O operations use large buffer sizes to transfer large files (files larger than physical memory). An example of a bulk I/O operation is downloading large amounts of satellite data to a file.

Direct I/O data is read or written into a process's address space without incurring the overhead of the operating system's page caching mechanism.

See the directio(3C)man page for more information.

Raw I/O

Improvements were made to low-level I/O support routines that dramatically improved throughput for I/O to disk devices without a file system (raw devices). (Raw devices are often used for database files.) The driver for the SPARCstorage Array was rewritten to improve its throughput.