Recovery Tuning
Download
Report
Transcript Recovery Tuning
Recovery Tuning
Main techniques
Put the log on a dedicated disk
Delay writing updates to the database
disks as long as possible
Setting proper intervals for DB dumping
and checkpointing
Reduce the size of large update
transactions
1
Separate Disk for the Log
Throughput (tuples/sec)
350
Log on same disk
Log on separate disk
300
250
200
150
100
50
0
controller cache
no controller cache
DB2 UDB v7.1 on
Windows 2000
5 % performance
improvement if log is
located on a different
disk
Controller cache hides
negative impact
Figure 2.18 in the textbook shows a
30% improvement
mid-range server, with
Adaptec RAID controller
(80Mb RAM) and 2x18Gb
disk drives.
2
Tuning Database Writes
Database writes caused by transactions tend
to be random
Better to be delayed as much as possible
But eventually they need to be written to the disk
Sufficient info in the log for recovery
To reduce recovery time
When to write?
Forced: when the buffer is full (or nearly full)
Opportunistic: when no extra overhead for disk seeking
Checkpoint: force all committed writes to disk
3
Writing Dirty Pages to the Disk
When the number of dirty pages is greater
than a given parameter (Oracle 8)
When the number of dirty pages crosses a
given threshold (less than 3% of free pages
in the database buffer for SQL Server 7)
When the log is full, a checkpoint is forced.
This can have a significant impact on
performance.
4
Tune Checkpoint Intervals
Throughput Ratio
1.2
1
0.8
0.6
0.4
0.2
0
Oracle 8i on Windows
2000
A checkpoint (partial
flush of dirty pages to
disk) occurs at regular
intervals or when the
log is full:
0 checkpoint
4 checkpoints
+
+
Impacts the performance
of on-line processing
Reduces the size of log
Reduces time to recover
from a crash
5
Group Commit
Log-writing a bottleneck if every committing
transaction needs a write to the log
Group commit
Write the logs of multiple transactions in batch
Need to use a “log buffer” (another thing to tune!)
Better throughput if many concurrent short update
transactions
Longer response time for individual transactions
This is a problem if they hold lock
Early release of locks can cause problems, but the risk is
remote
6
Log IO - Data
Settings:
lineitem ( L_ORDERKEY, L_PARTKEY , L_SUPPKEY,
L_LINENUMBER
, L_QUANTITY, L_EXTENDEDPRICE ,
L_DISCOUNT, L_TAX , L_RETURNFLAG, L_LINESTATUS ,
L_SHIPDATE, L_COMMITDATE,
L_RECEIPTDATE, L_SHIPINSTRUCT ,
L_SHIPMODE , L_COMMENT );
READ COMMITTED isolation level
Empty table
Dual Xeon (550MHz,512Kb), 1Gb RAM, Internal RAID controller
from Adaptec (80Mb), 4x18Gb drives (10000RPM), Windows
2000.
7
Log IO - Transactions
No Concurrent Transactions:
Insertions [300 000 inserts, 10 threads], e.g.,
insert into lineitem values
(1,7760,401,1,17,28351.92,0.04,0.02,'N','O',
'1996-03-13','1996-02-12','1996-0322','DELIVER IN PERSON','TRUCK','blithely
regular ideas caj');
8
Group Commits
Throughput (tuples/sec)
350
300
250
200
150
100
50
DB2 UDB v7.1 on
Windows 2000
Log records of many
transactions are written
together
0
1
25
Size of Group Commit
Increases throughput by
reducing the number of
writes
At cost of increased
minimum response time.
9
Transaction Chopping
Some transactions, in particular batch
transactions, can be very long
A lot of log information
Very costly for recovery
Solution
Transaction chopping
An easy to understand concept
Formal work in appendix B of the textbook
10
Summary
In this module, we have covered:
The principles of recovery
How to optimise recovery-related options
Put the log on a dedicated disk
Delay writing updates
Using checkpoint and dump properly
Reduce the size of update transactions
11
CS5226 Week 6
Operating System &
Database Performance Tuning
Outline
Part 1: Operating systems and DBMS
Part 2: OS-related tuning
13
Operating System
• Operating system is an
interface between hardware
and other software,
supporting:
• Processes and threads;
hardware
• Paging, buffering and IO
scheduling
• Multi-tasking
• File system
• Other utilities such as timing,
networking and performing
monitoring
14
Scheduling
Process versus thread
Scheduling based on time-slicing, IO, priority etc
The cost of content switching
Different from transaction scheduling
When switch is desirable? And when is not?
The administrator can set priorities to
processes/threads
Case 1: The DBMS runs at a lower priority
Case 2: Different transactions run at different priority
Case 3: Online transactions with higher priority than offline
transactions
15
Priority Inversion
Let priorities T1 > T2s > T3
Request X
T1
T2s
T3
Lock x
… a solution: priority inheritance
16
Database Buffers
•An application can have its own inmemory buffers (e.g., variables in the
program; cursors);
•A logical read/write will be issued to
the DBMS if the data needs to be
read/written to the DBMS;
Application buffers
DBMS buffers
•A physical read/write is issued by the
DBMS using its systematic page
replacement algorithm. And such a
request is passed to the OS.
•OS may initiate IO operations to
support the virtual memory the DBMS
buffer is built on.
OS buffers
17
Database Buffer Size
DATABASE PROCESSES
Buffer too small, then hit
ratio too small
hit ratio =
(logical acc. - physical acc.) /
(logical acc.)
DATABASE
BUFFER
RAM
Paging
Disk
LOG
DATA
DATA
Buffer too large, paging
Recommended strategy:
monitor hit ratio and
increase buffer size until
hit ratio flattens out. If
there is still paging, then
buy memory.
18
Buffer Size - Data
Settings:
employees(ssnum, name, lat, long, hundreds1,
hundreds2);
clustered index c on employees(lat); (unused)
10 distinct values of lat and long, 100 distinct values of
hundreds1 and hundreds2
20000000 rows (630 Mb);
Warm Buffer
Dual Xeon (550MHz,512Kb), 1Gb RAM, Internal RAID
controller from Adaptec (80Mb), 4x18Gb drives (10000
RPM), Windows 2000.
19
Buffer Size - Queries
Queries:
Scan Query
select sum(long) from employees;
Multipoint query
select * from employees where lat = ?;
20
Database Buffer Size
Scan Query
Throughput
(Queries/sec)
0.1
0.08
0.06
0.04
0.02
SQL Server 7 on
Windows 2000
Scan query:
0
0
200
400
600
800
1000
Buffer Size (Mb)
Multipoint Query
Throughput
(Queries/sec)
160
120
Multipoint query:
80
40
LRU (least recently used)
does badly when table spills
to disk as Stonebraker
observed 20 years ago.
Throughput increases with
buffer size until all data is
accessed from RAM.
0
0
200
400
600
800
1000
Buffer Size (Mb)
21
Multiprogramming Levels
More concurrent users
Better utilization of CPU cycles (and other system
resources)
Risk of excessive page swapping
More lock conflicts
So how many exactly
Depends on transaction profiles
Experiments to find the best value
And this parameter may change when application
patterns change
Feedback control mechanism
22
Disk Layout and Access
Larger disk allocation chunks improves
write performance
Setting disk usage factor
At the cost of disk utilisation
Low when expecting updates/inserts
Higher for scan-type of queries
Prefetching within DBMS; not OS
For non-random accesses
23
Scan Performance - Data
Settings:
lineitem ( L_ORDERKEY, L_PARTKEY , L_SUPPKEY,
L_LINENUMBER
, L_QUANTITY, L_EXTENDEDPRICE ,
L_DISCOUNT, L_TAX , L_RETURNFLAG, L_LINESTATUS ,
L_SHIPDATE, L_COMMITDATE,
L_RECEIPTDATE, L_SHIPINSTRUCT ,
L_SHIPMODE , L_COMMENT );
600 000 rows
Lineitem tuples are ~ 160 bytes long
Cold Buffer
Dual Xeon (550MHz,512Kb), 1Gb RAM, Internal RAID
controller from Adaptec (80Mb), 4x18Gb drives (10000RPM),
Windows 2000.
24
Scan Performance - Queries
Queries:
select avg(l_discount) from lineitem;
25
Usage Factor
Throughput (Trans/sec)
0.2
0.15
0.1
scan
0.05
0
70
80
90
Usage Factor (%)
100
DB2 UDB v7.1 on
Windows 2000
Usage factor is the
percentage of the page
used by tuples and
auxiliary data structures
(the rest is reserved for
future)
Scan throughput
increases with usage
factor.
26
Prefetching
Throughput (Trans/sec)
0.2
DB2 UDB v7.1 on
Windows 2000
0.15
0.1
scan
0.05
0
32Kb
64Kb
128Kb
Prefetching
256Kb
Throughput
increases up to a
certain point when
prefetching size
increases.
27
Summary
In this module, we have covered:
A review of OS from the DBMS perspective
How to optimise OS-related parameters
and options
Thread
Buffer, and
File system
28