【发布时间】:2020-09-02 19:24:47
【问题描述】:
我们目前在 Ubuntu 16.04 上运行 MariaDB 10.0,并希望在 18.04 上升级到 MariaDB 10.4,但我们遇到了一个奇怪的问题。在测试 10.0 与 10.4 的 vanilla 安装时,10.4 安装的性能在相同硬件上慢约 50%。我们在 GCP 2 核 7GB 虚拟机上运行这些。
我在两个实例上都设置了一个测试表,如下所示:
create table if not exists testinsert_aria
(
id int primary key,
description varchar(255),
colorder int
) engine=aria;
并设置如下所示的测试脚本:
#!/bin/bash
START_DATE=`date`
END_DATE=`date`
START_ID=0
IDX=0
while [ $START_ID -lt 10001 ]
do
START_ID=$[$START_ID+1]
SQL_CMD="echo \"insert into testinsert_aria values($START_ID,'this is a test',1)\" | mysql -uroot testdb"
eval $SQL_CMD
done
END_DATE=`date`
echo "$(($(date -d "$END_DATE" '+%s') - $(date -d "$START_DATE" '+%s')))"
在 10.0 实例上运行大约需要 48 秒,但在 10.4 实例上运行大约需要 70 秒。我正在使用 htop、iostat 和 ioping 来监控系统,但我没有看到 CPU 或磁盘有任何压力。偶尔一个核心会达到 100%,但在大多数情况下,核心保持在 45% 左右。
我对 SQL Server 比对 Mariadb 更熟悉,但似乎没有很多可用于 aria 引擎的调优选项。我看到与 innodb 引擎相同的问题。我还在 Ubuntu 16.04 上使用 Mariadb 10.4 对其进行了测试,并看到了相同的结果,因此它似乎与操作系统无关。我正在使用使用 XFS 设置的单独数据 SSD 数据磁盘运行(也尝试了 EXT4,但没有重大差异)。我玩过 IO 调度程序,没有发现任何差异。我有点不知所措。我想如果 10.0 和 10.4 之间存在这么大的性能差异,那么会有很多关于它的线程,但我找不到任何东西。我还在存储过程中表达了测试以删除客户端,它仍然是相同的结果。通过 slow_log 查看 10.4 实例的平均查询时间大约长 3 倍,query_response_time 显示相同。任何帮助将不胜感激。
【问题讨论】:
-
附加信息请求数据来自 10.0.nn 和 10.4.nn RAM 大小、# 核心、MySQL 主机服务器上的任何 SSD 或 NVME 设备?在 pastebin.com 上发布并分享链接。从您的 SSH 登录根目录中,文本结果为:B) SHOW GLOBAL STATUS;至少 24 小时正常运行时间后 C) 显示全局变量; D) 显示完整的处理程序;和 可选的有用信息(如果可用)包括 - htop 或 top 用于大多数活动应用程序,ulimit -a 用于 Linux/Unix 限制列表,iostat -xm 5 3 用于按设备和核心/cpu 计数的 IOPS,用于服务器工作负载调整分析提供建议。
标签: performance mariadb upgrade