服务器IO测试,及利用sysbench工具进行mysql oltp性能测试

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

背景

      公司打算2018年有把服务迁移到云上的计划,于是选择了市场上的几款云产品来进行比较,其中对磁盘IO与mysql读写性能的测试是很重要的一个环节。故此,针对云产品的磁盘IO以及云数据库的读写,进行了一些粗略的测试。

      这里测试的服务器来自腾讯云,这里暂且不讨论云的性能如何,只针对测试的方法来进行讲诉。


sysbench工具

      测试连续IO,我们可以利用linux的dd命令,但是如何测试随机IO呢?sysbench就是一个用于测试随机IO的很好选择。


安装sysbench:

项目地址:https://github.com/akopytov/sysbench

1
2
3
4
5
6
7
8
9
下载项目到本地,解压:
# unzip master.zip
# cd sysbench-master/
# ./autogen.sh
 
编译参数中指定mysql相关目录
# ./configure --prefix=/usr/local/sysbench --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/mysql/lib
# echo  '/usr/local/mysql/lib/' >> /etc/ld.so.conf
# ldconfig



安装完sysbench之后,就可以进行IO的测试了,这里测试的磁盘,都是腾讯云的SSD数据盘:



连续IO测试(dd)

测试方法:

数据盘(写):# dd if=/dev/zero of=/opt/data/test.iso bs=1024M count=5 conv=fdatasync

数据盘(读):# dd if=/opt/data/test.iso of=/dev/zero bs=1024M count=5 iflag=direct



随机IO测试(sysbench)

测试方法:

数据盘:

# cd /opt/data/

# sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw prepare



Mysql oltp基准测试

利用项目中的oltp.lua文件来准备测试所需要的数据:


# cd /usr/local/src/sysbench-master/tests/include/oltp_legacy/
# sysbench --mysql-host=xx.xx.xx.xx --mysql-port=3306 --mysql-user=root --mysql-password=xxxxxxx --test=oltp.lua --oltp_tables_count=10 --oltp-table-size=1000000 --rand-init=on --db-driver=mysql prepare

--test=oltp.lua 表示调用当前目录下oltp.lua 脚本进行 oltp 模式测试

--oltp_tables_count=10 表示会生成 10 个测试表

--oltp-table-size=100000 表示每个测试表填充数据量为 100000 

--rand-init=on 表示每个测试表都是用随机数据来填充的

--db-driver=mysql 代表使用mysql驱动连接数据库

1.png

2.png

开始测试:

1
# sysbench --mysql-host=xx.xx.xx.xx --mysql-port=3306 --mysql-user=root --mysql-password=xxxxxxx --test=oltp.lua --oltp_tables_count=10 --oltp-table-size=100000 --threads=8 --oltp-read-only=off --report-interval=10 --rand-type=uniform  --time=3600 --max-requests=0 --percentile=99 --db-driver=mysql  run

--num-threads=8 表示发起 8个并发连接

--oltp-read-only=off 表示不要进行只读测试,也就是会采用读写混合模式测试

--report-interval=10 表示每10秒输出一次测试进度报告

--rand-type=uniform 表示随机类型为固定模式,其他几个可选随机模式:uniform(固定),gaussian(高斯),special(特定的),pareto(帕累托)

--time=3600 表示最大执行时长为 1个小时

--max-requests=0 表示总请求数为 0,因为上面已经定义了总执行时长,所以总请求数可以设定为 0;也可以只设定总请求数,不设定最大执行时长

--percentile=99 表示设定采样比例,默认是 95%,即丢弃1%的长请求,在剩余的99%里取最大值


测试结果:

3.png

可以看到相关的测试结果:

Mysql-tps:926.04/S

Mysql-qps:18520.74/s


删除测试数据:

1
# sysbench -mysql-host=xx.xx.xx.xx --mysql-port=3306 --mysql-user=root --mysql-password=xxxxxx  --test=oltp.lua --oltp_tables_count=10 --oltp-table-size=100000 --threads=8 --oltp-read-only=off --report-interval=10 --rand-type=uniform  --time=3600 --max-requests=0 --percentile=99 --db-driver=mysql cleanup









