influxDB硬件配置指南

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

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

本指南爲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萬

注意:查詢對系統的影響差別很大。架構

簡單查詢:ide

  • 幾乎沒有函數也沒有正則表達式
  • 是時間限制在幾分鐘,幾小時或一天
  • 一般在幾毫秒到幾十毫秒內執行

中等查詢:函數

  • 有多個函數和一個或兩個正則表達式
  • 也可能有複雜的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+

多是不可行的負荷

這種規模的表現是一項重大挑戰,可能沒法實現。有關調整系統的幫助,請經過sales@influxdb.com與咱們聯繫

羣集的通常硬件準則

元節點

羣集必須至少有三個獨立的元節點才能在丟失服務器後繼續存在。具備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旨在運行在SSD上。InfluxData不測試硬盤驅動器或網絡存儲設備,咱們不建議將它們用於生產。旋轉磁盤驅動器的性能要低一個數量級,即便是中等負載,系統也可能會崩潰。爲得到最佳結果,InfluxDB服務器必須在存儲系統上至少具備1000 IOPS。

請注意,當羣集從停機時間恢復時,羣集數據節點的IOPS要求很是高。建議存儲系統至少具備2000 IOPS以便快速恢復。低於1000 IOPS,羣集可能沒法從短暫停機中恢復。

我須要多少存儲空間?

數據庫名稱,度量標記鍵字段鍵標記值僅存儲一次,並始終做爲字符串存儲。只有字段值時間戳存儲每點。

非字符串值大約須要三個字節。字符串值須要由字符串壓縮肯定的可變空間。

我應該如何配置個人硬件?

在生產環境中運行InfluxDB時,wal目錄和data目錄應位於不一樣的存儲設備上。當系統處於大量寫入負載時,此優化可顯着減小磁盤爭用。若是寫入負載高度可變,這是一個重要的考慮因素。若是寫入負載變化不超過15%,則可能不須要優化。

相關文章
相關標籤/搜索