Skip to main content

Optimizing server performance: Port encryption & Buffer Pool settings (Test Case #3 Results sidebar)

[Back to "Optimizing server performance: Port encryption & Buffer Pool settings"]

Test Case #3 Results (sidebar)

These are the results we found when testing whether different system parameters affect the time required for rebuilding views. This first table shows the overall results:

Database Size (number of records)At StartAt End% Growth (after rebuilding)
8,0007,127,04024,788,992248%
16,00011,878,40047,611,904301%
32,00021,381,12093,028,352335%
64,00040,517,632184,811,520356%
128,00078,675,968369,360,896369%
256,000155,009,024746,700,800382%

In the next few tables, we used varying base database sizes, by varying the number of records the database stored. The tables show the resulting time it took to rebuild the view, the NSF_BUFFER_POOL_SIZE (at peak), and the total amount of memory allocated to perform the operation for the task. We performed this test with the following specifications:

  • One CPU, 64MB, no NSF_BUFFER_POOL_SIZE set, and one database
  • One CPU, 64MB, no NSF_BUFFER_POOL_SIZE set, and two databases running at the same time
  • One CPU, 64MB, the NSF_BUFFER_POOL_SIZE set at a quarter of available memory, and one database
  • One CPU, 64MB, the NSF_BUFFER_POOL_SIZE set at a quarter of available memory, and two databases running at the same time
  • One CPU, 64MB, the NSF_BUFFER_POOL_SIZE set at half of available memory, and one database
  • One CPU, 128MB, no NSF_BUFFER_POOL_SIZE set, and two databases running at the same time
  • Two CPUs, 64MB, no NSF_BUFFER_POOL_SIZE set, and two databases running at the same time

The following table shows the effect of rebuilding views for one database (one Update task), with one CPU 64MB, and no NSF_BUFFER_POOL_SIZE specification.

Database Size (number of records)Time to rebuild view (sec)BufferPool.Peak (K)Memory Allocated (MB)
8,0001297,14213
16,0002698,35214
32,0005808,35214
64,00012048,35214
128,00025408,35214
256,00055718,35213

The following table shows the affect of rebuilding views for two same sized databases (two Update tasks), with one CPU 64MB, and no NSF_BUFFER_POOL_SIZE specification. Notice that the time it takes to rebuild the views for two databases with the same size was about double the time it took for one database. For example, you can compare the results where we didn't specify a buffer pool size (this is the default), with a 32,000 record (single) database, and with the rebuilding results of two 16,000 record databases (a total of 32,000). In this case, the time it took to complete the rebuild was almost the same, and the memory allocation was greater when we rebuilt two smaller databases at the same time.

Database Size (number of records)Time to rebuild view (sec)BufferPool.Peak (K)Memory Allocated (MB)
8,0002709,79216
16,00051612,03313
32,000107312,03317
64,000219412,03317
128,000481912,03317

The following table shows the effect of rebuilding views for one database (one Update task), with one CPU 64MB, and the NSF_BUFFER_POOL_SIZE specification set to a quarter of available memory.

Database Size (number of records)Time to rebuild view (sec)BufferPool.Peak (K)Memory Allocated (MB)
8,0001287,54613
16,00028513,42019
32,00060816,93422
64,000219416,93423
128,000246616,93422

The following table shows the effect of rebuilding views for two same-sized databases (two Update tasks), with one CPU 64MB, and the NSF_BUFFER_POOL_SIZE specification set to a quarter of available memory. The time it took to rebuild the views for two databases with the same size, was about double the time it took for one database.

Database Size (number of records)Time to rebuild view (sec)BufferPool.Peak (K)Memory Allocated (MB)
8,0002629,79216
16,00051312,03818
32,000106912,03817
64,000217112,03817
128,000493312,03817

The following table shows the effect of rebuilding views for one database (one Update task), with one CPU 64MB, and the NSF_BUFFER_POOL_SIZE specification set to half of available memory. The time it takes to rebuild the view was consistent with the other rebuild times. Since we specified the buffer pool size, the overall memory allocation was higher.

Database Size (number of records)Time to rebuild view (sec)BufferPool.Peak (K)Memory Allocated (MB)
8,0001448,64015
16,00028414,45721
32,00062526,03533
64,000146533,75340
128,000278633,75339
256,000644433,75339

The following table shows the effect of rebuilding views for one database (one Update task), with one CPU 128MB, and no NSF_BUFFER_POOL_SIZE specification. Notice that except for the smallest sized database, there was a decrease in performance with the extra memory. As there was extra memory, the buffer pool handling logic started with a large base pool size, and incremented in larger pieces.

Database Size (number of records)Time to rebuild view (sec)BufferPool.Peak (K)Memory Allocated (MB)
8,0001869,48814
16,00025913,65120
32,00054622,57928
64,000109622,57928
128,000227822,57928
256,000532022,57928

The following table shows the effect of rebuilding views for two databases (two Update tasks), with two CPUs 64MB, and no NSF_BUFFER_POOL_SIZE specification.

Database Size (number of records)Time to rebuild view (sec)BufferPool.Peak (K)Memory Allocated (MB)
8,00014312,84419
16,00029412,84419
32,00062112,84419
64,000135712,84418
128,000302812,84418
256,000768312,84418

It is important to know the rate, and at what point the system allocates the buffer pool, when reviewing some of the performance numbers. Where there are changes in direction for some of the performance curves, this may be due to an increase in the NSF_BUFFER_POOL_SIZE specification, which would take a load off the processor and allow it to process additional information within the allocated space.