The following is the first tip in a series on the different aspects of disk I/O performance and optimization for Oracle databases. Each tip is excerpted from the not-yet-released Rampant TechPress book, "Oracle disk I/O tuning," by Mike Ault. Check back to the main series page for upcoming installments.
Disks are laid out using circular tracks to store data. Unlike the grove on a record (there is only one, it is a huge spiral from start to finish) the tracks on a disk are true circles, each independent of the other for the most part. On multi-platter disk drives (multiple platters on the same spindle with multiple arms and head sets) the tracks are grouped into cylinders with the tracks that line up on each of the platters grouped together. The data in each track is further broken down into sectors where each sector contains the same number of bytes. The tracks on a disk get longer as you move out from the center, therefore the number of sectors increases per track. Tracks are grouped into zones where each zone of tracks contains the same number of sectors. This disk layout is shown in figure 1-4.
Figure 1-4: Disk Layout
Disk logic boards
In the beginning, disk logic boards provided the means to position the heads to specific addresses for read and write activity. As the technology matured, logic boards added capabilities and now the logic boards also optimize reads and writes to minimize the head motions required. The logic boards also monitor head speeds, temperatures and other physical characteristics to better enable the placement of heads as components expand and shrink due to temperature and other ambient conditions.
Cache and disks
Even with the recent speed improvements in disk technology the disk drives are still the slowest component (other than tape drives) in the computer system. Let's look at the basic math. A 1-GHz CPU (central processing unit) (slow by today's standards) equates to 1 billion operations per second. At best, memory operates approximately at 20 million-plus memory operations per second. What about the hard disk? Even fast disks have average access times of greater than five milliseconds per unit of information off the disk; that equals a maximum, given the absolutely optimal conditions of 200 operations a second. Usually you are doing well to get close to 100 operations a second with less being the norm. This means CPUs at 1 billion operations a second, memory at 20 million operations per second, and disks at 200 operations a second. Obviously the disk can be a severe performance bottleneck in a computer.
Even high-speed server drives have a seek time greater than four milliseconds, which means it can only perform around 250 operations per second under ideal conditions. While this speed is better than what used to be available, it is still too slow when processors are running at over 2 GHz. One way to speed up operations is to store the most recently accessed data in a special memory area known as cache. Most modern drives now come with several megabytes of cache per drive. Generally speaking you want data cached as close to the disk drive as possible.
Cache algorithms utilize optimistic read-ahead logic and write logic that optimizes for most general types of computer operations (read into this statement, file serving) however, unless properly set up and tuned cache operations can cause significant issues for databases.
Click to buy the book, "Oracle disk I/O tuning," by Mike Ault.
About the author
Mike Ault is a SearchOracle.com expert and a senior Oracle consultant with Burleson Consulting, and one of the leading names in Oracle technology. The author of more than 20 Oracle books and hundreds of articles in national publications, Mike Ault has five Oracle Masters Certificates and was the first popular Oracle author with his landmark book "Oracle7 administration and management." Mike also wrote several of the "Exam Cram" books, and enjoys a reputation as a leading author and Oracle consultant. Ask Mike a question today!