Introduction
Personally I never paid attention to specific UEFI (Unified Extensible Firmware Interface) settings when installing and configuring EPM. It was always on factory default values. During a project however, I was triggered to have a look at these setting due to an issue I could not explain.What I discovered, came as a big surprise to me!
Conditions
This article is assuming a Dell PowerEdge, with a v3 Intel CPU architecture. All other areas that might impact performance have been left alone.A small bench mark reference application in Essbase was created with a small about of data. A single rule is used as a reference. Each test, the rule is run four times. The first run is always ignored. The three remaining runs are averaged to a single number. Calculation times are taken directly from the Essbase application log, not timed through the Web Interface.
Dell Performance Guide
Dell has written a document named "BIOS Performance and Power Tuning Guidelines for Dell PowerEdge" (can be downloaded here) which has been used as a reference. The graph below has been taken from this document. Dell categorizes workloads in three profiles as shown in the picture below. Factory default is "Performance Optimized".Essbase Classification
My expectation before I started was that Essbase would fit the "Latency Sensitive" profile better than the default "Performance Optimized" profile. For obvious reasons it would not fit the profile "Power Efficient". I decided to test the performance differences between the profiles "Performance Optimized and Latency Sensitive". In addition I tested all individual changes in order to get a understanding which setting has the highest impact and what combination of settings offers the best Essbase calculation speeds.Overview of the Results
The table below provides an overview of the test results. All percentages are compared to the baseline which is the factory default "Performance Optimized" profile. Negative percentage means performance loss compared to the baseline. For our US friends, the number 1,50 means "1 second and 5 tenths of a second". The Dell document also mentions UEFI memory optimizations, only one setting made sense to me "Node Interleave" to include in the test.Because the benchmark application is small and doesn't contain allot of data, the differences in seconds is small. However in percentages they are big.
To clarify, settings 3 to 6 are delta's of the "Latency Sensitive" profile. For example: Hyper-Thread is disabled as part of the Latency Sensitive profile, but enabled as a delta in step 3.
The numbers
Percentage Difference Overview
Conclusions
What you might notice is that disabling or enabled Hyper-threading makes the biggest impact in performance. The magic however seems to be the combination of settings as specified for the profile "Latency Sensitive" and produces the best performance results. A stunning 24% increase in Essbase calculation speed, including "Node Interleave" setting even 28%! This is a serious CPU upgrade, for free!Essbase is indeed a "Latency Sensitive" workload. Base don experience, we already knew this related to disk IO. Now we discovered it is also true related to CPU and memory.
After applying these settings on other environments and bench-marking real live applications, I can concur that the percentages mentioned in this post are reproducible in real-life situations.