A Practical Hardware Sizing Guide for Sybase IQ
A Practical Hardware Sizing Guide for Sybase IQ
A Practical Hardware Sizing Guide for Sybase IQ
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
memory sizes has been covered in detail. Should that take too much time or not be feasible, the<br />
alternative is to make an educated guess and adjust according to usage monitoring.<br />
A rule of thumb <strong>for</strong> this educated guess is to allocate no more than two-thirds of the total RAM to<br />
the <strong>IQ</strong> main and temporary caches. On a system with 64 GB RAM, this would mean that the<br />
combined total of the main (-iqmc) and temporary (-iqtc) caches would consume no more than<br />
48 GB RAM.<br />
This will allow <strong>IQ</strong> to use a considerable amount of RAM <strong>for</strong> its operations without overburdening<br />
the system. Since the <strong>IQ</strong> caches tend to consume 80% or more of all <strong>IQ</strong> memory, over sizing<br />
these caches can cause severe per<strong>for</strong>mance issues should the OS need to swap out the memory<br />
to disk.<br />
Swap Space Allocation<br />
It is generally recommended that the system swap space be set to twice the amount of RAM on<br />
the machine. However, systems with a large amount of RAM (64 GB or more) should be able to<br />
allocate 1x physical RAM <strong>for</strong> swap space. This should provide enough of a buffer, should<br />
swapping begin, to allow administrators to detect and address the problem. As was pointed out<br />
in the previous sections, <strong>IQ</strong> can allocate a considerable amount of RAM outside of the main and<br />
temp caches (load memory, bitmap memory, and backup memory). In order to prevent a<br />
situation where all virtual memory has been exhausted on the system, swap space should be set<br />
to roughly twice the amount of RAM. This gives the system enough space to compensate <strong>for</strong><br />
un<strong>for</strong>eseen situations where the heap memory must grow beyond the physical RAM. Certainly,<br />
this will come at the cost of per<strong>for</strong>mance, but the operations won‟t fail <strong>for</strong> lack of memory<br />
(physical or virtual).<br />
Example<br />
For example, consider two different systems: one with 16 GB RAM and another with 32 GB RAM.<br />
For the sake of this exercise, it is assumed that there will be five concurrent load processes and<br />
that load memory has been set to 200 MB. It is also assumed that the loads won‟t need a<br />
considerable amount of bitmap memory <strong>for</strong> their processing.<br />
16 GB system 32 GB system<br />
Operating System 1 GB 1 GB<br />
Filesystem Cache 1 GB 2 GB<br />
All Other Applications 500 MB 500 MB<br />
<strong>IQ</strong> Catalog Memory 128 MB 256 MB<br />
<strong>IQ</strong> Thread Memory 250 MB 500 MB<br />
Load Memory 1 GB 1 GB<br />
Bitmap Memory 256 MB 256 MB<br />
<strong>IQ</strong> Main Cache 4.4 GB 10.4 GB<br />
<strong>IQ</strong> Temporary Cache 6.6 GB 15.6 GB<br />
Backup Memory N/A N/A<br />
Total 15.125 GB 31.5 GB<br />
Final<br />
17