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 untouched.A small bench mark application in Essbase was created containing a small amount of data. A single rule has been used as reference. Each test, the rule was run four times. The first run was always ignored. The three remaining runs where averaged out. Calculation times where 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 for guidance. The graph below was 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 was that Essbase would fit the "Latency Sensitive" profile instead of 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 addresses UEFI memory optimizations, however only one setting "Node Interleave" made sense to me 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-threading is disabled as part of the Latency Sensitive profile, but enabled as a delta in step 3.
The numbers
Percentage Difference Overview
Conclusions
Disabling or enabling 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", which provided the best performance results. A stunning 24% increase of Essbase calculation speed, including "Node Interleave" setting even 28%! This is a serious CPU upgrade... for free!Essbase is indeed a "Latency Sensitive" workload. Based on experience, we already knew this in relation to disk IO. Now we discovered it is also true in relation to CPU and memory.
After applying these settings on other environments and bench-marking real live applications, I can confirm that the percentages mentioned in this post are reproducible in real-life situations.
No comments :
Post a Comment