prometheus對接influxdb壓測結果

2022-09-20 09:45:07 字數 1768 閱讀 2800

由於prometheus單純依靠本地儲存遠不足以應對長期歷史資料持久化,因此依靠influxdb作為遠端儲存解決以上問題成為一種常見的策略。本次壓測的目的為:一方面比較influxdb與prometheus不同規格下的效能指標,另一方面根據不同的效能指標,選出最優的匹配規格供參考,避免出現一端效能浪費以及一端成為瓶頸的情況。

規格db

timeseries

tpsqps

2c8g

150000

40075.7

0.64c16g

1100000

76587.6

0.68c32g

1200000

123871

1.916c64g

1400000

182279.4

2.3部署prometheus採取兩種規格8c32g,16c64g。

為了盡量避免網路延遲對寫入效能指標的影響,以上influxdb例項與prometheus例項均處於同一vpc下,通過內網訪問,內網頻寬峰值:5gbps

首次規格匹配選用prometheus(8c32g)與influxdb(16c64g),以influxdb(16c64g)18w的寫入效能為標準,使用**alanche作為資料來源,產生18w/s的資料指標用於prometheus拉取並寫入遠端儲存influxdb。

壓測資料源採用**alanche資料來源,**alanche具體配置引數如下:

--**acount=6 --**abin=/root/prometheus-**alanche/cmd/**alanche --**ametriccount=5000 --**aseriescount=30 --****alueint=5 --**aseriesint=360000 --**ametricint=3000
記憶體使用量:

以上可見,prometheus占用記憶體較大,其儲存機制為資料每2小時落盤一次,8c32g prometheus記憶體成為瓶頸,不足以支撐到2小時資料落盤,最終導致prometheus server崩潰。

cpu使用率:

以上可見,prometheus cpu占用不大,influxdb cpu使用率近80%,但仍可穩定執行。

網路流入流出速率:

綜上所述:

prometheus cpu佔用率不大,對記憶體需求量大。influxdb相反,記憶體占用不大,cpu需求量大。網路不是瓶頸,5gbps頻寬遠足以支撐資料傳輸。以上效能摸底結論:8c32g prometheus記憶體寫爆,16c64g influxdb可穩定執行。

同樣以18w/s資料點規格進行寫入,穩定執行36h:

以9w/s資料點規格進行寫入,穩定執行36h:

本次壓測可以看出,prometheus瓶頸在於記憶體,influxdb的瓶頸在於cpu,內網頻寬不是問題,遠足以支撐資料傳輸。為了避免資源浪費,效能輸出最大化的條件下,建議使用以下兩種規格組合:

在頻寬足夠,平均label數量小於等於15的條件下,可穩定支援18w/s的寫入。

在頻寬足夠,平均label數量小於等於15的條件下,可穩定支援9w/s的寫入。

本次查詢測試基於jmeter測試工具,主要通過jmeter支援的http request任務摸版,模擬多使用者併發情景,向prometheus server的http api(localhost:9090/api/vi)傳送符合promql語義的query,jmeter會蒐集相關的query latency等資訊。

prometheus(16c64g)+influxdb(16c64g):

prometheus(8c32g)+influxdb(8c32g)

解析INF檔案

相信朋友們對驅動程式的作用和安裝應該不會陌生,但inf檔案與驅動程式究竟有何關係呢?其實,inf是device information file 裝置資訊檔案 的簡稱,裝置管理器通過讀取相應的inf檔案來安裝驅動程式,其中記錄了驅動程式安裝的所有操作,包括複製檔案到指定路徑 新增或修改登錄檔 載入系...

解析INF檔案

相信朋友們對驅動程式的作用和安裝應該不會陌生,但inf檔案與驅動程式究竟有何關係呢?其實,inf是device information file 裝置資訊檔案 的簡稱,裝置管理器通過讀取相應的inf檔案來安裝驅動程式,其中記錄了驅動程式安裝的所有操作,包括複製檔案到指定路徑 新增或修改登錄檔 載入系...

mysql對接 對接mysql

新建 對接mysql 安裝pymysql 參考 安裝pymysql 在檔案 bianbingdang init py 內寫入如下 import pymysql pymysql.install as mysqldb 修改配置 開啟配置檔案 bianbingdang settings.py 找到如下 d...