前言 这个系列属于个人学习网易云课堂MySQL数据库工程师微专业的相关课程过程中的笔记,本篇为其“MySQL业务优化与设计”中的MySQL数据类型相关笔记。...正文 性能容量评估 分析线上业务场景 评估数据库服务器所需性能指标 预估可能成为瓶颈的服务器资源 帮助数据库性能调优 数据库服务器硬件性能指标 磁盘IO性能 内存容量...CPU 网络吞吐量 磁盘容量 数据库业务特点关键词 OLTP/OLAP类型 并发请求 读写比例 数据量 冷热数据比 数据分级存储 OLTP与OLAP T = Transaction 面向广大用户,高并发...多写场景相关资源:磁盘IO 数据量-总量 数据库服务器存储设备可扩容能力上限 根据估算的业务量,写入模式,分析数据增长量 预估一个硬件升级周期内数据库可存放数据的总量,上线时要留好余量 数据总量相关资源:磁盘容量...=127.0.0.1 --mysql-port=3306 --mysql-user=sys --mysql-password=netease --mysql-db=sbtest --max-requests
一、redis常用数据结构 做容量评估之前,有必要对redis常用数据结构有大概了解。...二、jemalloc内存分配规则 jemalloc是一种通用的内存管理方法,着重于减少内存碎片和支持可伸缩的并发性,我们部门的redis版本中就引入了jemalloc,做redis容量评估前必须对jemalloc...对于64位系统,一般chunk大小为4M,页大小为4K,内存分配的具体规则如下: 三、redis容量评估 redis容量评估模型根据key类型而有所不同。...大小 + val_SDS大小)×key个数 + bucket个数 ×指针大小 测试验证 string类型容量评估测试脚本如下: #!...zset类型内部同样包含两个dict结构,所以最终会有产生两种rehash,一种rehash基准是成员个数,另一种rehash基准是key个数,zset类型的容量评估模型为: 总内存消耗 = [(val_SDS
容量规划目标 在没有目标之前,不要进行容量规划,也没有办法进行容量规划。...Grafana只是一个指标观测工具,不能完全靠它去做容量评估,我们知道当你查询最近半小时的 QPS 时,分钟展示;但是你进行容量评估可能会查看连续多天的数据指标,这样的话单位就变成了天,如果里面有一个短暂的峰值...2、计算所需资源 既然资源评估,那就需要计算自己需要的资源,CPU、内存、磁盘;其中内存和磁盘使用都会存在一个固定趋势,根据现有指标相对更容易的计算出来。...下面我以计算 CPU 为例,说明下如何进行计算资源的评估。...3、采购硬件 硬件资源是软件运行过程中不可忽略的成本,只有根据上述数据评估清楚,到底需要购买多少硬件,才应该开始硬件的采购和安装过程。
但系统最终的承载能力,还是取决于它的容量。这篇文章,我想为大家介绍下容量评估和容量规划的相关知识。 理解容量 如何定义容量?...API; 订单服务的服务器配置是4C8G; 容量测试脚本要综合考虑4个API的流量配比和流量模型; CPU%≤40%,核心链路RT≤50ms下,测试结果就是单机容量; 容量评估 容量评估我在之前的文章《...性能测试从零开始实施指南——容量评估篇》中已做过详细介绍,这里不多做赘述。...关于容量评估,参考下面两张思维导图,更容易理解。...容量评估九步走流程图 容量评估职责内容划分 容量规划 容量规划的价值 互联网公司成本 人力成本; 硬件成本; 运营成本; 容量规划的价值 为性能优化提供参考; 提高资源使用率, 降低成本; 不断促进基础技术设施的建设和优化
压测目的: CDB复制模型选型 CDB容量规划参考 CDB现在支持类型复制类型比较多,我这里选择以下几种复制类型压测对比: MySQL 5.6[异步|半同步|增强半同步]复制,5.7异步复制(当时...=${DBIP} \ --mysql-port=${DBPORT} \ --mysql-db=wubx \ --mysql-user=wubx \ --mysql-password=‘XXXX' \ -...从这里看觉的CDB的MySQL 5.6增强半同步复制比MySQL5.7的异步复制性能还好。也可以说CDB的MySQL5.6优化的相当不错。(压测过程备节点延迟比较大) 4....基于这个测试,基本让我消除了CDB性能问题,对于容量规划只用考虑磁盘大小就行。所以不在继续压测。 5. 总结: 1. 对于复制选型: ?...容量规划 先考虑空间就行, 网卡流量,IO先不用考虑。 觉的有时想想腾讯做游戏基因在这里也是性能为王的一惯作风。 6.
集群能力评估 参考: 由于Ceph存储结构不同于物理硬件,所以影响其IOPS的因素主要有网络、副本数量、日志、OSD(硬盘)数量、OSD服务器数量、OSD IOPS等。
出现明显的性能拐点时,就找到了系统的性能瓶颈,摸到最大容量。 性能拐点的表现: 增大压力后,接口的QPS没有同比上升,但响应时间显著增大,譬如增大1倍+。
MySQL作为一款面向企业的数据库产品,必须具有能够处理高峰活动和数据容量增长的能力。...在进行容量规划时,架构师需要考虑因为用户的活动和数据增长所导致的资源使用变化,并需要考虑未来的促销活动或者其他预计的繁忙时期。...在MySQL容量规划的过程中,非常关键的一点是监视表的容量。 InnoDB的行和索引数据都保存在磁盘页中,页的默认大小为16KB。InnoDB表和索引由包含数据的叶页和包含页指针的非叶页组成。...例如, mysql> SELECT FILE_NAME,TOTAL_EXTENTS * EXTENT_SIZE as `size` -> FROM INFORMATION_SCHEMA.FILES ->...表的逻辑大小和物理大小,为制定基线,容量规划提供可测量的数值。
容量管理: 1、数据库大小估计 一种可靠的方式是 使用解压后的备份文件(必须是Xtrabackup的物理备份)来估算当前数据库的体积。...3、其它文件大小估计 3.1 MySQL在大的查询过程中,可能会产生巨量临时表。...容量预测 根据数据库的历史监控数据(zabbix 或 prometheus) ,我们可以大致预测数据文件的周增长量、binlog的周增长量 以及系统负载波动的趋势。...容量解决之道 1、历史数据归档 根据业务场景,按照时间归档,迁移历史数据到大容量廉价低速的磁盘。降低生产环境数据库体积和负载,较小的表体积,便于数据库备份和DDL操作。...http://www.jebriggs.com/blog/2010/07/mysql-storage-capacity-planning/
与之相对的,想正确的进行容量测试,对线上容量规划提供重要的参考依据,容量评估,就是我们在准备阶段需要做好的事情。如何做呢???...这篇文章简述下我在准备阶段,是如何开展容量评估工作以及遇到的一些问题,以及解决方案。 容量评估九步走——流程图 ?...:具体来说,比如MySQL集群中,不同业务库最近一小时的峰值QPS(需要结合数据采集的场景以及是否进行了分库分表、主从分离的配置); 2、服务容量:如果是一体式服务,则无须考虑业务划分;如果是微服务类型或...敲黑板:容量评估时,需考虑到Redis的实例配置、模式(哨兵/集群)、峰值QPS、存储容量、机器数量、可用区(容灾)!...八、执行容量测试 执行容量测试,应该是执行阶段要做的事情,由于容量测试测定的单机水位对容量评估和容量规划是承上启下的连接点,因此这里顺带提及一下。
不要因为遇到了问题,才考虑到容量评估的这个手段。所以,赵老师建议,可以先回到问题本身,优先把问题解决掉才是最重要,这样也最立竿见影。 第二,容量评估。冰冻三尺非一日之寒。...比如,电商做一次压测,大致的步骤会涉及模型评估,核心链路梳理,模型数据制作,单应用单机压测,单链路压测,资源扩容,全链路压测。然后再优化,这中间还要考虑压测时如果对生产环境造成影响。...里面还涉及工具、数据、模型评估等等,这些东西的是需要大量的经验、时间和实践积累起来的。 这样来看,回到第一条可能,会更切合实际得多。 第三,可以把容量评估作为长期建设目标去规划。...@右军: 容量评估:背后是找短板,提前预防,配置合适的机器数。 1: 先从各系统的性能短板走一波优化; 2: 全局认识主链路系统依赖,有条件的做线上压测,或者从模拟线上流量压测也行。...因为容量极限,容量不足,容量突增这些异常场景本身就是稳定性组要关注的,两者联合,各自工作量减半,目标一致,这事做成的概率更大。 终上,我最大的感受是震撼,赵老师10来分钟就能洋洋洒洒写下几大千字。
查看一个数据中所有表的相关信息: (1)可以在命令下使用show table status \G命令查看: (2)如果想知道MySQL数据库中每个表占用的空间、表记录的行数的话,可以打开MySQL的 information_schema...TABLE_SCHEMA : 数据库名 TABLE_NAME:表名 ENGINE:所使用的存储引擎 TABLES_ROWS:记录数 DATA_LENGTH:数据大小 INDEX_LENGTH:索引大小 其他字段请参考MySQL...desc, index_length desc; 3.查看指定数据库容量大小 例:查看mysql库容量大小 select table_schema as '数据库', sum(table_rows)..., 2)) as '索引容量(MB)' from information_schema.tables where table_schema='mysql'; 4.查看指定数据库各表容量大小 例:查看mysql...where table_schema='mysql' order by data_length desc, index_length desc; 参考:https://www.cnblogs.com/
查看一个数据中所有表的相关信息: (1)可以在命令下使用show table status \G命令查看: (2)如果想知道MySQL数据库中每个表占用的空间、表记录的行数的话,可以打开MySQL的 information_schema...数据库名 TABLE_NAME:表名 ENGINE:所使用的存储引擎 TABLES_ROWS:记录数 DATA_LENGTH:数据大小 INDEX_LENGTH:索引大小 其他字段请参考MySQL...desc, index_length desc; 3.查看指定数据库容量大小 例:查看mysql库容量大小 select table_schema as '数据库', sum(table_rows)..., 2)) as '索引容量(MB)' from information_schema.tables where table_schema='mysql'; 4.查看指定数据库各表容量大小 例:查看mysql...where table_schema='mysql' order by data_length desc, index_length desc; 参考:https://www.cnblogs.com/
在性能测试中,需要根据具体的性能需求和系统架构等情况,采用不同的测试策略,其中最常见的策略就有容量测试。这篇文章,就来聊聊容量测试以及容量规划的一些内容。。。 一、什么是容量?如何理解?...2、如何理解 ①、系统的容量(处理能力)是有限的; ②、容量是可度量的; 二、如何统计容量指标?...三、容量测试 容量测试是性能测试里的一种测试方法,它的目的就是测量系统的最大容量,为系统扩容,性能优化提供参考,节省成本投入,提高资源利用率。...,一般吞吐量和IO是比较关注的指标; 四、容量规划 1、为什么需要容量规划?...2、容量规划四步走 ①、业务流量预估阶段:通过分析历史数据以及实时的线上监控,预估未来某个时间点或者某个业务可能会有多少多少的流量冲击; ②、系统容量评估阶段:根据具体的业务场景,分析每个业务场景的流量配比
在MySQL中,可以通过配置max_binlog_size和expire_logs_days参数来控制二进制日志(binlog)的大小和保留期。...但是,要注意的是,max_binlog_size参数设置的是单个binlog文件的最大大小,而不是所有binlog文件的总容量。...当binlog文件的大小达到max_binlog_size指定的值时,MySQL会自动创建一个新的binlog文件。...过期的binlog文件将在每次二进制日志刷新或MySQL服务器启动时被自动删除。...] expire_logs_days = 7 -- 设置binlog文件的保留天数为7天 应用配置: 如果您在MySQL配置文件中修改了这些参数,需要重启MySQL服务器以使新的配置生效。
碰巧,老杨前两天发了一篇文章《【精品篇】_如何在不影响Oracle生产库性能的评估整库大小》,就介绍了一个数据泵非常方便的参数。...【引言】 最近碰到一个小问题:一TB级的Oracle生产库,因为要走数据迁移,需要先行评估整个库的迁移数据量大小,但又不得影响生产库运行性能。如何搞?...指定计算每张表使用磁盘空间的方法 ESTIMATE=[BLOCKS | STATISTICS] 1.BLOCKS - 通过块数和块大小计算 2.STATISTICS -每张表的统计信息计算 Expdp可计算导出数据大小容量...通过expdp的参数ESTIMATE_ONLY和ESTIMATE来评估导出的性能,ESTIMATE_ONLY仅作评估不会导出数据,通过ESTIMATE参数指定statistics和blocks参数来测试两者的差异...使用expdp评估库大小时,推荐使用ESTIMATE的默认方式blocks进行估算,原因很简单,估值按最大值估算申请空间更靠谱。
背景 系统上线后,要评估下系统容量+业务流量,可以避免系统资源浪费、防止系统资源不足导致系统不可用。...Tomcat流量模型概览 Tomcat的工作模式概览 Tomcat中Service的连接器工作模式概览 WHAT:如何评估Tomcat的最大容量 Tomcat同时处理的HTTP请求数: MIN
对于原生的DDL,目前有2种方法观测进度 方法1 查询ps库 在MySQL 5.7.6或者更高版本,能够通过 performance_schema 观察alter table的进度。...trx_state: ACTIVE trx_autocommit: NO pid: 26299 program_name: mysql
隆冬强: 我之前做大数据领域的,对于性能压测领域不熟悉,双十一活动扩容这个事情找各个应用的负责人评估一下容量就可以了吧,为什么还需要我们来做这个事情?...但是在分布式时代,情况往往不同,容量评估变得很难,解答这个问题之前,让我用曾经在阿里的经历讲一下容量规划这个事情,主要经历了以下四个重要阶段: image.png 01、经验+拍脑袋阶段 最开始Denali...于是开始引入商业的压测工具,想达到评估线上容量的目标:即通过性能环境的测试数据,来准确评估线上的容量情况。...收集线上访问日志汇总分析,在短时间回放访问请求,通过响应时间和线上机器负载,准确的评估线上的容量情况。...04、全链路压测阶段 第三阶段的线上只读压测能力虽说已经有了很大的提升,但是仍不能彻底的解决双十一容量精准评估问题。
如何才能评估索引创建的合理呢?今天我们给出其中一个评估指标:Cardinality 在MySQL数据库中,如何查看表的索引情况呢?...Index_comment: Visible: YES Expression: NULL2 rows in set (0.01 sec) 上面有一个属性Cardinality,可以通过观察它来评估索引是否合理...它会估计索引中不重复记录,如果这个相对值很小,可能就要评估索引是否有意义。 那什么是Cardinality值?...建立索引的前提是列中的数据是高选择性的 MySQL如何来统计Cardinality信息呢?...MySQL数据库中有各种不同的存储引擎,而每种存储引擎对于B+树的实现方式各不相同,所以对于Cardinality的统计是放在存储引擎层进行的。
领取专属 10元无门槛券
手把手带您无忧上云