Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Jens_Argentzell
Employee
Employee

Quick tips #8 - Server settings for best performance

This page describes the settings for best performance for servers running the Qlik Associative Engine.
Latest update: May 2022

Windows 2022 has improved performance for servers with many physical cores. This table shows the definition used in the below document.

 

Older Windows versions

Windows 2022

Server with normal core count

≤64 physical cores

≤90 physical cores

Server with large core count

>64 physical cores

>90 physical cores

 

BIOS settings

SettingValue
Hyper-threading

Applies to QlikView and Qlik Sense servers:

  • Server with normal core count: Enabled
  • Server with large core count: Disabled

There are use cases that even on servers with huge #cores enabling hyper-threading is beneficial. Therefore, it is best to test these settings for your application.

Power Management (System Profile Settings)

Applies to QlikView and Qlik Sense servers:

  • Custom with Max performance and C states enabled

Another setting that can be used is the full performance setting. But this settings makes the server run constantly at the maximum clock speed for all cores, which has the following drawbacks:

  • The server uses more power.
  • The CPUs do not use clock speeds higher than the speed of the all-core boost clock, which usually is lower than the maximum boost clock speed of the CPUs.

A solution to this is to use a custom system profile in the server BIOS that allows the CPUs to use their C states while all other components are set to full performance. The custom system profile should be set up similar to the following:

  • CPU power management: Max performance
  • Turbo boost: Enabled
  • Energy efficient turbo: Disabled
  • C states: Autonomous (if available, otherwise Enabled)
  • C1E state: Enabled
  • Uncore frequency: Max
  • Memory frequency: Max
  • Energy efficiency policy: Performance
  • Determinism slider: Power determinism
NUMA

QlikView servers (Intel):

  • Disabled*

Qlik Sense servers (Intel):

  • Server with normal core count: Disabled*
  • Server with large core count: Enabled

*On servers with Intel CPUs, NUMA is disabled by enabling Node Interleaving.

QlikView  and Qlik Sense servers (AMD EPYC):

  • NUMA mode should be set to Automatic and 1 node per socket. (L3 Cache NUMA Nodes disabled.)
Memory configuration

QlikView and Qlik Sense servers:

  • Configured for best performance (the DIMM slots for every CPU should be populated in accordance to the server manufacturer's specification for best performance)
Hardware/Software Prefetcher

QlikView and Qlik Sense servers:

  • Enabled

 

The names of the settings and how to tune them may differ depending on the server manufacturer and model. Refer to the documentation for your server to find the equivalents of the settings listed above.

Operating system settings

Microsoft Windows

SettingValue
Power plan

QlikView and Qlik Sense servers:

  • High Performance
Registry update

Qlik Sense servers only:

For servers with a large core count, there is a registry change, applicable to both Intel and AMD CPUs, that improves the responsiveness when the Qlik Sense Repository Service (QRS) is under heavy load (for example, when many users open the hub at the same time).

Two registry updates are needed:

Add the Thread_NormalizeSpinWait key as a DWORD value to the following subkey: HKEY\LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework

  • Value name: Thread_NormalizeSpinWait
  • Value data: 1

Add the Switch.System.Threading.UseNetCoreTimer key as a String value to the following subkey: HKEY\LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\AppContext

  • Value name: Switch.System.Threading.UseNetCoreTimer
  • Value data: true

The fix is described in full here: https://support.microsoft.com/en-za/help/4527212/long-spin-wait-loops-in-net-framework-on-intel-skyl...

 

/ Cheers from the Scalability Center team

Labels (1)
31 Replies
Everest_QV_AppSupport
Contributor
Contributor

We have separate Publisher Servers.  Would these QDS servers benefit from this same configuration (NI=Enabled;NG=Flat)?

fmarvnnt
Partner - Creator III
Partner - Creator III

Any performance difference or different behaviour between 12.10 QIX Engine and 11.20 Engine?

Michael_Tarallo
Employee
Employee

Hello Francesco - from what I understand - only for wide data sets (many, many columns) - I am not sure of the total number of columns however.

Regards,
Mike Tarallo
Qlik
ksmccann
Partner - Contributor III
Partner - Contributor III

Miguel, thanks for the great response on the hyperthreading question with QV11. I am trying to determine if the general recommendation for QV12 is still to turn off hyperthreading. Your input would be greatly appreciated.

Miguel_Angel_Baeyens

Kevin, yes, it is recommended, as the way that the engine handles memory has not changed. However, there are CPUs like the E5-2690 where the hyperthreading enabled and 512GB+ RAM helps to a better performance. I have not tested the latest v4, but If the number of physical cores is smaller, hyperthreading would help. Theoretically, if the number of cores is smaller than 16, the way the QPI link is connecting the physical CPUs enabling hyperthreading and get, for QlikView -not other applications- better performance. After all, QlikView needs a balance between amount of memory and CPU power, having superfast CPUs with little ram or massive amounts of RAM with less powerful cores will not help. Enabling hyperthreading creates a bit of overhead in CPU cycles but handles better higher amounts of RAM.

ksmccann
Partner - Contributor III
Partner - Contributor III

thanks for the quick response Miguel, very helpful.

Emmanuelle__Bustos
Partner - Specialist
Partner - Specialist

Hi @Jens_Argentzell

Thanks for the Info, but I have a doubt, the article 000026813 Hardware Settings For Best Performance With Qlik Sense in the knowlegege library says:

  • Hyper-threading - Disabled

while this community topic says the opposite:

  • Hyper-threading - Enabled

can you please help me to clear this confusion for me.

eyalnir_qlik
Partner - Creator
Partner - Creator

Dear @Jens_Argentzell 

We preformed migration to Publisher version 12.5 SR2 to a new server with 2 X 16 cores (32), we encountered with conflict regarding to Hyper-threading

regarding to your article you advised to set it to Enabled “Servers with ≤60 physical cores: Enabled” , but other article  BIOS-Settings-For-Best-Performance-On-QlikView-Server-And/ta-p/1710242 advise to set it as Disabled " Disabled (most architectures), Enabled (2 socket Intel E5-XXXX architectures) "

can you advise what is the right approach ?
Thanks
Eyal 
Frederic_De_Ranter

Hi Eyal,

Thanks for pointing out the conflict between the posts, that has now been fixed. I can confirm that the best approach is to enable hyper-threading for servers with less than 60 physical cores. In most cases this will give you the best performance. 

Best regards,

Frederic

eyalnir_qlik
Partner - Creator
Partner - Creator

Thanks a lot Frederic

your feedback was helpful

Best regards,

Eyal Nir