In the document QVMemoryManagementandCPU.pdf, referenced to from article QlikView and Qlik Sense resource usage and the Qlik Associative Engine Memory Management and CPU Utilization
, there is an extensive amount of description behind how QlikView is affecting CPU and RAM.
We have seen situations where using many cores with a low clock speed is the preferred option when buying new servers, as opposed to a higher frequency on a fewer number of CPUs. This might come as a result of an assumption that more cores = better, faster and more scalable.
Situations where the old test server with fewer cores and a bit higher CPU frequency is performing better than the brand new production environment is not too uncommon.
So some performance tests are showing worse performance with more cores/slower frequency, even though most of the test are still showing better performance.
But why are not all test cases showing better performance with more cores?
The reason why using more cores with lower clock speed can decrease performance, is because some operations being performed by the QVS can only be calculated using a single core. This means that it cannot split the workload it has received over multiple cores, so the operation cannot scale. Therefore, with a higher frequency this specific operation being calculated on a single core can be performed faster.
In the guide, QVMemoryManagementandCPU.pdf, it states that "It may not always beneficial to add cores if the user scenario does not allow for scaling well over cores. In many cases the user-perception will be better with fewer but faster cores than many slower."
So, as an example, in a situation where there appears to be worse performance with:
8 cores, 2,0 GHz
than compared to:
2 cores, 2,5 GHz
...it might be perfectly normal, as the calculations being done cannot be scaled over multiple cores. In a situation where there might be a need to for the document (reload) to scale better and to use more cores, it might an idea to look into consultancy, in order to optimize the document and use different calculation methods.
That being said, there are many situations where using more cores and a lower CPU works much better. The final result depends on what is being calculated.
Note: One can use the easter egg "EnableParallelReload=0" (see article 000003177
- How to disable Parallel Reload to ensure multi-tasks don't affect each other.
), which allows you to force the machine to only run calculations with a single core, both in QV Server and QV Desktop. Previously this was the default behavior when reloading, but today this Easter Egg is mostly used for troubleshooting. Parallelization/scaling is the preferred way to go, and the QlikView Architecture has been aligned towards this CPU development with more cores. Nonetheless, the legacy/troubleshooting possibility is still present.