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的简单介绍以及进行资源限制的方式与方法的更多相关文章

  1. GlusterFS源代码解析 —— GlusterFS 简单介绍

    原文地址:http://blog.csdn.net/wangyuling1234567890/article/details/24564185 -- -- 本系列博客源代码是基于GlusterFS 3 ...

  2. 自动化工具之Appium工具简单介绍

    背景 自动化,性能测试,接口测试,开发平台等工作,到底测试的价值在哪里,其实价值来源不断充实与为大众服务,今天简单介绍ui小工具appium攻击. 简单介绍 Appium 是一个自动化测试开源工具,支 ...

  3. Android通过辅助功能实现抢微信红包原理简单介绍

    简书文章:https://www.jianshu.com/p/e1099a94b979 附抢红包开源项目地址,代码已全改为Kotlin了,已适配到最新微信7.0.5版本,如果对你有所帮助赏个star吧 ...

  4. 自己实现简单的AOP(二)引入Attribute 为方法指定增强对象

    话续前文 : 自己实现简单的AOP(一)简介 在前一篇文章中,对AOP的实现方式做了一个简单介绍.接下来,引入Attribute 为方法指定增强对象,由此实现一个简单的AOP. 注意:指定的是增强对象 ...

  5. WEKA简单介绍与资源汇总

    简单介绍 Weka是一个开源的数据挖掘软件,里面集成了很多经典的机器学习算法,在高校和科研机构中受到了广泛的应用. 具体的简单介绍和简单的使用请參考文档:<使用Weka进行数据挖掘>. 学 ...

  6. Linux的简单介绍和常用命令的介绍

    Linux的简单介绍和常用命令的介绍 本说明以Ubuntu系统为例 Ubuntu系统的安装自行百度,或者参考http://www.cnblogs.com/CoderJYF/p/6091068.html ...

  7. iOS-iOS开发简单介绍

    概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...

  8. iOS开发多线程篇—多线程简单介绍

    iOS开发多线程篇—多线程简单介绍 一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcod ...

  9. Android开发自学笔记(Android Studio)—4.界面编程与View组件简单介绍

    一.引言 Android应用开发最重要的一份内容就是界面的开发,无论你程序包含的内容多么优秀,如若没有一个良好的用户交互界面,最终也只是会被用户所遗弃.Android SDK提供了大量功能丰富的UI组 ...

  10. WeX5的简单介绍及UI的简单讲解

    WeX5的简单介绍及UI的简单讲解 (2016-01-13 14:49:05) 标签: it 分类: WeX5的初步自学 一.WeX5的简单讲解 1.WeX5是前端快速开发框架,可开发跨端运行应用.是 ...

随机推荐

  1. 什么是Sparse by default for crates.io

    当 Rust crate 发布到 crates.io 上时,可以启用"Sparse by default"特性,这意味着默认情况下,crate 不会包含所有依赖项在上传到 crat ...

  2. JUC同步锁原理源码解析六----Exchanger

    JUC同步锁原理源码解析六----Exchanger Exchanger Exchanger的来源 A synchronization point at which threads can pair ...

  3. Transaction rolled back because it has been marked as rollback-only大概问题及解决方法

    Transaction rolled back because it has been marked as rollback-only 问题:前几天遇到一个问题,代码没有抛出我想要的带自定义提示消息的 ...

  4. asp登录认证,记录最后一次登录时间,写入数据库代码

    最近开发了一个船员招聘网的程序,但是由于部分功能需要配合ASP代码才能使用,所以就发现以前写的这个asp登录认证代码,今天就将他公布一下. <!--#include file="con ...

  5. PowerDesigner反向导入表+PowerDesigner的ER图设计+PowerDesigner连接外键的线(版本16.5)

    使用PowerDesigner导入表+PowerDesigner画ER图+PowerDesigner设置外键 ps: ①ER图:就是PD中的 Physical Diagram 一.导入表,并设置备注为 ...

  6. Go 并发模型—Goroutines

    前言 Goroutines 是 Go 语言主要的并发原语.它看起来非常像线程,但是相比于线程它的创建和管理成本很低.Go 在运行时将 goroutine 有效地调度到真实的线程上,以避免浪费资源,因此 ...

  7. 了解web网络基础

    TCP/IP 协议:一种规则,规定不同计算机操作系统,硬件之间怎么通信的一种规则 像这样把互联网相关联的协议集合起来总称为TCP/IP协议. TCP/IP分层管理 按照组层次分为以下四层: 应用层:决 ...

  8. Docker安装及镜像加速器配置

    Centos7安装 卸载旧版本(如果安装过旧版本的话) yum remove docker docker-common docker-selinux docker-engine 安装Docker依赖环 ...

  9. Java服务刚启动时,一小波接口超时排查全过程

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明. 简介 我们组有一个流量较大的Java服务,每次发代码时,服务都会有一小波接口超时,之前简单分析过,发现这些超时的 ...

  10. 开源资产管理系统chemex

    目录 项目地址 部署 初始化环境 安装docker.Mariadb 配置数据库 docker 脚本 运行 项目地址 gitee项目链接 部署 参考链接:Centos7使用Docker部署Chemex资 ...