1. 程式人生 > >Influxdb 1.2版本優化之旅(經驗證,適用於influxdb1.4版本)

Influxdb 1.2版本優化之旅(經驗證,適用於influxdb1.4版本)

一、【常見異常】
1、max series per database exceeded 異常
err = max series per database exceeded:

java.lang.RuntimeException: {"error":"max series per database exceeded:

at org.influxdb.impl.InfluxDBImpl.execute(InfluxDBImpl.java:266)
at org.influxdb.impl.InfluxDBImpl.write(InfluxDBImpl.java:167)
at org.influxdb.impl.InfluxDBImpl.write(InfluxDBImpl.java:157)






資料量太大之後,再每次進行連續查詢的時候,會出現此異常,同時也會造成程式也會報類似的異常


修改配置檔案:vim /etc/influxdb/influxdb.conf


   # 最大插入series記錄數
   max-series-per-database = 10000000
   # 最大插入的tag值
   max-values-per-tag = 10000000


2、err = max number of points reached

[continuous_querier] 2017/02/10 08:02:42 error executing query:  END: err = max number of points reached


二、【引數修改】
[coordinator]
  write-timeout = "10s"
  max-concurrent-queries = 0
  query-timeout = "0"
  log-queries-after = "10s"
  max-select-point = 0
  max-select-series = 0
  max-select-buckets = 0


max-concurrent-queries

max-concurrent-queries項是配置最大的可執行的命令數,此項值為零則表示無限制。
如果你執行的命令數超過這個配置項的數量,則會報如下錯誤:
ERR: max concurrent queries reached

query-timeout
query-timeout項用來配置命令的超時時間,如果命令的執行時長超過了此時間,則influxDB會殺掉這條語句並報出如下錯誤:
ERR: query timeout reached


  如果配置了連續查詢,那麼最好不要配置query-timeout超時時間,因為隨著資料量的增加,連續查詢生成的資料所需要的時間更長,配置之後會導致資料生成不成功。


log-queries-after

log-queries-after用來配置執行時長為多少的語句會被記錄為慢查詢。配置為0則表示不會記錄這些語句。
比如,改項配置為“1s”,則執行時長超過1秒的語句會被標記為慢查詢,並記錄在日誌裡。


max-select-point(在point可控的情況下,可以設定此引數 )
max-select-point配置一次可查詢出的資料量,因為在influxDB中一條資料看做一個點,因此這個配置叫每次可查詢的最大的點數。
配置為0則表示無限制,如果查詢出來的數量大於此項配置,則influxDB會殺掉這條語句並報出如下錯誤:
ERR: max number of points reached
max-select-series
max-select-series用來配置influxDB語句中最多可處理的series的數量,如果你的語句中要處理的series數量大於此配置,則influxDB不會執行這條語句並且會報出如下錯誤:
ERR: max select series count exceeded: <query_series_count> series
[http]
log-enabled = false        //預設為true,會生成很多http請求的資料,建議關閉,不然日誌檔案跟插入資料量成正比,大致1:1的關係
max-row-limit = 10000 //查詢頁面顯示最大記錄數


[continuous_queries]  //連續查詢
  log-enabled = true       //開啟連續查詢的日誌,有助於異常發現
  enabled = true    //開啟連續查詢




[data]
  enabled = true
  dir = "/disk2/influxdb/data"       ##資料儲存的目錄


  wal-dir = "/disk2/influxdb/wal"   //wal資料目錄
  wal-logging-enabled = true


  # 4294967296(b)=4G 最大快取資料,先快取再寫入
    cache-max-memory-size = 4294967296



參考地址:http://www.linuxdaxue.com/influxdb-query-management.html