20.02.2013 Views

A Practical Hardware Sizing Guide for Sybase IQ

A Practical Hardware Sizing Guide for Sybase IQ

A Practical Hardware Sizing Guide for Sybase IQ

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!