sysbench

TiDB 在金融场景里面那些不得不说的事

心不动则不痛 提交于 2020-04-21 20:20:46
今年春天突如其来的新冠病毒疫情,在一定程度上改变了人们的生活、工作习惯,给各行各业带来了巨大影响。银行也难逃“池鱼之殃”:传统商业银行的盈利能力、资产和信贷规模都受到了一定程度的影响。疫情期间,人们对线上银行服务的需求激增,原本深受诟病传统银行的技术架构,又一次被推上了风口浪尖。有”危“就有“机”,疫情期间,北银金科云计算应用部副总经理 & 金融业务及解决方案专家于振华老师做客 TiDB 直播间,分享了 TiDB 在金融场景的应用,以下为直播文字回顾。 本文以银行业数据库架构演进为契机,结合商业银行的核心业务,探讨未来商业银行的技术发展趋势和机遇。 第一部分:背景介绍 我发现随着时间的推进,金融科技工作者感觉越来越累,因为技术变化是一直存在的,金融科技发展有一个非常快的加速度,并且我觉得未来应该也会延续这种趋势。下面这张图,如果是你能够站上这条曲线,能够追上科技的发展,那就能够利用科技的力量来赋能业务,这就是为什么我们现在这么累,为什么大家感觉科技工作者的节奏越来越快的理解。 具体谈到在业务层面,第一是互联网的业务爆发增长,对系统提出了更高的要求,以往没有互联网的时候,业务可能是恒定的量,有了互联网,有了线上化的模式,需要系统架构有一定的可扩展能力。第二是我们现在做互联网金融产品,就是要快速上线,快速适应市场的行情,具备快速交付能力。第三就是要做到自主可控,做到金融安全可以把控

十年磨一剑,阿里云RDS MySQL和AWS RDS谁的性能更胜一筹?

旧巷老猫 提交于 2020-04-14 08:45:05
【今日推荐】:为什么一到面试就懵逼!>>> MySQL代表了开源数据库的快速发展。 从2004年前后的Wiki、WordPress等轻量级Web 2.0应用起步,到2010年阿里巴巴在电商及支付场景大规模使用MySQL数据库,再到2012年开始阿里云RDS for MySQL为成千上万家客户提供可靠的关系数据库服务,阿里云RDS积累了来自内外部功能、性能、安全方面的众多需求,打造了面向企业场景的AliSQL分支,包含了丰富企业级数据库特性: DynamicThreadPool(DTP) :在内核中动态管理数据库线程池,通过有限资源持续支撑大量创建数据库连接请求,维持高效稳定的请求处理能力。 IndexMutexTuning(IMT) :通过IMT优化大大降低索引节点分裂成本,大大提升类TPCC场景处理能力,在全内存的测试中,单机达到了39W的TpmC,相对于原生版本提升35-50%不等。 TDE&SM4: 全新优化的TDE数据加密,并且支持国产加密算法SM4。 PerformanceInsight :针对数据库SQL性能扩展多方面信息,包括表统计信息、索引统计信息、SQL单次性能数据、IO统计信息和关键性能数据输出等。 AsyncFilePurge :优化大表删除,有效降低系统IO抖动影响。 SlowLogRotate: 对慢日志设计切换机制,可有效降低大量慢日志造成的不稳定影响。

OS sysbench压力测试

旧街凉风 提交于 2020-03-31 17:29:45
环境 OS: centos7.x sysbench安装 1. 安装阿里云 yum 源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 2. 安装sysbench工具 yum -y install sysbench 3. 查看版本 sysbench --version CPU测试 sysbench cpu --cpu-max-prime=20000 run sysbench cpu --cpu-max-prime=20000 --threads=12 --events=10000 --debug=on run memory测试 sysbench --threads=12 --events=10000 memory --memory-block-size=8K --memory-total-size=100G --memory-access-mode=seq run 文件IO测试 1.创建文件 sysbench --threads=12 --events=10000 fileio --file-total-size=1G --file-test-mode=rndrw prepare 2.测试文件读写 sysbench --threads=12 --events

