SAP / Novell Performance Optimization
SAP and Novell work close together when it comes to aligning the products to work seamlessly together. The benefits of this collaboration are for example a good integration of both technologies or in the end a good support message handling, e.g. provided by the Priority Support. Besides these high level arrangements there has been an optimization workshop end of last year. In this blog I’d like to give you some insights of what SAP and Novell did during this workshop and want to let you know of the future benefits for you as an SAP / Novell customer.
The story begins in early April 2008. During the SAP Virtualization Week in Palo Alto I had the chance to have meetings and chats with several SAP partners. During the talks with these partners myself as the representative of the SAP LinuxLab was asked what the position of the Linux platform in general compared to other platforms is. From the official SAP SD-Benchmarks from that time (see http://www.sap.com/benchmark/ for reference) that on the commodity market, Linux and Windows showed pretty similar performance. Nevertheless, it is a common sense to not rest on your laurels but to improve all the time.
Currently, Novell SLES kernel space components are not particulary tuned for an SAP application server or the SAP database MaxDB. So the question was how to give Novell SUSE kernel engineers and developers deeper insights about the SAP application server and the MaxDB architecture to allow them to adept crucial parts in the upcoming SLES11 product for optimal performance with SAP workloads – the idea of a joint SAP on Linux Performance Optimization Workshop was born.
It took some time to finish the remaining work and tasks left from the virtualization week and suddenly it was already June 2008. Time was passing by quickly. The next question to clarify was, which SAP certified distributor to get into this workshop. I can’t remember the reason why it was Novell, it might have been that the Novell / SUSE development labs in Nuremberg was closer to the LinuxLab in Walldorf. Anyway, it was July 2008 when we had the first meeting with Novell, SAP and a hardware vendor supporting the workshop. The question to answer was, which hardware platform, processor type, processor model, SAP release, database and distribution release to use? Several meeting later we finally agreed to build up an SAP SD-Benchmark reference platform at Novell / SUSE in Nuremberg. The reference platform is an SAP ERP 2005 SR1 Unicode system on top of an MaxDB 7.7 database. This application platform runs on a dual boot (SLES10 / SLES11 beta) configured Server with 4x AMD x86_64 Opteron CPUs and 64GB of main memory.
It was already November 2008 and the time was still passing by too quickly. Novell invited me to Nuremberg to build up this platform and to work together with Novell’s Linux Kernel Developer Nick Piggin on how the performance of such a system can be optimized. In the first week of December, it was already snowing outside, I arrived in Nuremberg. The operating system and SAP SD-Benchmark system were already installed, and we were able to start directly with the fine tuning and configuration of all parts of the system. You might imagine how hard it was to work all the day, knowing that there is the most beautiful Christmas Market in the world right beside you in the old town. Nevertheless, we found the time to have out lunch there once :-).
A valid question from you, the reader, is of course: what did you do and what was achieved during this week?
Basically, it has been investigated in a number of areas. The following topics were identified to be of particular interest and with high potential for effective tuning and optimization in the operating system space to achieve best performance for SAP deployments:
- using oprofile to figure out hot functions in the kernel, the glibc, the MaxDB database or the SAP kernel
- using huge pages on an NUMA platform
- optimize the Linux CPU Scheduler for the internal MaxDB threading model
- using optimized functions for hot routines which we found with oprofile, especially mprotect(), memcpy() and memset()
Nick and myself found lots of potential optimization parts in both ‘our’ software with which we went home after the week. But this was not the end of the workshop. The benchmark setup is still in place. It is setup to start SAP SD-Benchmarks, utilize the system to 100% and then one is able to compare the results. Nick is doing work on the SLES11 beta/RC glibc and kernel to improve performance, whereas I work together with the MaxDB colleagues to bring a new MaxDB version into the benchmark environment. We won’t publish any results, but we improve the performance of this setup step by step. Having both, SLES10 and SLES11 in the environment as well gives Novell a perfect piece of performance comparison with an enterprise software product. You as the customer will benefit from any of the improvements we made, either in SLES or SAP/MaxDB. It just may take some months until the new patches passed from development through the QA to you.