mysql的线上环境硬件配置推荐、性能压测方法以及结果分析

一、硬件配置与所能支持并发量

一般我们说的负载,主要居于单台机器只部署应用或者mysql的情况,常常发现有些人在一台机器上部署了很多的应用,包括数据库也放在一起,发现某个应用配置完全没问题,但偶尔会有卡顿的情况,实际可能被其他应用占用了资源导致。

1、通常情况下,线上环境应用部署在4核8G的机器上,而数据库应部署在8核16G或者16核32G,正常情况下单节点应用服务可支撑500左右的并发,当然还要根据请求的处理时长来计算,比如接口请求响应过慢就会导致并发降低

2、在一个系统中,往往压力会集中在数据库上,因为请求一般最终会落到数据库上,而数据库需要在内存以及磁盘上进行大量的IO操作。一般来说8核16G的机器部署mysql数据库可以扛住一两千的并发,如果并发量再高些比如几千,就会造成数据库CPU、磁盘、IO、内存等负载过高,严重会引起宕机

3、16核32G的机器,一般可以扛住两三千的并发、甚至到三四千也都可以,具体还是有要看sql的复杂度等,对于数据库而已,一般采用的SSD固态硬盘,因为数据操作需要大量的磁盘IO,SSD的IO会相对大很多。

二、如何对即将投入生产环境的数据库进行性能测试

在一个数据库即将投入生产环境前,一般都需要进行一个基准压测,观察系统在不同压力下CPU/磁盘IO/网络/内存等的变化情况,心里大概了解到数据库可以扛住多大的压力,瓶颈在哪里。

1、mysql的性能测试一般关注的指标有:

A、IOPS:机器的随机IO并发处理能力,比如机器可达到的200IOPS,说明每秒可以执行200个随机读写请求

B、吞吐量:单位时间内的可以处理的事务数,也即TPS,也可以看存储每秒可以读写的数据量

C、响应时间/延迟:测试一个任务执行所需的时间,比如写一条日志到磁盘文件,所需要花费的时间

2、mysql的压测工具有:

A、mysqlslap:可以模拟服务器的负载,并输出计时信息,测试时可以指定并发数、sql语句,如果没指定,可以自动生成schema的select语句

B、sysbench:一款多线程压测工具,可以根据影响数据库性能的因素来评估系统性能、可以执行多种类型的基准测试,比如可以提供cpu测试、磁盘io测试、内存访问测试、线程调度测试、数据库oltp测试

三、sysbench的安装、说明、压测和指标分析

1、下载并安装

下载:curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash

安装:yum -y install sysbench

查看是否安装成功:sysbench --version

2、sysbench主要配置参数说明(prepare run cleanup help)

输#入sysbench --help可获取参数说明,这里只列举常用的:

#General options(通用配置):

--threads=10 #使用的线程数,默认为1

--events=N #限制事件总数,默认为0

--time=N #总执行时间限制,默认10s,也就是说连续访问10s

--forced-shutdown=STRING #在--time参数限制之后等待多少秒关闭执行,默认是off关闭状态

--thread-stack-size=SIZE #每个线程的栈大小,默认64K

--rate=N #事务平均速率,默认0,不限制速率

--report-interval=N #多久输出一次压测结果,默认0,中间不输出,常常设置为1,一秒钟输出一
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值