0% found this document useful (0 votes)
55 views36 pages

Cs 5226 Week 8

The document discusses tuning the hardware configuration to improve database performance. It covers tuning the storage subsystem by using RAID and choosing an appropriate RAID level. RAID 5 is generally best for read-intensive applications while RAID 10 performs better for write-intensive workloads. It also discusses enhancing hardware by adding memory, disks, and processors. Adding memory can enlarge the buffer pool for better cache hit rates. Adding disks can improve performance but only up to the disk bandwidth limit. Using multiple processors allows parallelizing query operations to improve throughput.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
55 views36 pages

Cs 5226 Week 8

The document discusses tuning the hardware configuration to improve database performance. It covers tuning the storage subsystem by using RAID and choosing an appropriate RAID level. RAID 5 is generally best for read-intensive applications while RAID 10 performs better for write-intensive workloads. It also discusses enhancing hardware by adding memory, disks, and processors. Adding memory can enlarge the buffer pool for better cache hit rates. Adding disks can improve performance but only up to the disk bandwidth limit. Using multiple processors allows parallelizing query operations to improve throughput.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 36

CS5226

Hardware Tuning

Application Programmer
(e.g., business analyst, Data architect)

Application
Sophisticated Application Programmer
(e.g., SAP admin)

Query Processor Indexes Storage Subsystem

Concurrency Control
DBA, Tuner

Recovery

Operating System Hardware [Processor(s), Disk(s), Memory]


2

Outline

Part 1: Tuning the storage subsystem


RAID storage system Choosing a proper RAID level

Part 2: Enhancing the hardware configuration


3

Magnetic Disks
tracks spindle

1956: IBM (RAMAC) first


disk drive 5 Mb 0.002 Mb/in2 35000$/year 9 Kb/sec

platter

read/write head

1980: SEAGATE
first 5.25 disk drive 5 Mb 1.96 Mb/in2 625 Kb/sec 1999: IBM MICRODRIVE first 1 disk drive 340Mb 6.1 MB/sec
4

actuator

disk arm

Controller

disk interface

Magnetic Disks

Access Time (2001)

Controller overhead (0.2 ms) Seek Time (4 to 9 ms) Rotational Delay (2 to 6 ms) Read/Write Time (10 to 500 KB/ms)

Disk Interface

IDE (16 bits, Ultra DMA 25 MHz) SCSI: width (narrow 8 bits vs. wide 16 bits) frequency (Ultra3 - 80 MHz).

Storage Metrics
DRAM
Unit Capacity

Disk 18GB 467$ 26 2.E-3


(15k RPM)

Tape Robot 14x70Gb 20900$ 21 3.E+1


40
(up to 100)

Unit Price $/Gb Latency (sec) Bandwidth


(Mbps)

2GB 1600$ 800 1.E-8


1000 1.E+6 1.E+3 2

40

(up to 160)

Kaps Maps Scan time


(sec/Tb)

470 23 450

3.E-2 3.E-2 24500

Hardware Bandwidth
System Bandwidth Yesterday
in megabytes per second (not to scale!)

The familiar bandwidth pyramid: 133

40 15 per disk

422

The farther from the CPU, the less the bandwidth.

Slide courtesy of J. Gray/L.Chung

Hard Disk | SCSI | PCI | Memory | Processor


7

Hardware Bandwidth
System Bandwidth Today
in megabytes per second (not to scale!)

26
26 26 160 133 1,600

The familiar pyramid is gone! PCI is now the bottleneck!

Slide courtesy of J. Gray/L.Chung

In practice, 3 disks can reach saturation using sequential IO Hard Disk | SCSI | PCI | Memory | Processor
8

RAID Storage System

Redundant Array of Inexpensive Disks

Combine multiple small, inexpensive disk drives into a group to yield performance exceeding that of one large, more expensive drive Appear to the computer as a single virtual drive Support fault-tolerance by redundantly storing information in various ways
9

RAID 0 - Striping

No redundancy

No fault tolerance Parallel I/O

High I/O performance

11

RAID 1 Mirroring

Provide good fault tolerance

Works ok if one disk in a pair is down

One write = a physical write on each disk One read = either read both or read the less busy one

Could double the read rate

12

RAID 3 - Parallel Array with Parity

Fast read/write All disk arms are synchronized Speed is limited by the slowest disk

13

Parity Check - Classical


An extra bit added to a byte to detect errors in storage or transmission Even (odd) parity means that the parity bit is set so that there are an even (odd) number of one bits in the word, including the parity bit A single parity bit can only detect single bit errors since if an even number of bits are wrong then the parity bit will not change It is not possible to tell which bit is wrong
14

RAID 5 Parity Checking

For error detection, rather than full redundancy Each stripe unit has an extra parity stripe

Parity stripes are distributed

15

RAID 5 Read/Write

Read: parallel stripes read from multiple disks

Good performance Read old data stripe; read parity stripe (2 reads) XOR old data stripe with new data stripe. XOR result into parity stripe. Write new data stripe and new parity stripe (2 writes).

Write: 2 reads + 2 writes

16

RAID 10 Striped Mirroring

RAID 10 = Striping + mirroring

High performance of RAID 0, and high tolerance of RAID 1 (at the cots of doubling disks)

A striped array of RAID 1 arrays

.. More information about RAID disks at http://www.acnc.com/04_01_05.html


17

Hardware vs. Software RAID

Software RAID

Software RAID: run on the servers CPU Directly dependent on server CPU performance and load Occupies host system memory and CPU operation, degrading server performance
Hardware RAID: run on the RAID controllers CPU Does not occupy any host system memory. Is not operating system dependent Host CPU can execute applications while the array adapter's processor simultaneously executes array functions: true hardware multi-tasking
18

Hardware RAID