MySQL-sysbench

偶尔善良 提交于 2020-03-25 17:07:54
1. 源码编译安装 RHEL/CentOS yum -y install make automake libtool pkgconfig libaio-devel # For MySQL support, replace with mysql-devel on RHEL/CentOS 5 yum -y install mariadb-devel openssl-devel # For PostgreSQL support yum -y install postgresql-devel ----------------------------------------------------------------------------- ./autogen.sh $(which mysql_config) && $(which pg_config) && ./configure --prefix=/ups/app/sysbench --with-mysql --with-pgsql ./configure --prefix=/ups/app/sysbench --with-mysql --with-pgsql --with-pgsql-includes=/ups/app/postgresql/pgsql-12/include --with-pgsql-libs=/ups/app

使用MySQL SQL线程回放Binlog实现恢复

Deadly 提交于 2020-03-17 11:48:34
目录 1. 需求部分 1.1 基于MySQL复制同步特性,尝试使用Replication的SQL线程来回放binlog,可基于以下逻辑模拟场景 1.2 基于题目1.1,考虑是否可以做到以下场景的恢复 2.操作部分 2.1 环境准备及故障模拟 2.2 数据恢复 2.3 只恢复单个库的数据 2.4 只恢复单个表的数据 2.5 恢复到指定的GTID或position点 2.6 提升恢复效率的参数优化 2.7 使用复制线程与使用mysqlbinlog恢复的效率对比 2.8 总结 1. 需求部分 1.1 基于MySQL复制同步特性,尝试使用Replication的SQL线程来回放binlog,可基于以下逻辑模拟场景 做全量xtrabackup备份模拟日常备份 执行sysbench压测4张表,20个线程,压测10分钟,模拟大量binlog 删除实例模拟数据库被误删除或硬件故障(binlog需要保留) 使用xtrabackup恢复全量备份 使用MySQL Replication SQL线程回放binlog(提示:恢复前需要将relay_log_recocery参数设置为0) 1.2 基于题目1.1,考虑是否可以做到以下场景的恢复 只恢复单个库的数据 只恢复单个表的数据 将数据恢复到指定的GTID或者position点(如恢复到误操作drop之前的GTID) 是否可以通过参数调整提升回放效率

从原理到优化,深入浅出数据库索引

白昼怎懂夜的黑 提交于 2020-02-27 12:24:17
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。 数据库查询是数据库的最主要功能之一,我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化,这篇文章对索引做一个系统的梳理,希望对大家有帮助。 一、MySQL有哪些索引类型 索引的分类可以从多个角度进行,下面分别从数据结构,物理存储和业务逻辑三个维度进行划分。 1、从数据结构角度 (1)B+树索引(O(log(n))) 关于B+树索引,后面会深入解析 (2)hash索引 仅仅能满足"=","IN"和"<=>"查询,不能使用范围查询 其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引 只有Memory存储引擎显示支持hash索引 (3)FULLTEXT索引 现在MyISAM和InnoDB引擎都支持了 (4)R-Tree索引 用于对GIS数据类型创建SPATIAL索引 2、从物理存储角度 (1)聚集索引(clustered index) 正文内容按照一个特定维度排序存储,这个特定的维度就是聚集索引; Innodb存储引擎中行记录就是按照聚集索引维度顺序存储的,Innodb的表也称为索引表;因为行记录只能按照一个维度进行排序

mysql benchmark基准测试

青春壹個敷衍的年華 提交于 2020-02-27 01:26:17
git项目地址: https://github.com/akopytov/sysbench 利用sysbench很容易对mysql做性能基准测试(当然这个工具很强大,除了测试主流数据库性能,还能测试其它方面,详情自己看官网项目文档) mac上的用法: 一、安装 brew install sysbench 二、先在mysql上创建一个专门的测试数据库,比如test 三、利用sysbench先生成测试数据 sysbench --test=oltp --oltp-table-size=5000000 --oltp-table-name=t_test \ --mysql-table-engine=innodb \ --mysql-host=localhost \ --mysql-db=test \ --mysql-user=root \ --mysql-password=*** \ prepare 上面这一堆的意思,是在本机localhost的test数据库的t_test中创建500万条测试数据,表的数据库引擎为innodb. tips: 如果想知道还有哪些参数可用,可输入命令 sysbench --test=oltp help centos上如果用yum install sysbench安装的话,运行时可能会出现 FATAL: no database driver specified

