专栏首页李俊飞的专栏数据库性能评测:整体性能对比
原创

数据库性能评测:整体性能对比

导语

随着版本升级,关系型数据库和缓存数据库整体性能比之前都有大幅度的提升,衡量数据库性能的三个重要指标是:数据库吞吐量(QPS)、延迟时长(Latency)和稳定性,以下从这三个方面对几种数据库进行了对比测试。

一、性能测试报告与分析

测试1-3是在TS90服务器上的测试结果,测试4对比数据库在TS80和TS90上性能。

1、各数据库的峰值吞吐量对比

结果分析: 1) 在典型业务模式下(SELECT:UPDATE=95:5),MySQL和MongoDB差不多,QPS的峰值能到每秒28万左右,Redis为9.6万; 2) 数据写入速度方面,MongoDB的QPS在每秒30万以上,Redis为4.6万,MySQL 2.3万。

2、不同业务模式的峰值吞吐量

注:横轴为业务模式,100:0表示SELECT与UPDATE比例为100比0,其他类似;纵轴为QPS。

结果分析: 1) MySQL和MongoDB数据库,峰值QPS随写比例的提高逐渐下降,Redis相反,各种业务模式的峰值QPS见上图。

3、典型业务模式,不同并发压力的数据库性能

注:横轴为并发数;左侧曲线图的纵轴为QPS,右侧曲线图的纵轴为延迟时间。

结果分析:

1) MySQL和MongoDB在100个并发时吞吐量达到峰值,平均延迟随并发度增加基本呈线性趋势; 2) MongoDB并发超过100后,QPS下降很快,跟客户端驱动的连接池默认配置100个连接有关,增加测试客户端或调大连接池,QPS还可以更高。

4、TS80和TS90服务器性能对比

结果分析: 1) 典型业务压力下,MySQL和MongoDB在TS90的吞吐量是TS80的2倍,Redis变化不大; 2) 对于写入测试,MongoDB在TS90的写入速度是TS80的1.5倍,MySQL和Redis变化不大。

二、测试环境

1、硬件环境

设备型号

配置描述

CPU型号

TS80

2个6核CPU,64G内存,12*480G SSD,1*80G SSD,万兆网卡

E5-2620v3

TS90

2个12核CPU,256G内存,12*800G SSD,万兆网卡

E5-2670v3

2、软件环境

测设设备

数据库版本

TS80_1, TS80_2

MySQL 5.6.35,Redis 3.2.6,MongoDB 3.4.1

TS90_1, TS90_2

MySQL 5.6.35,Redis 3.2.6,MongoDB 3.4.1

3、数据库参数配置

数据库

参数

MySQL

binlog_format = mixedbinlog_cache_size = 2Mmax_binlog_cache_size = 4Gkey_buffer_size = 2M sort_buffer_size = 2Mread_buffer_size = 2Mread_rnd_buffer_size = 16Mjoin_buffer_size = 2Mthread_cache_size = 1024query_cache_size = 1Mquery_cache_limit = 1Mquery_cache_min_res_unit = 2ktable_open_cache = 2048open_files_limit = 65535back_log = 3000max_connections = 4000max_user_connections = 2500max_connect_errors = 100max_allowed_packet = 512Mthread_stack = 192kdefault-storage-engine = INNODBtransaction_isolation = READ-COMMITTEDtmp_table_size = 16Mmax_heap_table_size = 64Mbulk_insert_buffer_size = 64Mlong_query_time = 0.5slow_query_log = onskip-name-resolveinnodb_buffer_pool_size = 40Ginnodb_data_file_path = ibdata1:2G:autoextendinnodb_file_io_threads = 24innodb_purge_threads = 12innodb_read_io_threads = 24innodb_write_io_threads = 24innodb_thread_concurrency = 24innodb_buffer_pool_instances = 8innodb_flush_log_at_trx_commit= 1innodb_log_buffer_size = 16Minnodb_log_file_size = 2Ginnodb_log_files_in_group = 2innodb_max_dirty_pages_pct = 75innodb_lock_wait_timeout = 50innodb_file_per_table = 1

MongoDB

journal

三、测试方法

  1. 每个测试的硬件环境和数据量基本一致,数据库都按单实例方式部署。各数据库都包含单张表(10个字段),1000万条记录,每条记录长度1KB。
  2. 测试工具是YCSB(Yahoo! Cloud Serving Benchmark详细介绍见这里),使用YCSB的不同workload压力配置模版,模拟以下业务场景组合,对数据库进行压测。 读写比例:95:5 50:50 100:0 0:100,读写对应为SELECT:UPDATE操作 并发线程:10 50 100 150 300 500 1000
  3. 测试前预热数据,避免缓存数据加载引起的性能降低。
  4. 测试数据库部署为单实例,测试客户端部署一个YCSB实例,YCSB发起多个并发线程对数据库进行压力测试。力测试。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 3D XPoint 存储性能评测(1)

    Intel 的 3D XPoint 号称结合 DRAM 和 NAND 两种存储芯片优点,性能千倍于闪存而且数据是持久的。此次实测对比一下 3D XPoint 和...

    李俊飞
  • 【每日算法Day 105】打家劫舍第二弹:看好你的电瓶车!

    往期回顾:打家劫舍 I : 【每日算法Day 104】偷电瓶的周某今天放出来了,还不赶紧做这道题防范一下![2]

    godweiyang
  • 【cf842C】 Ilya And The Tree(dfs、枚举因子)

    g是从根到当前点允许修改的最大gcd,gs为不修改的最大gcd。枚举当前点的因子,更新路径上每个因子出现次数,回溯时减去。并用这个因子更新答案。另外当前点修改为...

    饶文津
  • DSU_Exercise

    AngelNH
  • 原 初学算法-基于最小堆的优先级队列C++

    不高不富不帅的陈政_
  • Codeforces #576 div 2 ABCD

    用户2965768
  • 【Top K】问题的多种解法:冒泡排序 & 快速排序 & 优先队列 ...

    这是 LeetCode 上的「703. 数据流中的第 K 大元素」,难度为 「Easy」。

    宫水三叶的刷题日记
  • Leetcode 63 Unique Paths II

    Follow up for "Unique Paths": Now consider if some obstacles are added to the ...

    triplebee
  • 【面试高频系列】Top K 问题的多种解法:冒泡排序 & 快速排序 & 优先队列 ...

    这是 LeetCode 上的「703. 数据流中的第 K 大元素」,难度为 「Easy」。

    宫水三叶的刷题日记
  • Manthan, Codefest 18 B. Reach Median(思维)

    题目链接:http://codeforces.com/contest/1037/problem/B

    Ch_Zaqdt

扫码关注云+社区

领取腾讯云代金券