TiDB的简单介绍以及进行资源限制的方式与方法
TiDB的简单介绍以及进行资源限制的方式与方法
TiDB的简介
TiDB是一个分布式数据库, 简介为:
TiDB 是一个开源的分布式关系型数据库,它兼具了分布式数据库的水平扩展性和传统关系型数据库的 ACID 事务特性。
TiDB 最初由 PingCAP 公司开发,并于 2015 年开源发布。创始人自己开发发布过 codis redis分布式中间件. 在redis cluster发布之前非常流行.
TiDB 的设计目标是解决传统关系型数据库在大规模数据集、高并发读写和高可用性方面的挑战。
它采用了分布式架构,通过将数据水平分片存储在多个节点上,以支持数据的水平扩展。
同时,TiDB 采用了分布式事务协议以保证 ACID 事务的一致性和可靠性。
与传统数据库不同的是,TiDB 采用了分布式共享存储架构,其中包括了三个核心组件:
TiDB Server:负责接收和处理 SQL 请求,处理连接管理、查询优化、执行计划等任务。
TiKV:是一种分布式 Key-Value 存储引擎,负责存储数据和处理事务。它以水平分片的方式存储数据,并提供高度可用性和一致性的保证。
PD(Placement Driver):是 TiDB 中的元数据管理模块,负责集群的拓扑管理、数据的分片调度和故障自动处理等。
TiDB 还提供了一些高级特性,如分布式 SQL 查询优化器、自动化水平扩展、副本数据自动修复、在线数据迁移等。
此外,TiDB 还支持使用一些常见的 SQL 方言(如 MySQL、PostgreSQL)的语法和协议,以便现有应用可以无缝迁移到 TiDB 上。
总的来说,TiDB 是一个以分布式架构为基础的开源关系型数据库,具备可水平扩展、高性能、高可用性和 ACID 事务特性等优势,
适用于大规模数据存储和高并发读写的场景。
另外TiDB还有一个 TiFlash 的组件作为OLAP的扩展特性.
TiFlash fork了 ClickHouse 的代码, 并且与TiKV的raft 日志深度集成
可以自己从TiKV里面获取数据库变化数据, 然后从行存转换为列存.
TiDB的部署方式
TiDB建议较高的硬件配置进行部署.
并且TiDB-TiKV-TiFlash 不建议混布,会出现比较严重的资源争用.
建议至少3个PD, 三个TiDB, 三个TiKV 并且最小的副本数建议设置为3
不建议单副本运行 会出现很严重的数据丢失的风险.
TiFlash 可以部署单节点, 并且使用单副本.
TiFlash 的数据都是来自于TiKV, 副本丢失后可以从Tikv中再次读取
非常不建议 TiKV和TiFlash以及他们互相部署到同一块硬盘上面
建议至少部署到不同的硬盘, 一方面保证性能, 另一方面保证数据安全性.
混布时的资源限制
TiDB默认是单服务器单独部署一个role一个node
所以他会最大化的使用机器的资源
如果是混布, 会导致非常严重的资源争用,大查询时会立即导致系统宕机.
所以需要进行一下资源限制.
建议方式:
tiup cluster edit-config xxxxtidb
建议在
server_configs: 下面进行全局修改. 一个范例为:
server_configs:
tidb:
performance.max-procs: 32
tikv:
raftstore.apply-pool-size: 16
readpool.unified.max-thread-count: 16
storage.block-cache.capacity: 64G
pd:
replication.enable-placement-rules: true
replication.location-labels:
- host
tidb_dashboard: {}
tiflash:
performance.max-procs: 24
performance.memory-quota: 128G
结果也比较简单, 可以明确看出来
max-procs 限制CPU的多少
memory 后者是block-cache 限制内存的大小.
TiKV通过
raftstore.apply-pool-size: 16
readpool.unified.max-thread-count: 16
方式限制CPU的使用.
TiDB的简单介绍以及进行资源限制的方式与方法的更多相关文章
- GlusterFS源代码解析 —— GlusterFS 简单介绍
原文地址:http://blog.csdn.net/wangyuling1234567890/article/details/24564185 -- -- 本系列博客源代码是基于GlusterFS 3 ...
- 自动化工具之Appium工具简单介绍
背景 自动化,性能测试,接口测试,开发平台等工作,到底测试的价值在哪里,其实价值来源不断充实与为大众服务,今天简单介绍ui小工具appium攻击. 简单介绍 Appium 是一个自动化测试开源工具,支 ...
- Android通过辅助功能实现抢微信红包原理简单介绍
简书文章:https://www.jianshu.com/p/e1099a94b979 附抢红包开源项目地址,代码已全改为Kotlin了,已适配到最新微信7.0.5版本,如果对你有所帮助赏个star吧 ...
- 自己实现简单的AOP(二)引入Attribute 为方法指定增强对象
话续前文 : 自己实现简单的AOP(一)简介 在前一篇文章中,对AOP的实现方式做了一个简单介绍.接下来,引入Attribute 为方法指定增强对象,由此实现一个简单的AOP. 注意:指定的是增强对象 ...
- WEKA简单介绍与资源汇总
简单介绍 Weka是一个开源的数据挖掘软件,里面集成了很多经典的机器学习算法,在高校和科研机构中受到了广泛的应用. 具体的简单介绍和简单的使用请參考文档:<使用Weka进行数据挖掘>. 学 ...
- Linux的简单介绍和常用命令的介绍
Linux的简单介绍和常用命令的介绍 本说明以Ubuntu系统为例 Ubuntu系统的安装自行百度,或者参考http://www.cnblogs.com/CoderJYF/p/6091068.html ...
- iOS-iOS开发简单介绍
概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...
- iOS开发多线程篇—多线程简单介绍
iOS开发多线程篇—多线程简单介绍 一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcod ...
- Android开发自学笔记(Android Studio)—4.界面编程与View组件简单介绍
一.引言 Android应用开发最重要的一份内容就是界面的开发,无论你程序包含的内容多么优秀,如若没有一个良好的用户交互界面,最终也只是会被用户所遗弃.Android SDK提供了大量功能丰富的UI组 ...
- WeX5的简单介绍及UI的简单讲解
WeX5的简单介绍及UI的简单讲解 (2016-01-13 14:49:05) 标签: it 分类: WeX5的初步自学 一.WeX5的简单讲解 1.WeX5是前端快速开发框架,可开发跨端运行应用.是 ...
随机推荐
- WPF 入门笔记 - 05 - 依赖属性
如果预计中的不幸没有发生的话,我们就会收获意外的喜悦. --人生的智慧 - 叔本华 WPF属性系统 这一部分是中途加的,直接依赖属性有点迷糊,正好有了绑定的基础,理解起来还一些. WPF提供一组服务, ...
- .NET Core(C#)使用Titanium.Web.Proxy实现Http(s)代理服务器监控HTTP请求
关于Titanium.Web.Proxy详细信息可以去这里仔细看看,这里只记录简单用法 安装引用Titanium.Web.Proxy NuGet直接获取Titanium.Web.Proxy 使用 配置 ...
- Linux系统运维之zabbix配置tomcat监控
一.介绍 半年前安装的zabbix监控,当时配合异地的测试人员给A项目做压力测试,主要监控项目部署的几台服务器的内存.CPU信息,以及后来网络I/O等,也没考虑JVM:最近闲下来,想完善下监控,故留此 ...
- Docker安装MariaDB--九五小庞
1 docker search mariadb 搜索mariadb镜像(非必须) 2 docker pull mariadb 下载docker镜像(下载的是latest版本)想要下载指定版本执行的命令 ...
- Unity的IPreprocessBuild:深入解析与实用案例
Unity IPreprocessBuild Unity IPreprocessBuild是Unity引擎中的一个非常有用的功能,它可以让开发者在构建项目时自动执行一些操作.这个功能可以帮助开发者提高 ...
- Pychrm自定义代码块
Pycharm -> Perferences (command + ,)
- 安装mysql5.7.20,和遇到的一些错误及解决方案
下载: mysql-5.7.20是解压版免安装的,mysql-5.7.20下载地址:http://dev.mysql.com/downloads/mysql/ 2.安装 解压在你喜欢的位置 3.配置 ...
- 【转载】Linux虚拟化KVM-Qemu分析(七)之timer虚拟化
原文信息 作者:LoyenWang 出处:https://www.cnblogs.com/LoyenWang/ 公众号:LoyenWang 版权:本文版权归作者和博客园共有 转载:欢迎转载,但未经作者 ...
- dash构建多页应用
dash 构建多页面应用一种方案 本方案对dash官网多页面案例使用dash_bootstrap_components案例进行优化与测试,效果如下 项目代码结构如下 │ app.py │ ├─asse ...
- SAS - PROC FCMP
PROC FCMP 概述 PROC FCMP 可用于自定义函数(funcion)和子程序(subroutines).自定义函数和子程序的名称的最大长度为 32,长度超过 32 的名称虽然可以定义,但无 ...