开源多线程性能测试工具-sysbench

旧城冷巷雨未停 提交于 2020-01-15 16:09:09
sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。数据库目前支持 MySQL/Oracle/PostgreSQL。本文主要演示Mysql测试的用法,后续准备利用sysbench来对CPU/内存/IO进行一系 列的测试。具体的一些参数设置,需要根据不同的测试要求来进行调整。 Sysbench简介 sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同参数环境下的系统或数据库的负载情况。 本文主要学习使用sysbench来测试linux下mysql数据库的性能负载情况。 sysbench主要支持以下几种测试模式: CPU运算性能 磁盘IO性能 调度程序性能 内存分配及传输速度 POSIX线程性能 数据库性能(OLTP基准测试) 目前sysbench主要支持 Mysql,Drizzle,PgSQL,Oracle等几种数据库。 一、 下载sysbench源码包及mysql数据库 1. 目前sysbench代码托管在launchpad上,项目地址: https://github.com/akopytov/sysbench,下载方式: 2. MySQL官方下载地址:http://dev.mysql.com/downloads/mysql/,下载方式: 二、编译安装 1. Mysql数据库安装:

关于MySQL的基准测试

痴心易碎 提交于 2020-01-13 00:15:03
什么是基准测试 当我们对数据库进行优化后,只有进行测量系统性能才能知道优化是否有效,这种测量的方式就是基准测试。基准测试的定义如下: 基准测试是一种测量和评估软件性能指标的活动用于建立某个时刻的性能基准,以便当系统发生软/硬件变化时,重新进行基准测试以评估变化对性能的影响 我们可以这样认为: 基准测试是针对系统设置的一种压力测试,可以用来观察系统在不同压力下的行为。评估系统的容量,观察系统如何处理不同的数据。 但是基于测试不等同于压力测试: 基于测试:直接、简单、易于比较,用于评估服务器的处理能力。基准测试可能不关心业务逻辑,所使用的查询和业务的真实性可以和业务环节没有关系 压力测试:对真实的业务数据进行测试,获得真实系统所能承受的压力。压力测试需要针对不同的主题,所使用的数据和查询也是真实用到的 对MySQL进行基准测试的目的: 1、建立MySQL服务器的性能基准线,确定当前MySQL服务器的运行情况 2、模拟比当前系统更高的负载,以找出系统的扩展瓶颈。增加数据库的并发,观察QPS、TPS的变化,以确定并发量与性能最优的关系 3、测试不同的硬件、软件和操作系统配置 4、证明新的硬件设备是否配置正确 如何进行基准测试 通常来说,基准测试有两种方式: 1、对整个系统进行基准测试:从系统的入口进行测试(网站Web前端,手机APP前端) 优点:能够测试整个系统的性能,包括web服务器缓存

sysbench 压力测试

本小妞迷上赌 提交于 2020-01-07 19:45:29
sysbench支持以下几种测试模式: 1、CPU运算性能 2、磁盘IO性能 3、调度程序性能 4、内存分配及传输速度 5、POSIX线程性能 6、数据库性能(OLTP基准测试) sysbench版本: [root@127-0-0-1 sysbench]# /u01/opt/sysbench/bin/sysbench --version sysbench 1.1.0 CPU测试: [root@127-0-0-1 sysbench]# /u01/opt/sysbench/bin/sysbench cpu --cpu-max-prime=10000 run sysbench 1.1.0 (using bundled LuaJIT 2.1.0-beta3) Running the test with following options: Number of threads: 1 Initializing random number generator from current time Prime numbers limit: 10000 Initializing worker threads... Threads started! CPU speed: events per second: 658.31 Throughput: events/s (eps): 658.3125 time