RAID Levels - Data


Settings:
accounts( number, branchnum, balance); create clustered index c on accounts(number);

100000 rows Cold Buffer Dual Xeon (550MHz,512Kb), 1Gb RAM, Internal RAID controller from Adaptec (80Mb), 4x18Gb drives (10000RPM), Windows 2000.

19

RAID Levels - Transactions


No Concurrent Transactions: Read Intensive:
select avg(balance) from accounts;

Write Intensive, e.g. typical insert:

insert into accounts values (690466,6840,2272.76); Writes are uniformly distributed.

20

RAID Levels
Read-Intensive
Throughput (tuples/sec)

80000 60000 40000 20000 0 SoftRAID5 RAID5 RAID0 RAID10 RAID1 Single Disk

SQL Server7 on Windows 2000 (SoftRAID means striping/parity at host) Read-Intensive:

Write-Intensive
Throughput (tuples/sec)

160 120 80 40 0 SoftRAID5 RAID5 RAID0 RAID10 RAID1 Single Disk

Using multiple disks (RAID0, RAID 10, RAID5) increases throughput significantly.
Without cache, RAID 5 suffers. With cache, it is ok.
21

Write-Intensive:

Comparing RAID Levels


RAID 0
Read Write Fault tolerance Disk utilization Key problems Key advantages High High No High Data lost when any disk fails High I/O performance

RAID 1
2X 1X Yes Low Use double the disk space Very high I/O performance

RAID 5
High Medium Yes High Lower throughput with disk failure A good overall balance

RAID 10
High High Yes Low Very expensive, not scalable High reliability with good performance

22

Controller Pre-fetching No, Write-back Yes

Read-ahead:

Write-back vs. write through:

Prefetching at the disk controller level. No information on access pattern. Better to let database management system do it. Write back: transfer terminated as soon as data is written to cache.

Batteries to guarantee write back in case of power failure

Write through: transfer terminated as soon as data is written to disk.


23

SCSI Controller Cache - Data


Settings:
employees(ssnum, name, lat, long, hundreds1, hundreds2); create clustered index c on employees(hundreds2); Employees table partitioned over two disks; Log on a separate disk; same controller (same channel). 200 000 rows per table Database buffer size limited to 400 Mb. Dual Xeon (550MHz,512Kb), 1Gb RAM, Internal RAID controller from Adaptec (80Mb), 4x18Gb drives (10000RPM), Windows 2000.
24

SCSI (not disk) Controller Cache - Transactions


No Concurrent Transactions:
update employees set lat = long, long = lat where hundreds2 = ?;

cache friendly: update of 20,000 rows (~90Mb) cache unfriendly: update of 200,000 rows (~900Mb)

25

SCSI Controller Cache

2 Disks - Cache Size 80Mb


2000
Throughput (tuples/sec)

SQL Server 7 on Windows 2000. Adaptec ServerRaid controller:


1500

no cache cache

80 Mb RAM Write-back mode

1000


cache friendly (90Mb) cache unfriendly (900Mb)

500

Updates Controller cache increases throughput whether operation is cache friendly or not.

Efficient replacement policy!


26

Which RAID Level to Use?

Data and Index Files

Log File

RAID 5 is best suited for read intensive apps or if the RAID controller cache is effective enough. RAID 10 is best suited for write intensive apps. RAID 1 is appropriate

Temporary Files

Fault tolerance with high write throughput. Writes are synchronous and sequential. No benefits in striping.

RAID 0 is appropriate.

No fault tolerance. High throughput.


27

What RAID Provides

Fault tolerance

It does not prevent disk drive failures It enables real-time data recovery

High I/O performance Mass data capacity Configuration flexibility Lower protected storage costs Easy maintenance
28

Enhancing Hardware Config.

Add memory

Cheapest option to get better performance Can be used to enlarge DB buffer pool

Better hit ratio If used for enlarge OS buffer (as disk cache), it benefits but to other apps as well

Add disks Add processors


29

Add Disks

Larger disk better performance

Add disks for


Bottleneck is disk bandwidth

Consider intelligent disk systems

A dedicated disk for the log Switch RAID5 to RAID10 for update-intensive apps Move secondary indexes to another disk for writeintensive apps Partition read-intensive tables across many disks Automatic replication and load balancing
30

Add Processors

Function parallelism

Use different processors for different tasks

GUI, Query Optimisation, TT&CC, different types of apps, different users Operation pipelines:

E.g., scan, sort, select, join

Easy for RO apps, hard for update apps

Data partition parallelism

Partition data, thus the operation on the data


31

Parallelism

Some tasks are easier to parallelize


E.g., join phase of GRACE hash join E.g., scan, join, sum, min

Some tasks are not so easy

E.g., sorting, avg, nested-queries

32

Summary

We have covered:

The storage subsystem

RAID: what are they and which one to use? When to add what?

Memory, disks and processors

33

Database Tuning
Database Tuning is the activity of making a database application run more quickly. More quickly usually means higher throughput, though it may mean lower response time for time-critical applications.

34

Tuning Principles

Think globally, fix locally Partitioning breaks bottlenecks (temporal and spatial) Start-up costs are high; running costs are low Render onto server what is due onto Server Be prepared for trade-offs (indexes and inserts)
35

Set reasonable performance tuning goals Measure and document current performance Identify current system performance bottleneck Identify current OS bottleneck Tune the required components eg: application, DB, I/O, contention, OS etc Track and exercise change-control procedures Measure and document current performance Repeat step 3 through 7 until the goal is met
36

Tuning Mindset

Goals Met?

Appreciation of DBMS architecture Study the effect of various components on the performance of the systems Tuning principle Troubleshooting techniques for chasing down performance problems Hands-on experience in Tuning
37

You might also like