Home | Previous Page | Next Page   Monitoring Database Server Performance > Monitoring Table and Fragment Use >

Monitoring Dbspaces and Chunks

Monitor chunks and dbspaces to determine how full and how active each entity is. The read and write statistics for chunks and dbspaces can help determine whether data use is evenly distributed across table fragments. Use the following command-line options to monitor chunks and dbspaces.

onstat -g Option
Description
xctl onstat -D
Displays the address of the chunk, its number and associated dbspace number, offset, size in pages, number of reads and writes, and the path name of the physical device. For detailed information, seeMonitoring Page Reads and Writes to Chunks and Dbspaces.
xctl onstat -d
Displays the same information as xctl onstat -D but replaces page read and write information with free page information.
xctl onstat -g iof
Displays the number of reads from and writes to each dbspace. For detailed information, see Monitoring Reads and Writes to Dbspaces.
xctl onstat -g ppf
Displays the number of read and write calls for each fragment. For detailed information, see Monitoring Tblspaces.

If you suspect that one or two specific coservers are creating performance problems, you can monitor chunks and read and write calls for each fragment on one coserver at a time.

Query the sysfragments system catalog table for the names of tables that reside in a chunk, as described in Examining Information in the sysfragments System Catalog Table.

Tip:
The xctl -c n prefix to the onstat command-line options displays onstat information for the coserver that is numbered n. You can also run onstat commands without xctl from a specific coserver node to obtain statistics for only that coserver.

Monitoring Page Reads and Writes to Chunks and Dbspaces

The xctl onstat -D command displays the following information for each chunk in a dbspace:

Figure 7 shows sample output from the xctl onstat -D option.

Figure 7. xctl onstat -D Output
...

Dbspaces
address  number   flags    fchunk   nchunks  flags    owner    name
a10d5a0  1        1        1        1        N        informix rootdbs1
a10d628  3        1        3        1        N        informix customer_dbsl.1
a10d6b0  5        1        5        1        N        informix period_dbsl.1
a10d738  7        1        7        1        N        informix product_dbsl.1
4 active, 32768 maxiumum (if CONFIGSIZE is LARGE)

Chunks
address  chk/dbs offset   page Rd  page Wr  pathname
a108c30  1   1   0        74       12       /dev/rdsk/c0t1d0s6
a108d60  3   3   0        53       0        /dev/custdbsl.1
a108e90  5   5   50000    3        0        /dev/perdbsl.1
a108fc0  7   7   55000    481      0        /dev/proddbsl.1
4 active, 32768 maxiumum (if CONFIGSIZE is LARGE)

To determine the name of the dbspace to which a chunk belongs, match the number in the dbs field of the Chunks section with the number in the number field of the Dbspaces section. For example, the page Rd field in this output shows that chunk 7, which is the only chunk in dbspace 7, has a disproportionately higher number of page reads (481) compared to the other dbspaces.

For information about free pages in chunks, execute xctl onstat -d.

Tip:
You can also use the onutil CHECK SPACE command with the DISPLAY option to monitor chunks and extents. The onutil CHECK SPACE command provides information about chunk size, number of free pages, and tables stored in the chunk.

Monitoring Reads and Writes to Dbspaces

The xctl onstat -g iof option displays the number of reads from and writes to each dbspace or file. This option is similar to the -D option, except that it also displays information on nonchunk files. It includes information about temporary files and sort-work files.

Use this option to monitor the distribution of I/O requests for the different fragments of a table. If one chunk has a disproportionate amount of I/O activity, it might be a system bottleneck.

The sample output in Figure 8 shows that the disk reads and disk writes are not balanced across the different dbspaces.

Figure 8. xctl onstat -g iof Output
...

AIO global files:
gfd pathname totalops dskread dskwrite  io/s
  3 rootdbs1  86 74 12 0.2
  4 /dev/custdbsl.1  53 53 0  0.1
  5 /dev/perdbsl.1  3 3 0  0.0
  6 /dev/proddbsl.1  481 481 0  0.9
  7 /dev/dbsl.1  89 89  0  0.2

...

AIO global files:
gfd pathname totalops dskread dskwrite  io/s
  3 rootdbs2  73 62 11 1.0
  4 /dev/custdbsl.2  30 30 0 0.1
  5 /dev/perdbsl.2  3 3 0  0.0
  6 /dev/proddbsl.2  483 483 0  0.9
  7 /dev/dbsl.2  89 89  0  0.2

Figure 8 shows the following that the chunks whose path name is /dev/proddbsl.1 on the first coserver and /dev/proddbsl.2 on the second coserver have a disproportionately high number of disk reads compared to the other chunks.

Home | [ Top of Page | Previous Page | Next Page | Contents | Index ]