本文转自 icenycmh 51CTO博客,原文链接:http://blog.51cto.com/icenycmh/2056913,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
深入探索软件测试:策略、工具与未来趋势
【5月更文挑战第38天】 在软件开发的生命周期中,测试环节扮演着至关重要的角色。随着技术的不断进步和市场需求的多样化,传统的测试方法已逐渐不能满足现代软件项目的需求。本文旨在提供一个全面的软件测试概述,包括最新的测试策略、常用工具以及预测未来的发展趋势。通过分析自动化测试的效益、持续集成的重要性以及人工智能在测试中的应用,文章将帮助读者构建一个更高效、更智能的软件测试环境。
|
21天前
|
Web App开发 测试技术 API
自动化测试工具Selenium的深度解析
【5月更文挑战第27天】本文旨在深入剖析自动化测试工具Selenium,探讨其架构、原理及应用。通过对其核心组件、运行机制及在实际项目中的应用案例进行详细解读,以期为软件测试人员提供全面、深入的理解与实践指导。
|
3天前
|
机器学习/深度学习 人工智能 jenkins
探索自动化测试工具的选择与应用
在软件开发生命周期中,软件测试是确保质量的重要环节。随着自动化技术的发展,自动化测试工具的选择和应用变得至关重要。这篇文章将深入探讨如何选择适合的自动化测试工具,并结合实例分析其实际应用效果,从而为开发团队提供有效的指导。
|
5天前
|
Linux Shell 测试技术
Linux服务器测试脚本集合
LemonBench是iLemonrain创作的Linux服务器性能测试工具,能一键检测系统信息、网络、CPU、内存和硬盘性能。
6 0
|
11天前
|
测试技术 持续交付
软件测试中的自动化工具及其应用
本文将探讨软件测试中自动化工具的特点、优势以及常见应用场景,重点介绍了自动化测试工具在提高测试效率、减少人力成本以及保证软件质量方面的重要作用。通过深入分析自动化测试工具的应用实例,帮助读者更好地理解和运用现代软件测试工具。
41 1
|
11天前
|
监控 测试技术 Linux
性能测试工具
这篇内容介绍了几种性能测试工具和Linux监控命令。`ab`适用于简单接口测试,易用但扩展性差;`JMeter`功能强大,可扩展,但稳定性不足;`LoadRunner`专业稳定,但需付费。此外,还提到了几个Linux监控命令,如`top`、`vmstat`、`pidstat`和`jstat`,用于系统性能监控和内存使用情况检查。
35 0
|
13天前
|
网络协议 Linux Windows
测试端口是否开放 tcp端口 udp端口 测试服务器端口连通性
测试端口是否开放 tcp端口 udp端口 测试服务器端口连通性
|
13天前
|
缓存 负载均衡 测试技术
掌握wrk压力测试工具的优化技巧与实践
掌握wrk压力测试工具的优化技巧与实践
15 1
|
16天前
|
运维 安全 网络架构
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
【6月更文挑战第1天】成为网络世界的超级英雄,利用网络模拟工具解决复杂架构难题!此工具提供安全的虚拟环境,允许自由设计和测试网络拓扑,进行性能挑战和压力测试。简单示例代码展示了创建网络拓扑的便捷性,它是网络设计和故障排查的“魔法棒”。无论新手还是专家,都能借助它探索网络的无限可能,开启精彩冒险!快行动起来,你会发现网络世界前所未有的乐趣!
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
|
18天前
|
jenkins 测试技术 持续交付
软件测试中的自动化测试工具及其应用
传统的软件测试流程需要大量的人工投入,其效率低下且容易出现遗漏。而自动化测试工具的出现极大地提高了软件测试的效率和精度。本文将介绍几种常见的自动化测试工具及其应用,分析其优势和不足,并探讨在实际项目中的应用场景。

热门文章

最新文章

推荐镜像

更多