天天看點

influxDB硬體配置指南單節點還是群集?單個節點的一般硬體準則群集的一般硬體準則我什麼時候需要更多記憶體?我需要什麼樣的存儲空間?我需要多少存儲空間?我應該如何配置我的硬體?

原位址:https://docs.influxdata.com/influxdb/v1.6/guides/hardware_sizing/

警告!此頁面記錄了不再積極開發的InfluxDB的早期版本。InfluxDB v1.7是InfluxDB的最新穩定版本。

本指南為InfluxDB提供了一般硬體建議,并解決了有關硬體大小調整的一些常見問題。這些建議僅适用于時間結構合并樹(

TSM

)存儲引擎,這是InfluxDB 1.4唯一可用的存儲引擎。使用未轉換 

b1

或分

bz1

片運作舊版本InfluxDB的使用者可能具有不同的性能特征。有關更多詳細資訊,請參閱InfluxDB 0.9大小調整指南。

  • 單節點還是群集?
  • 單個節點的一般硬體準則
  • 群集的一般硬體準則
  • 我什麼時候需要更多記憶體?
  • 我需要什麼樣的存儲空間?
  • 我需要多少存儲空間?
  • 我應該如何配置我的硬體?

單節點還是群集?

InfluxDB單節點執行個體是完全開源的。InfluxDB叢集需要我們的閉源商業産品。單節點執行個體不提供備援。如果伺服器不可用,則寫入和查詢将立即失敗。群集提供高可用性和備援。多個資料副本分布在多個伺服器上,任何一個伺服器的丢失都不會對叢集産生重大影響。

如果您的性能要求屬于中等或低負載範圍,那麼您可能會使用InfluxDB的單個節點執行個體。如果您的性能要求中至少有一個屬于可能不可行的類别,那麼您可能需要使用群集在多個伺服器之間配置設定負載。

單個節點的一般硬體準則

我們通過每秒寫入的字段數,每秒的查詢數以及唯一系列的數量來定義您将在InfluxDB上放置的負載。根據您的負載,我們提出一般的CPU,RAM和IOPS建議。

InfluxDB應該在本地連接配接的SSD上運作。任何其他存儲配置都具有較低的性能特征,并且可能無法從正常進行中的小中斷中恢複。

加載 每秒字段寫入 每秒中等查詢次數 獨特系列
<5千 <5 <10萬
中等 <25萬 <25 <100萬
> 25萬 > 25 > 100萬
可能不可行 > 75萬 > 100 > 1000萬

注意:查詢對系統的影響差異很大。

簡單查詢:

  • 幾乎沒有函數也沒有正規表達式
  • 是時間限制在幾分鐘,幾小時或一天
  • 通常在幾毫秒到幾十毫秒内執行
中等查詢:
  • 有多個函數和一個或兩個正規表達式
  • 也可能有複雜的

    GROUP BY

    條款或抽樣多個星期的時間範圍
  • 通常在幾百或幾千毫秒内執行
複雜查詢:
  • 具有多個聚合或轉換函數或多個正規表達式
  • 可以抽樣幾個月或幾年的非常大的時間範圍
  • 通常需要多秒才能執行

低負荷建議

  • CPU:2-4核
  • RAM:2-4 GB
  • IOPS:500

适度的負載建議

  • CPU:4-6核
  • RAM:8-32 GB
  • IOPS:500-1000

高負荷建議

  • CPU:8+核心
  • RAM:32+ GB
  • IOPS:1000+

可能是不可行的負荷

這種規模的表現是一項重大挑戰,可能無法實作。有關調整系統的幫助,請通過[email protected]與我們聯系。

群集的一般硬體準則

元節點

群集必須至少有三個獨立的元節點才能在丢失伺服器後繼續存在。具有

2n + 1

元節點的叢集可以容忍元節點的丢失

n

。群集應該具有奇數個元節點。沒有理由擁有偶數個元節點,并且它可能導緻某些配置出現問題。

元節點不需要很大的計算能力。無論群集負載如何,我們建議以下元節點:

普遍推薦

  • CPU:1-2核心
  • RAM:512 MB - 1 GB
  • IOPS:50

資料節點

隻有一個資料節點的叢集有效,但沒有資料備援。備援由寫入資料的保留政策上的複制因子設定。群集可能會丢失

