At Red Hat, we strive to ensure that Red Hat Enterprise Linux (RHEL) performs its best regardless of where you choose to deploy it. In this post, we're going to discuss how to improve the performance of various benchmarks and database workloads in Microsoft Azure. In this blog, we will compare the performance database workloads on RHEL 8 and RHEL 7 running in Azure. We will also share some simple tunings for RHEL images being run in Azure to improve performance.
CPU Performance Improvements
With RHEL 8.0 comes many upgrades and improvements, including a new kernel and compiler suite. These upgrades have shown performance improvements for many types of applications. While some applications are more sensitive to compiler improvements than others, the STREAM Copy Performance benchmark provides an example of an almost 15% improvement:
Network Performance Improvements
With the newer kernel, RHEL 8.0 introduces a number of networking improvements compared to RHEL 7.6. When combined with the Azure Accelerated Networking offering, the performance improvements are significant in both delivered bandwidth and packet rate. The performance gains differ based on the packet size.
The 1st chart shows results at 16KByte packets. 16 KByte packets reach saturation of the 40 Gb NIC at 8/64 instance of uperf at 1500 MTU. The bottom chart is for tiny 64 Bytes and the metric is in transactions/sec. Thus since the RHEL 8 kernel is more efficient at network packet processing, we measured higher network throughput at 8 and 64 instances at 64 bytes.
Large packet bandwidth shows a significant improvement, with RHEL 8.0 able to fully utilize a network link with greater efficiency:
Small packet transaction rate also shows great improvement with an up to 50% increase:
As a note, we measure transaction rate with small packets to minimize the time spent in moving bits over the wire rather than the time spent processing the transaction. Larger packets give us a better view of what we can send over the wire and hence why we measure bandwidth in that scenario.
The Impact on Database Performance
The low level improvements we’ve just reviewed are important to note as they can and will be used by databases and other applications. In this section, we have evaluated the performance differences between RHEL 8 and RHEL 7 running database workloads in Azure.
-
We observed up to 133% gains in RHEL 8 compared to RHEL 7 for SCSI storage due to the introduction of the SCSI multi-queue storage elevator.
-
In case of NVMe storage, multi-queue is available for both RHEL 7 and RHEL 8. RHEL 8 performed 10% better, due to filesystem and locking improvements in the RHEL 8 kernel.
The results below use the open source HammerDB benchmarking and load testing software driving Microsoft SQL Server. The following table shows the details for our setup:
MariaDB SCSi (Intel Broadwell) results with 8-SSDs showing mulit-q now enabled in RHEL8 VMs. On a different tier in Azure, results of MariaBD NvME (AMD) with 4-NvME shows a smaller performance gain due to filesystem improvement since multiq is enabled for NvME for both RHEL 7.6 and RHEL 8.0.
Other Performance Tunings
For this exercise, we took a 4 virtual CPU 16G ram instance and looked at AVC Cache Thresholds and Dirty Ratios.
We also investigated how much of an impact the selected VM size has on performance.
AVC Cache
By default, the SELinux AVC Cache Threshold (/sys/fs/selinux/avc/cache_threshold
) is set to 512. This sets the number of cache entries that SELinux can have to a maximum of 512.
-
In the case of MariaDB on RHEL 7.6, when we adjusted this value to 8,192, we saw an almost 10% performance increase
-
When running the same test across 5 different VMs with MSSQL-Server (using the HammerDB Benchmark ), the performance difference between 512 and 8192 for this setting was minimal.
-
Openshift Container Platform has been running with a value of 8192 and has found a solid performance improvement for their workloads.
For database workloads on cloud platforms, we recommend updating the value of /sys/fs/selinux/avc/cache_tuning
to 8192. We would also recommend upgrading to a higher tier of storage before switching to a larger VM size as the larger VMs are generally underutilized with the lower tier storage.
Conclusion
Red Hat Enterprise Linux 8.0 (RHEL 8) is a release that brings forth optimizations in the kernel. The RHEL 8 kernel reduces system-call related overhead which improves I/O performance for both the filesystem and network subsystems.
The SCSI multi-queue I/O elevator enables Microsoft SQLserver OLTP workloads to improve by a factor of two, when compared to the single-queue I/O elevator shipped in RHEL 7. Changes to XFS filesystem journaling has enabled improvements of up to 10% in RHEL 8 as well.
The networking stack for RHEL 8 has measured performance gains between 15-20%, primarily due to including nftables (instead of iptables). RHEL 8 also shows better performance with small and medium-sized packets when compared to RHEL 7.
Red Hat continues to work on optimizing the performance of Red Hat Enterprise Linux in order to deliver the best performance for your workloads!
À propos de l'auteur
Contenu similaire
Parcourir par canal
Automatisation
Les dernières nouveautés en matière d'automatisation informatique pour les technologies, les équipes et les environnements
Intelligence artificielle
Actualité sur les plateformes qui permettent aux clients d'exécuter des charges de travail d'IA sur tout type d'environnement
Cloud hybride ouvert
Découvrez comment créer un avenir flexible grâce au cloud hybride
Sécurité
Les dernières actualités sur la façon dont nous réduisons les risques dans tous les environnements et technologies
Edge computing
Actualité sur les plateformes qui simplifient les opérations en périphérie
Infrastructure
Les dernières nouveautés sur la plateforme Linux d'entreprise leader au monde
Applications
À l’intérieur de nos solutions aux défis d’application les plus difficiles
Programmes originaux
Histoires passionnantes de créateurs et de leaders de technologies d'entreprise
Produits
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Services cloud
- Voir tous les produits
Outils
- Formation et certification
- Mon compte
- Assistance client
- Ressources développeurs
- Rechercher un partenaire
- Red Hat Ecosystem Catalog
- Calculateur de valeur Red Hat
- Documentation
Essayer, acheter et vendre
Communication
- Contacter le service commercial
- Contactez notre service clientèle
- Contacter le service de formation
- Réseaux sociaux
À propos de Red Hat
Premier éditeur mondial de solutions Open Source pour les entreprises, nous fournissons des technologies Linux, cloud, de conteneurs et Kubernetes. Nous proposons des solutions stables qui aident les entreprises à jongler avec les divers environnements et plateformes, du cœur du datacenter à la périphérie du réseau.
Sélectionner une langue
Red Hat legal and privacy links
- À propos de Red Hat
- Carrières
- Événements
- Bureaux
- Contacter Red Hat
- Lire le blog Red Hat
- Diversité, équité et inclusion
- Cool Stuff Store
- Red Hat Summit