From: Troels Arvin on
Setup:

- Server with data residing on an XIV storage system. The XIV storage
system spreads data over all available disks with no knobs to control
priorities, cache-pools, etc. (This is by design.)

- DB2 v. 9.7.1 installed; one instance. A strategy of using automatic
storage, in order to cut down on complexity. The instance has been
set up with DFTDBPATH pointing to a mountpoint on the XIV; let's
call this /db2/data

When I created a new database, I didn't specify any paths.
For this database, I'm seeing great performance for some database
operations, but others are somewhat slow for no obvious reason.

I talked to two different DB2 consultants, and they independently and
spontaneously suggested that we create databases specifying a handful of
paths, even paths which hit the exact same storage device. The reasoning
seems to be that we need to trick DB2 to be more I/O aggressive this way.
Some initial (and rather superficial) experimentation seems to confirm
the need to use such an absurd practice.

Can this really be true? Can the same effect not be obtained using a less
illogical approach?

--
Troels
From: Mark A on
"Troels Arvin" <troels(a)arvin.dk> wrote in message
news:hml8r6$o05$1(a)news.net.uni-c.dk...
> Setup:
>
> - Server with data residing on an XIV storage system. The XIV storage
> system spreads data over all available disks with no knobs to control
> priorities, cache-pools, etc. (This is by design.)
>
> - DB2 v. 9.7.1 installed; one instance. A strategy of using automatic
> storage, in order to cut down on complexity. The instance has been
> set up with DFTDBPATH pointing to a mountpoint on the XIV; let's
> call this /db2/data
>
> When I created a new database, I didn't specify any paths.
> For this database, I'm seeing great performance for some database
> operations, but others are somewhat slow for no obvious reason.
>
> I talked to two different DB2 consultants, and they independently and
> spontaneously suggested that we create databases specifying a handful of
> paths, even paths which hit the exact same storage device. The reasoning
> seems to be that we need to trick DB2 to be more I/O aggressive this way.
> Some initial (and rather superficial) experimentation seems to confirm
> the need to use such an absurd practice.
>
> Can this really be true? Can the same effect not be obtained using a less
> illogical approach?
>
> --
> Troels

Yes it is true if you are using an sophisticated SAN or NAS solution with
fiber channel adapter cards that can handle multiple accesses at one time
without maxing out the I/O bandwidth. You are not tricking DB2, you are
trying to get parallel I/O operations with multiple paths and you are
telling DB2 exactly how many parallel paths to use since your control the
number of mount points and number of containers. But you should also set the
following variable:
db2set DB2_PARALLEL_IO=*

I don't recall if this has to be set before the tablespace is created or can
be set afterward. The asterisk means it applies to all tablespace ids, or
you can specify those where it does apply if not using RAID on some mount
points.


From: Troels Arvin on
Mark A wrote:
> But you should also set the following variable:
> db2set DB2_PARALLEL_IO=*

Yes, that was one of my first post-installation steps, even before
creating a database. And NUM_IOCLEANERS was raised. But it seems that
there was still a gain by adding a number of "cheating"-containers (as I
see them).

--
Troels
From: Ian on
On 3/3/10 5:41 AM, Troels Arvin wrote:
> Mark A wrote:
>> But you should also set the following variable:
>> db2set DB2_PARALLEL_IO=*
>
> Yes, that was one of my first post-installation steps, even before
> creating a database. And NUM_IOCLEANERS was raised. But it seems that
> there was still a gain by adding a number of "cheating"-containers (as I
> see them).
>

What is your EXTENTSIZE set to on the tablespaces, and how does this
compare to how XIV stripes data across its storage?


 | 
Pages: 1
Prev: When are projections done?
Next: db2lused process