n - 1

資料節點并仍然傳回完整的查詢結果,其中

n

是複制因子。為了在群集内進行最佳資料分發,InfluxData建議使用偶數個資料節點。

群集資料節點的硬體建議與獨立執行個體建議類似。資料節點應始終至少具有2個CPU核心,因為它們必須處理正常讀寫流量以及群集内讀寫流量。由于群集通信開銷,群集中的資料節點處理的吞吐量低于同一硬體上的獨立執行個體。

加載 每個節點每秒寫入字段 每個節點每秒中等查詢 每個節點的唯一系列
<5千 <5 <10萬
中等 <10萬 <25 <100萬
> 10萬 > 25 > 100萬
可能不可行 > 50萬 > 100 > 1000萬

注意:查詢對系統的影響差異很大。

簡單查詢:

  • 幾乎沒有函數也沒有正規表達式
  • 是時間限制在幾分鐘,幾小時或一天
  • 通常在幾毫秒到幾十毫秒内執行
中等查詢:
  • 有多個函數和一個或兩個正規表達式
  • 也可能有複雜的

    GROUP BY

    條款或抽樣多個星期的時間範圍
  • 通常在幾百或幾千毫秒内執行
複雜查詢:
  • 具有多個聚合或轉換函數或多個正規表達式
  • 可以抽樣幾個月或幾年的非常大的時間範圍
  • 通常需要多秒才能執行

低負荷建議

  • CPU:2個核心
  • RAM:2-4 GB
  • IOPS:1000

适度的負載建議

  • CPU:4-6
  • 記憶體:8-32GB
  • IOPS:1000+

高負荷建議

  • CPU:8+
  • RAM:32+ GB
  • IOPS:1000+

企業Web節點

Enterprise Web伺服器主要是具有類似負載要求的HTTP伺服器。對于大多數應用程式,它不需要非常強大。群集僅與一個Web伺服器一起運作,但為了實作備援,可以将多個Web伺服器連接配接到單個後端Postgres資料庫。

注意:生産叢集不應使用SQLite資料庫,因為它不允許備援Web伺服器,也不能像Postgres那樣優雅地處理高負載。

普遍推薦

  • CPU:1-4核心
  • RAM:1-2 GB
  • IOPS:50

我什麼時候需要更多記憶體?

通常,擁有更多RAM有助于查詢傳回更快。添加更多RAM沒有已知的缺點。

影響RAM需求的主要元件是系列基數。即使有大量RAM,大約1000萬或更高的系列基數也可能導緻OOM失敗。如果是這種情況,您通常可以通過重新設計架構來解決問題。

相對于系列基數的RAM需求的增加是指數的,其中指數在1到2之間:

influxDB硬體配置指南單節點還是群集?單個節點的一般硬體準則群集的一般硬體準則我什麼時候需要更多記憶體?我需要什麼樣的存儲空間?我需要多少存儲空間?我應該如何配置我的硬體?

我需要什麼樣的存儲空間?

InfluxDB旨在運作在SSD上。InfluxData不測試硬碟驅動器或網絡儲存設備,我們不建議将它們用于生産。旋轉磁盤驅動器的性能要低一個數量級,即使是中等負載,系統也可能會崩潰。為獲得最佳結果,InfluxDB伺服器必須在存儲系統上至少具有1000 IOPS。

請注意,當群集從停機時間恢複時,群集資料節點的IOPS要求非常高。建議存儲系統至少具有2000 IOPS以便快速恢複。低于1000 IOPS,群集可能無法從短暫停機中恢複。

我需要多少存儲空間?

資料庫名稱,度量,标記鍵,字段鍵和标記值僅存儲一次,并始終作為字元串存儲。隻有字段值和時間戳存儲每點。

非字元串值大約需要三個位元組。字元串值需要由字元串壓縮确定的可變空間。

我應該如何配置我的硬體?

在生産環境中運作InfluxDB時,

wal

目錄和

data

目錄應位于不同的儲存設備上。當系統處于大量寫入負載時,此優化可顯着減少磁盤争用。如果寫入負載高度可變,這是一個重要的考慮因素。如果寫入負載變化不超過15%,則可能不需要優化。

轉載于:https://www.cnblogs.com/zouhao/p/10239754.html