How to Benchmark the Performance of a SAS Cloud Migration using Lustre & SPDS on Microsoft Azure
As organizations migrate analytic workloads to the cloud, their roadmap needs to extend beyond a basic lift and shift. To reap the rewards of modernization it’s important to design a high-performance data and analytics environment and benchmark performance against a set of objective metrics. This blog provides a roadmap for how to optimize performance using SAS Grid Manager, Lustre and SPDS (Scalable Performance Data Server) on Azure.
SAS Grid Manager, SPDS and Lustre are technologies used when high performance computing is required on large volumes of data. These technologies are implemented in many large-scale enterprises to achieve high processing speeds on analytical workloads.
SAS Grid Platform lets you manage a wide variety of SAS and open source jobs across grid environments for optimal resource utilization and faster processing. SAS Grid divides individual SAS jobs into subtasks that are executed in parallel to accelerate processing and increase workload throughput.
SAS Scalable Performance Data Server (SPDS) software is designed for high-performance data delivery. SPDS uses the power of parallel processing to exploit the threading capabilities of servers with multiple processors.
Lustre is an open-source distributed parallel file system generally used for large-scale cluster computing. Lustre enables high performance, massively scalable storage for computer clusters ranging in size from small workgroup clusters to large-scale, multi-site clusters. Microsoft Azure offers Cloud Edition for Lustre on Azure, where you can launch a cluster through Lustre Template in the Azure Market place. Currently, this is not yet available in every region so we installed and configured Lustre independently on our servers without using the Marketplace rendition.
We utilised the power of all three systems together and benchmarked the performance on Cloud. In this case, we used Microsoft Azure, but benchmarking could be done on other cloud platforms as well.
Performance Test Architecture
Figure 1: Microsoft Azure Architecture of SAS and Lustre Setup
Data to be processed is available in SPD Server. The SAS Grid Manager Platform is used to process the SAS jobs. Lustre acts as the Distributed File System across the estate.
Azure Virtual Machine Types
SAS94 Grid Setup
- 1 x SAS Grid Controller and 4 x SAS Grid Nodes (E32s_v3)
- 1 x SAS SPD Server (E32s_v3)
ESv3-series instances feature the Intel® Xeon® 8171M 2.1 GHz (Skylake) or the Intel® Xeon® E5-2673 v4 2.3 GHz (Broadwell) processors and can achieve 3.5GHz with Intel Turbo Boost Technology 2.0 and use premium storage.
- 1 x MGS Server (F4s_v2)
- 1 x MDS Server (F16s_v2)
- 4 x OSS Nodes (F32s_v2)
The Fsv2-series is based on the Intel® Xeon® Platinum 8168 processor. It features a sustained all core Turbo clock speed of 3.4 GHz and a maximum single-core turbo frequency of 3.7 GHz. Intel® AVX-512 instructions are new on Intel Scalable Processors. Compute optimized instances provide high performance and are recommended for Lustre Cloud Edition.
Lustre Storage of 8TB was provisioned through 4 OSS Nodes with 2 TB on each node. The SAS SPDS File System was hosted on the Lustre File System and shared across the SAS Grid Servers. We used Standard SSD in all the machines for optimal performance.
SAS Servers and Storage Servers were isolated in two different subnets and we allowed traffic only from the SAS Grid Servers and SPDS Servers to the Lustre OSS Nodes. All the Virtual Machines used a common bandwidth of 10Gbps across the estate. Lustre Networking (LNET) provide the communications infrastructure required by the Lustre filesystem. It enables highly available cluster communication across a variety of networking technologies and supports transparent recovery during failures.
Performance Test Cases
We have utilised the total Compute Power of the SAS Grid Environment and spawned parallel sessions equal to the number of cores. This ensured efficient and optimal processing in lesser time.
The SAS Procs used are widely used for running Analytical Workloads and included common SAS Procedures (Datastep Read, Write, Proc SQL Filter, Read), Compute and Memory intensive procedures (Proc Sort, SQL Join, SQL Update, Proc Means, Proc Report), etc. The same set of data were used in all the test cases. However, we varied the tests of the dataset starting with the smallest size of 10GB and scaled up from there to 25GB, 50Gb and finally, the highest of 100GB.
The Tests were run in a comparison mode using the Storage from Local SSD, Lustre File System and SPDS Filesystems.
The Speed increases linearly as we progress from Local to Lustre to the SPDS filesystem for most of the data sizes. Operations on the SPDS filesystem consistently recorded better performance and proves our tests successful. As shown in the results, filtered operations are much quicker due to the fact it is working on subsets of the actual data.
**The values depicted are an average of time recorded for multiple user sessions and multiple tests runs
**SQL Update has poor performance on larger volumes of data. We recommend using append operations instead of a SQL Update
** There are no results for recorded for 100GB on Local SSD since the results were poor and they are not essential for comparison for our use case
Many Organisations use SPDS for massive data processing and when they migrate to cloud, they can continue to use the performance of the SPDS Engine in order to process data quicker. From the above results, one can make the same inference. Importantly, using SAS Grid Manager showed an additional improvement in performance on most analytical workloads. These results can be further improved by augmenting the system with additional OSS nodes and using Premium SSD disks on the Servers.
SAS Customers looking to modernize their existing SPDS platform can use this benchmarking and reference architecture for building and optimizing their Analytical platforms on Cloud. Lustre filesystem is ideal for huge analytical workloads demanding a fast, scalable and economic storage system. SAS SPDS and SAS Grid Manager Platform accelerate the processing power from Lustre and make it an efficient platform.
- Microsoft Azure VM sizing – https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes
- Lustre Installation – http://wiki.lustre.org/Installing_the_Lustre_Software
- Important Performance Considerations When Moving SAS® to a Public Cloud – https://www.sas.com/content/dam/SAS/support/en/sas-global-forum-proceedings/2019/3363-2019.pdf
- Performance and Tuning Considerations for SAS® Grid® Manager 9.4 on Amazon (AWS) Cloud using Intel Cloud Edition for Lustre File System – https://support.sas.com/rnd/scalability/grid/SGMonAWS.pdf
- Developing High-Performance, Scalable, cost effective storage solutions with Intel® Cloud Edition Lustre* and Amazon Web Services – https://www.intel.com/content/dam/www/public/us/en/documents/reference-architectures/ICEL-RA.pdf
About the Authors
Pradeep Kumar Rajendran is an Application Engineer with SAS specialization at Core Compete
Manoj Kumar Kotrike is an Application Engineer with Cloud specialization at Core Compete
SAS Ninjas – UK