一、关键性指标
在数据库性能评测中,有几项指标很重要,用它来评估数据库的能力,不是他们能起着多么关键的作用,而是他们能够较为明确的代表数据库在某些方面的能力。
1.IOPS
IOPS:Input/Output operation Per Second, 每秒处理的IO请求次数。
我们知道I/O就是磁盘的读写能力,比如每秒读 300M,写 200M,这个即数据的吞吐量(I/O能力的另一个关键指标),但是 IOPS 指的可不是读写的数据吞吐量,IOPS 指的是每秒能够处理的 I/O 请求次数。
如果想I/O 系统响应够快,那么 IOPS 越高越好,因为IOPS 和硬件有关,所以,要提高IOPS,就目前来看基本只能拼硬件,传统方案是使用多块磁盘通过 RAID 条带后,使 I/O 读写能力获得提升,我们也可以使用固态硬盘SSD来提升IOPS,不过固态硬盘成本可能比较大。
2.QPS
QPS:Query Per Second,每秒请求(查询)次数。
这个参数非常重要,可以直观的反映系统的性能,这就像IOPS衡量磁盘每秒钟能接收多少次请求。
我们可以在MySQL命令行模式下执行 status 命令,返回的最后一行输出信息中就包含 QPS 指标。
3.TPS
TPS:Transaction Per Second,每秒事务数。
TPS参数MySQL原生没有提供,如果需要我们自己算,可以利用计算的公式:
TPS = (Com_commit + Com_rollback) / Seconds
这个公式有两个状态变量,分别代表提交次数和回滚次数,Seconds 就是我们定义的时间间隔。
二、TPCC测试关键性指标
TPCC-MySQL 由Percona基于TPCC规范开发的一套MySQL基准测试程序,我们使用这套工具来测试前面的三个重要指标。
1.TPCC工具安装及使用
具体的安装,可以看这这两篇博文 mysql压力测试工具tpcc-mysql安装测试使用,mysql性能测试-tpcc,TPCC更能模拟线上业务。
三、数据库参数配置优化
如果数据库参数配置合理,则可以大大的提高运行效率,即最大化利用系统资源。
1.连接相关参数
1.1 max_connections
max_connections:指定 MySQL 服务端最大并发连接数,值得范围从 1~10 万,默认值为151.
这个参数非常重要,因为它决定了同时最多能有多少个会话连接到 MySQL 服务。设定该参数时,根据数据库服务器的配置和性能,一般将参数值设置在 500~2000 都没太大的问题。
1.2 max_connect_errors
max_connect_errors:指定允许连接不成功的最大尝试次数,值得范围从 1~2^64 之间,在 5.6.6 版本默认值是 100。
一定不要忽视这个参数,如果尝试连接的错误数量超过