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

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

問題描述

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

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

問題分析

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

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

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

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

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

create database db tables 2000 cache 10240 ablocks 4 tblocks 50 

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

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

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

cache*ablocks + tblocks*8 + 1000

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

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

當把這些參數(shù)都調整很小時,系統(tǒng)性能會下降,這也是題中應有之意。

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

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

結論

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