六月婷婷AV,国产偷窥猎奇福利二区,日韩三级片。,好吊色网站,日韩成人中文在线视频,国产亚洲午夜啪啪,亚洲欧美另类国产精品,国产成人av1,任你艹在线观看

創(chuàng)建數(shù)據(jù)表時(shí)提示more dnodes are needed

問題描述

TDengine Database 的客戶提出的問題是:服務(wù)器配置是48G總節(jié)點(diǎn)50個(gè),創(chuàng)建一個(gè)數(shù)據(jù)庫和一個(gè)超級(jí)表,在超級(jí)表下面現(xiàn)在有45000個(gè)子表,節(jié)點(diǎn)使用數(shù)量為46個(gè),如果子表再增加的話,只能加配置了嗎?

創(chuàng)建數(shù)據(jù)表時(shí)提示more dnodes are needed - TDengine Database 時(shí)序數(shù)據(jù)庫

問題分析

當(dāng)出現(xiàn)more dnodes are needed的出錯(cuò)信息時(shí),表示沒有更多的vnode用于創(chuàng)建表,這種情況有三種原因:

  • 硬盤空間不足,導(dǎo)致無法創(chuàng)建新的vnode
  • 硬盤沒有寫權(quán)限,導(dǎo)致無法創(chuàng)建新的vnode
  • 當(dāng)前機(jī)器配置支持的vnode數(shù)目已經(jīng)達(dá)到上限

前兩種情況很好解釋,如果是第三種原因,怎么在不改變機(jī)器配置的情況下增加可用表數(shù)目呢?TDengine Database的數(shù)據(jù)存儲(chǔ)在vnode上,一個(gè)vnode包含固定數(shù)量的表,每臺(tái)機(jī)器又包含了固定數(shù)量的vnode,可從這兩個(gè)方面調(diào)整參數(shù)。

1.增加vnode表數(shù)目

在創(chuàng)建數(shù)據(jù)庫的時(shí)候指定參數(shù)

create database db tables 2000 cache 10240 ablocks 4 tblocks 50 

這些參數(shù)含義如下:

  • tables:每個(gè)vnode允許創(chuàng)建表的最大數(shù)目
  • cache: 內(nèi)存塊的大小,單位為字節(jié)
  • tblocks: 每張表最大的內(nèi)存塊數(shù)
  • ablocks: 每張表平均的內(nèi)存塊數(shù)

增加每個(gè)vnode的最大表數(shù)目需要更改tables參數(shù),但該參數(shù)不能無限大,通常在4-20000之間。通過修改配置,可以提高機(jī)器能創(chuàng)建的最大表數(shù)目。但是TDengine的設(shè)計(jì)中,每張表都占用固定內(nèi)存,大致公式是:

cache*ablocks + tblocks*8 + 1000

以上數(shù)據(jù)庫配置,每張表需要占用的內(nèi)存約為42K,例如創(chuàng)建100萬表,需要42GB內(nèi)存,各位可以自己計(jì)算一下當(dāng)前機(jī)器配置能夠承載的表數(shù)目。也有的同學(xué)可能會(huì)想降低alockscache的大小,以便最大化表數(shù)目,那么需要注意以下幾點(diǎn):

  • ablocks 最好大于2,至少需要大于1
  • cache 至少為每行數(shù)據(jù)總字節(jié)數(shù)的20倍,例如兩列的表,第一列為 timestamp,第二列為int,則每行數(shù)據(jù)為12字節(jié),那么cache至少為240

當(dāng)把這些參數(shù)都調(diào)整很小時(shí),系統(tǒng)性能會(huì)下降,這也是題中應(yīng)有之意。

2.增加vnode總數(shù)目

TDengine Database的vnode數(shù)目與計(jì)算機(jī)CPU核數(shù)有關(guān),每個(gè)CPU核可以支持8個(gè)vnode,當(dāng)總vnode數(shù)目小于50時(shí),系統(tǒng)默認(rèn)設(shè)置為50,當(dāng)總vnode數(shù)目大于256時(shí),系統(tǒng)默認(rèn)設(shè)置為256。如果需要修改這個(gè)數(shù)字,可在配置文件/etc/taos/taos.cfg中修改numOfTotalVnodes參數(shù)。
還有一個(gè)參數(shù)maxTables需要關(guān)注,表示系統(tǒng)能夠創(chuàng)建的最大表數(shù)目,默認(rèn)值為650000,當(dāng)預(yù)計(jì)創(chuàng)建的表數(shù)量大于此值時(shí),需要到/etc/taos/taos.cfg中修改。

結(jié)論

遺憾的是,以上這兩類方法,均不能動(dòng)態(tài)修改。增加vnode表數(shù)目的方法,需要?jiǎng)h除數(shù)據(jù)庫;增加vnode總數(shù)目的方法,需要卸載數(shù)據(jù)庫重新安裝。
因此,各位在進(jìn)行測(cè)試的時(shí)候,根據(jù)自己的數(shù)據(jù)量和機(jī)器配置,預(yù)先調(diào)整好參數(shù)。