242 Performance Tuning for Content Manager
The parameter should be increased if either of the following conditions is true:
pool_data_writes is much greater than pool_async_data_writes.
pool_index_writes is much greater than pool_async_index_writes.
8.6.32 Number of I/O servers (NUM_IOSERVERS)
Impact
DB - High
Description
I/O servers are used on behalf of the database agents to perform prefetch I/O
and asynchronous I/O by utilities such as backup and restore. This parameter
specifies the number of I/O servers for a database. A database cannot have
more than this number of I/Os for prefetching and utilities in progress at any time.
An I/O server waits while an I/O operation that it initiated is in progress.
Non-prefetch I/Os are scheduled directly from the database agents and as a
result are not constrained by num_ioservers.
Default values (ranges)
3 (1 - 255)
To update
Run the following DB2 command:
db2 update db cfg for <database name> using NUM_IOSERVERS <parameter
value>
Our recommendation
Customize these values for your environment. To fully exploit all of the I/O
devices in the system, a good value to use is generally one or two more than the
number of physical devices on which the database resides. It is better to
configure additional I/O servers, because there is minimal overhead associated
with each I/O server and any unused I/O servers will remain idle.
8.6.33 Maximum percent of lock list before escalation (MAXLOCKS)
Impact
DB - High
Description
Lock escalation is the process of replacing row locks with table locks, reducing
the number of locks in the list. This parameter defines the maximum percent of
the lock list held by an application that must be filled before the database
Chapter 8. Tuning DB2 for Content Manager 243
manager performs escalation. When the number of locks held by any one
application reaches this percentage of the total lock list size, lock escalation will
occur for the locks held by that application. Lock escalation also occurs if the lock
list runs out of space.
The database manager determines which locks to escalate by looking through
the lock list for the application and finding the table with the most row locks. If
after replacing these with a single table lock, the MAXLOCKS value is no longer
exceeded, lock escalation will stop. If not, it will continue until the percentage of
the held lock list is below the value of MAXLOCKS.
Default values (range)
10 (1 - 100) percent for UNIX platforms
22 (1 - 100) percent for Windows platforms
To update
Run the following DB2 command:
db2 update db cfg for <database name> using MAXLOCKS <parameter value>
Our recommendation
Use the default as is. If you need to increase this value because your application
must use a large number of locks, use the following guidelines.
To allow an application to hold twice the average number of locks, set:
MAXLOCKS = 2 * 100 / MAXAPPLS
2 is used to achieve twice the average and 100 represents the largest
percentage value allowed.
If you have only a few applications that run concurrently, you could use the
following formula as an alternative to the first formula:
MAXLOCKS = 2 * 100 / (average # of applications running
concurrently)
One of the considerations when setting MAXLOCKS is to use it in conjunction
with the size of the lock list (locklist). The actual limit of the number of locks
held by an application before lock escalation occurs is:
MAXLOCKS * LOCKLIST * 4,096 / (100 * 36) on a 32-bit system
MAXLOCKS * LOCKLIST * 4,096 / (100 * 56) on a 64-bit system
Important: The MAXLOCKS parameter multiplied by the MAXAPPLS
parameter cannot be less than 100.

Get Performance Tuning for Content Manager now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.