原地址:https://docs.influxdata.com/influxdb/v1.6/guides/hardware_sizing/node
警告!此頁面記錄了再也不積極開發的InfluxDB的早期版本。InfluxDB v1.7是InfluxDB的最新穩定版本。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
條款或抽樣多個星期的時間範圍- 一般在幾百或幾千毫秒內執行
複雜查詢:
- 具備多個聚合或轉換函數或多個正則表達式
- 能夠抽樣幾個月或幾年的很是大的時間範圍
- 一般須要多秒才能執行
這種規模的表現是一項重大挑戰,可能沒法實現。有關調整系統的幫助,請經過sales@influxdb.com與咱們聯繫。
羣集必須至少有三個獨立的元節點才能在丟失服務器後繼續存在。具備2n + 1
元節點的集羣能夠容忍元節點的丟失n
。羣集應該具備奇數個元節點。沒有理由擁有偶數個元節點,而且它可能致使某些配置出現問題。
元節點不須要很大的計算能力。不管羣集負載如何,咱們建議如下元節點:
只有一個數據節點的集羣有效,但沒有數據冗餘。冗餘由寫入數據的保留策略上的複製因子設置。羣集可能會丟失n - 1
數據節點並仍然返回完整的查詢結果,其中n
是複製因子。爲了在羣集內進行最佳數據分發,InfluxData建議使用偶數個數據節點。
羣集數據節點的硬件建議與獨立實例建議相似。數據節點應始終至少具備2個CPU內核,由於它們必須處理常規讀寫流量以及羣集內讀寫流量。因爲羣集通訊開銷,羣集中的數據節點處理的吞吐量低於同一硬件上的獨立實例。
加載 | 每一個節點每秒寫入字段 | 每一個節點每秒中等查詢 | 每一個節點的惟一系列 |
---|---|---|---|
低 | <5千 | <5 | <10萬 |
中等 | <10萬 | <25 | <100萬 |
高 | > 10萬 | > 25 | > 100萬 |
可能不可行 | > 50萬 | > 100 | > 1000萬 |
注意:查詢對系統的影響差別很大。
簡單查詢:
- 幾乎沒有函數也沒有正則表達式
- 是時間限制在幾分鐘,幾小時或一天
- 一般在幾毫秒到幾十毫秒內執行
中等查詢:
- 有多個函數和一個或兩個正則表達式
- 也可能有複雜的
GROUP BY
條款或抽樣多個星期的時間範圍- 一般在幾百或幾千毫秒內執行
複雜查詢:
- 具備多個聚合或轉換函數或多個正則表達式
- 能夠抽樣幾個月或幾年的很是大的時間範圍
- 一般須要多秒才能執行
Enterprise Web服務器主要是具備相似負載要求的HTTP服務器。對於大多數應用程序,它不須要很是強大。羣集僅與一個Web服務器一塊兒運行,但爲了實現冗餘,能夠將多個Web服務器鏈接到單個後端Postgres數據庫。
注意:生產集羣不該使用SQLite數據庫,由於它不容許冗餘Web服務器,也不能像Postgres那樣優雅地處理高負載。
一般,擁有更多RAM有助於查詢返回更快。添加更多RAM沒有已知的缺點。
影響RAM需求的主要組件是系列基數。即便有大量RAM,大約1000萬或更高的系列基數也可能致使OOM失敗。若是是這種狀況,您一般能夠經過從新設計架構來解決問題。
相對於系列基數的RAM需求的增長是指數的,其中指數在1到2之間:
InfluxDB旨在運行在SSD上。InfluxData不測試硬盤驅動器或網絡存儲設備,咱們不建議將它們用於生產。旋轉磁盤驅動器的性能要低一個數量級,即便是中等負載,系統也可能會崩潰。爲得到最佳結果,InfluxDB服務器必須在存儲系統上至少具備1000 IOPS。
請注意,當羣集從停機時間恢復時,羣集數據節點的IOPS要求很是高。建議存儲系統至少具備2000 IOPS以便快速恢復。低於1000 IOPS,羣集可能沒法從短暫停機中恢復。
數據庫名稱,度量,標記鍵,字段鍵和標記值僅存儲一次,並始終做爲字符串存儲。只有字段值和時間戳存儲每點。
非字符串值大約須要三個字節。字符串值須要由字符串壓縮肯定的可變空間。
在生產環境中運行InfluxDB時,wal
目錄和data
目錄應位於不一樣的存儲設備上。當系統處於大量寫入負載時,此優化可顯着減小磁盤爭用。若是寫入負載高度可變,這是一個重要的考慮因素。若是寫入負載變化不超過15%,則可能不須要優化。