Recently we published the first part of research comparing
Graviton (ARM) with AMD and Intel CPU on AWS. In the first
part, we selected general-purpose EC2 instances with the same
configurations (amount of vCPU). The main goal was to see
the trend and make a general comparison of CPU types on the AWS
platform only for MySQL. We didn’t set the goal to compare the
performance of different CPU types. Our expertise is in MySQL
performance tuning. We share research “as is” with all scripts,
and anyone interested could rerun and reproduce it.
All scripts, raw logs and additional plots are available on
GitHub: (2021_10_arm_cpu_comparison_c5, …
I’m active on multiple platforms (mail, slack, forums, …) and often, when people are looking for help, the first 5 or 10 questions are always the same:
- which version of MySQL are you running ?
- which OS ?
- is it in the cloud ?
- which provider ?
- are you using replication ?
- GTIDs ?
- ….
I’ve added to MySQL Shell Plugin repository and plugin called support which provides an output that user can share when looking for MySQL help.
Usually, I’m focusing only in MySQL 8.0, but this plugin works with older versions too (don’t try MySQL 3.23…. it should be compatible from 5.6).
Let’s see an output if I run it locally:
[fred@fedora ~] $ mysqlsh root@localhost -e "support.fetchInfo()" …[Read more]
Recently, AWS presented its own CPU on ARM architecture for server solutions.
It was Graviton. As a result, they update some lines of their EC2 instances with new postfix “g” (e.g. m6g.small, r5g.nano, etc.). In their review and presentation, AWS showed impressive results that it is faster in some benchmarks up to 20 percent. On the other hand, some reviewers said that Graviton does not show any significant results and, in some cases, showed fewer performance results than Intel.
We decided to investigate it and do our research regarding Graviton performance, comparing it with other CPUs (Intel and AMD) directly for MySQL.
Disclaimer
- The test is designed to be CPU bound only, so we will use a read-only test and make sure there is no I/O activity during the test.
- Tests were run on m5.* (Intel) , m5a.* (AMD), m6g.*(Graviton) EC2 instances in the US-EAST-1 region. (List of EC2 see …
There are plenty of ways to run ProxySQL in Kubernetes (K8S). For example, we can deploy sidecar containers on the application pods, or run a dedicated ProxySQL service with its own pods.
We are going to discuss the latter approach, which is more likely to be used when dealing with a large number of application pods. Remember each ProxySQL instance runs a number of checks against the database backends. These checks monitor things like server-status and replication lag. Having too many proxies can cause significant overhead.
Creating a Cluster
For the purpose of this example, I am going to deploy a test cluster in GKE. We need to follow these steps:
1. Create a cluster
gcloud container clusters create ivan-cluster --preemptible --project my-project --zone us-central1-c --machine-type n2-standard-4 --num-nodes=3
2. Configure command-line access
gcloud …[Read more]
MySQL, the world’s most popular open source database, is available as a managed cloud service in Oracle Cloud Infrastructure (OCI) under the name of MySQL Database Service (MDS).
This is the tenth episode of “Discovering MySQL Database Service“, a series of tutorials where I will show you, step by step, how to use MySQL Database Service and some other Oracle Cloud Infrastructure services.
In this episode, we’ll learn how to connect to our MySQL Database
Service instance using the Oracle Cloud Infrastructure Cloud
Shell.
It provides a pre-authenticated Oracle Cloud Infrastructure CLI
and preinstalled developer tools for easily managing Oracle Cloud
resources.
The post Discovering MySQL Database Service – Episode 10 – Connect to MySQL Database …
[Read more]MySQL, the world’s most popular open source database, is available as a managed cloud service in Oracle Cloud Infrastructure (OCI) under the name of MySQL Database Service (MDS).
This is the ninth episode of “Discovering MySQL Database Service“, a series of tutorials where I will show you, step by step, how to use MySQL Database Service and some other Oracle Cloud Infrastructure services.
In this episode, we’ll learn how to connect to our MySQL Database Service instance using MySQL Workbench – a unified visual tool for database architects, developers, and DBAs that provides data modeling, SQL development, and comprehensive administration tools for server configuration, user administration, backup, and much more.
The post Discovering MySQL Database …
[Read more]Primary Key design is an important thing for InnoDB performance, and choosing a poor PK definition will have an impact on performance and also write propagation in databases. When this comes to Aurora, this impact is even worse than you may notice.
In short, we consider a poor definition of a Primary Key in InnoDB as “anything but quasi sequential values”, which may cause very random access to data and thus increase the IO dependency.
In this post, I’ll try to demonstrate the potential impact of the primary key design when running on Aurora, and how a bad design can lead to a 15x write latency penalty (or more).
The Analysis
Recently I worked on a case where a customer was having issues with scaling writes in Aurora MySQL. While this is a known limitation in Aurora considering how the distributed storage layer syncs out data among all nodes of the cluster, we observed additional latency occurring when more …
[Read more]MySQL, the world’s most popular open source database, is available as a managed cloud service in Oracle Cloud Infrastructure (OCI) under the name of MySQL Database Service (MDS). MySQL Database Service is a fully managed cloud service, 100% Developed, Managed and Supported by the MySQL Team. This is the eight episode of “Discovering MySQL Database […]
The post Discovering MySQL Database Service – Episode 8 – Connect to MySQL Database Service Using MySQL Shell first appeared on dasini.net - Diary of a MySQL expert.
MySQL, the world’s most popular open source database, is available as a managed cloud service in Oracle Cloud Infrastructure (OCI) under the name of MySQL Database Service (MDS).
This is the seventh episode of “Discovering MySQL Database Service“, a series of tutorials where I will show you, step by step, how to use MySQL Database Service and some other Oracle Cloud Infrastructure services.
In this episode, we’ll discover and use the OCI Bastion service to provide a restricted and time-limited access to administer our MySQL instance.
The post Discovering MySQL Database Service – Episode 7 – Use a Bastion SSH port forwarding session first appeared on dasini.net - Diary of a MySQL expert.
Here’s a second post focusing on the performance of MySQL on ZFS in cloud environments. In the first post, MySQL/ZFS Performance Update, we compared the performances of ZFS and ext4. This time we’ll look at the benefits of using ephemeral storage devices. These devices, called ephemeral in AWS, local in Google cloud, and temporary in Azure, are provided directly by the virtualization host. They are not network-attached and are not IO throttled, at least compared to regular storage. Not only can they handle a high number of IOPs, but their IO latency is also very low. For simplicity, we’ll name these devices local ephemeral. They can be quite large: Azure lsv2, Google Cloud n2, and AWS i3 instance types offer TBs of fast NVMe local ephemeral storage.
The main drawback of local ephemeral …
[Read more]