前言 这个系列属于个人学习网易云课堂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倍+。
其中流量模型如何评估?涉及到缓存的场景如何压测?压测场景的流量配比该如何配置?线上的容量评估规划又该如何进行? 1、流量模型 未上线的系统因为没有真实的用户业务数据,因此无法得到较为准确的流量模型。...但如果没有流量模型,则压测得到的系统性能指标又不具备太大的参考价值,因此流量模型还是需要进行评估的,如何评估呢? 首先看系统的上线计划,比如上线后是全量推送还是灰度。...4、容量评估规划 很多测试同学对容量评估规划的理解有一定误区,实际上容量评估和容量规划,是两件事。 在实际的性能测试场景中,容量评估规划的步骤是:容量评估-压测验证-线上监控-调整优化。...其中最后一步,才是所谓的线上容量规划。 所谓容量评估,就是ABCD不同业务以及对应的应用和中间件(Redis/MQ)的大致数值。...这样才算是完成了容量规划。 容量规划是一个持续性渐进的过程,而非一锤子买卖。
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/
在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服务器以使新的配置生效。
在性能测试中,需要根据具体的性能需求和系统架构等情况,采用不同的测试策略,其中最常见的策略就有容量测试。这篇文章,就来聊聊容量测试以及容量规划的一些内容。。。 一、什么是容量?如何理解?...2、如何理解 ①、系统的容量(处理能力)是有限的; ②、容量是可度量的; 二、如何统计容量指标?...三、容量测试 容量测试是性能测试里的一种测试方法,它的目的就是测量系统的最大容量,为系统扩容,性能优化提供参考,节省成本投入,提高资源利用率。...,一般吞吐量和IO是比较关注的指标; 四、容量规划 1、为什么需要容量规划?...2、容量规划四步走 ①、业务流量预估阶段:通过分析历史数据以及实时的线上监控,预估未来某个时间点或者某个业务可能会有多少多少的流量冲击; ②、系统容量评估阶段:根据具体的业务场景,分析每个业务场景的流量配比
对于原生的DDL,目前有2种方法观测进度 方法1 查询ps库 在MySQL 5.7.6或者更高版本,能够通过 performance_schema 观察alter table的进度。...trx_state: ACTIVE trx_autocommit: NO pid: 26299 program_name: mysql
背景 系统上线后,要评估下系统容量+业务流量,可以避免系统资源浪费、防止系统资源不足导致系统不可用。...Tomcat流量模型概览 Tomcat的工作模式概览 Tomcat中Service的连接器工作模式概览 WHAT:如何评估Tomcat的最大容量 Tomcat同时处理的HTTP请求数: MIN
碰巧,老杨前两天发了一篇文章《【精品篇】_如何在不影响Oracle生产库性能的评估整库大小》,就介绍了一个数据泵非常方便的参数。...【引言】 最近碰到一个小问题:一TB级的Oracle生产库,因为要走数据迁移,需要先行评估整个库的迁移数据量大小,但又不得影响生产库运行性能。如何搞?...指定计算每张表使用磁盘空间的方法 ESTIMATE=[BLOCKS | STATISTICS] 1.BLOCKS - 通过块数和块大小计算 2.STATISTICS -每张表的统计信息计算 Expdp可计算导出数据大小容量...通过expdp的参数ESTIMATE_ONLY和ESTIMATE来评估导出的性能,ESTIMATE_ONLY仅作评估不会导出数据,通过ESTIMATE参数指定statistics和blocks参数来测试两者的差异...使用expdp评估库大小时,推荐使用ESTIMATE的默认方式blocks进行估算,原因很简单,估值按最大值估算申请空间更靠谱。
领取专属 10元无门槛券
手把手带您无忧上云