Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
a9bbc662
T
TDengine
项目概览
慢慢CG
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
a9bbc662
编写于
3月 11, 2021
作者:
E
Elias Soong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TD-2639] <docs>: clarify bits & bytes in memory requirement.
上级
1aa5fa90
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
18 addition
and
18 deletion
+18
-18
documentation20/cn/11.administrator/docs.md
documentation20/cn/11.administrator/docs.md
+18
-18
未找到文件。
documentation20/cn/11.administrator/docs.md
浏览文件 @
a9bbc662
...
@@ -2,52 +2,52 @@
...
@@ -2,52 +2,52 @@
## <a class="anchor" id="planning"></a>容量规划
## <a class="anchor" id="planning"></a>容量规划
使用
TDengine来搭建一个物联网大数据平台,计算资源、存储资源需要根据业务场景进行规划。下面分别讨论系统运行所需要的内存、CPU
以及硬盘空间。
使用
TDengine 来搭建一个物联网大数据平台,计算资源、存储资源需要根据业务场景进行规划。下面分别讨论系统运行所需要的内存、CPU
以及硬盘空间。
### 内存需求
### 内存需求
每个
DB可以创建固定数目的vgroup,默认与CPU核数相同,可通过maxVgroupsPerDb配置;vgroup中的每个副本会是一个vnode;每个vnode会占用固定大小的内存(大小与数据库的配置参数blocks和cache有关);每个Table会占用与标签总长度有关的内存;此外,系统会有一些固定的内存开销。因此,每个DB
需要的系统内存可通过如下公式计算:
每个
DB 可以创建固定数目的 vgroup,默认与 CPU 核数相同,可通过 maxVgroupsPerDb 配置;vgroup 中的每个副本会是一个 vnode;每个 vnode 会占用固定大小的内存(大小与数据库的配置参数 blocks 和 cache 有关);每个 Table 会占用与标签总长度有关的内存;此外,系统会有一些固定的内存开销。因此,每个 DB
需要的系统内存可通过如下公式计算:
```
```
Memory Size = maxVgroupsPerDb * (blocks * cache + 10M
b) + numOfTables * (tagSizePerTable + 0.5Kb
)
Memory Size = maxVgroupsPerDb * (blocks * cache + 10M
B) + numOfTables * (tagSizePerTable + 0.5KB
)
```
```
示例:假设是
4核机器,cache是缺省大小16M, blocks是缺省值6,假设有10万张表,标签总长度是256字节,则总的内存需求为:4
\*
(16
\*
6+10) + 100000
\*
(0.25+0.5)/
1000 = 499M。
示例:假设是
4 核机器,cache 是缺省大小 16M, blocks 是缺省值 6,假设有 10 万张表,标签总长度是 256 字节,则总的内存需求为:4
\*
(16
\*
6 + 10) + 100000
\*
(0.25 + 0.5) /
1000 = 499M。
实际运行的系统往往会根据数据特点的不同,将数据存放在不同的
DB
里。因此做规划时,也需要考虑。
实际运行的系统往往会根据数据特点的不同,将数据存放在不同的
DB
里。因此做规划时,也需要考虑。
如果内存充裕,可以加大
Blocks
的配置,这样更多数据将保存在内存里,提高查询速度。
如果内存充裕,可以加大
Blocks
的配置,这样更多数据将保存在内存里,提高查询速度。
### CPU需求
### CPU
需求
CPU的需求取决于如下两方面:
CPU
的需求取决于如下两方面:
*
__数据插入__ TDengine
单核每秒能至少处理一万个插入请求。每个插入请求可以带多条记录,一次插入一条记录与插入10条记录,消耗的计算资源差别很小。因此每次插入,条数越大,插入效率越高。如果一个插入请求带200条以上记录,单核就能达到每秒插入100
万条记录的速度。但对前端数据采集的要求越高,因为需要缓存记录,然后一批插入。
*
__数据插入__ TDengine
单核每秒能至少处理一万个插入请求。每个插入请求可以带多条记录,一次插入一条记录与插入 10 条记录,消耗的计算资源差别很小。因此每次插入,条数越大,插入效率越高。如果一个插入请求带 200 条以上记录,单核就能达到每秒插入 100
万条记录的速度。但对前端数据采集的要求越高,因为需要缓存记录,然后一批插入。
*
__查询需求__ TDengine提供高效的查询,但是每个场景的查询差异很大,查询频次变化也很大,难以给出客观数字。需要用户针对自己的场景,写一些查询语句,才能确定。
*
__查询需求__ TDengine
提供高效的查询,但是每个场景的查询差异很大,查询频次变化也很大,难以给出客观数字。需要用户针对自己的场景,写一些查询语句,才能确定。
因此仅对数据插入而言,CPU
是可以估算出来的,但查询所耗的计算资源无法估算。在实际运营过程中,不建议CPU使用率超过
50%,超过后,需要增加新的节点,以获得更多计算资源。
因此仅对数据插入而言,CPU
是可以估算出来的,但查询所耗的计算资源无法估算。在实际运营过程中,不建议 CPU 使用率超过
50%,超过后,需要增加新的节点,以获得更多计算资源。
### 存储需求
### 存储需求
TDengine
相对于通用数据库,有超高的压缩比,在绝大多数场景下,TDengine的压缩比不会低于5倍,有的场合,压缩比可达到10
倍以上,取决于实际场景的数据特征。压缩前的原始数据大小可通过如下方式计算:
TDengine
相对于通用数据库,有超高的压缩比,在绝大多数场景下,TDengine 的压缩比不会低于 5 倍,有的场合,压缩比可达到 10
倍以上,取决于实际场景的数据特征。压缩前的原始数据大小可通过如下方式计算:
```
```
Raw DataSize = numOfTables * rowSizePerTable * rowsPerTable
Raw DataSize = numOfTables * rowSizePerTable * rowsPerTable
```
```
示例:1000
万台智能电表,每台电表每15分钟采集一次数据,每次采集的数据128字节,那么一年的原始数据量是:10000000
\*
128
\*
24
\*
60/15
\*
365 = 44.8512T。TDengine大概需要消耗44.851/5=8.97024T
空间。
示例:1000
万台智能电表,每台电表每 15 分钟采集一次数据,每次采集的数据 128 字节,那么一年的原始数据量是:10000000
\*
128
\*
24
\*
60 / 15
\*
365 = 44.8512T。TDengine大概需要消耗 44.851 / 5 = 8.97024T
空间。
用户可以通过参数
keep,设置数据在磁盘中的最大保存时长。为进一步减少存储成本,TDengine
还提供多级存储,最冷的数据可以存放在最廉价的存储介质上,应用的访问不用做任何调整,只是读取速度降低了。
用户可以通过参数
keep,设置数据在磁盘中的最大保存时长。为进一步减少存储成本,TDengine
还提供多级存储,最冷的数据可以存放在最廉价的存储介质上,应用的访问不用做任何调整,只是读取速度降低了。
为提高速度,可以配置多块硬盘,这样可以并发写入或读取数据。需要提醒的是,TDengine采取多副本的方式提供数据的高可靠,因此不再需要采用昂贵的磁盘阵列。
为提高速度,可以配置多块硬盘,这样可以并发写入或读取数据。需要提醒的是,TDengine
采取多副本的方式提供数据的高可靠,因此不再需要采用昂贵的磁盘阵列。
### 物理机或虚拟机台数
### 物理机或虚拟机台数
根据上面的内存、CPU、存储的预估,就可以知道整个系统需要多少核、多少内存、多少存储空间。如果数据副本数不为1,总需求量需要再乘以副本数。
根据上面的内存、CPU、存储的预估,就可以知道整个系统需要多少核、多少内存、多少存储空间。如果数据副本数不为
1,总需求量需要再乘以副本数。
因为
TDengine
具有很好的水平扩展能力,根据总量,再根据单个物理机或虚拟机的资源,就可以轻松决定需要购置多少台物理机或虚拟机了。
因为
TDengine
具有很好的水平扩展能力,根据总量,再根据单个物理机或虚拟机的资源,就可以轻松决定需要购置多少台物理机或虚拟机了。
**立即计算CPU、内存、存储,请参见:[资源估算方法](https://www.taosdata.com/config/config.html)**
**立即计算
CPU、内存、存储,请参见:[资源估算方法](https://www.taosdata.com/config/config.html)**
## <a class="anchor" id="tolerance"></a>容错和灾备
## <a class="anchor" id="tolerance"></a>容错和灾备
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录