InfluxDB性能測試報告


被測環境:

騰訊雲

CPU 內存 帶寬 版本號
4核 16G 1Gbit/s Ubuntu 4.8.4-2ubuntu1~14.04.3

 

地址:

 

被測程序:

Docker下安裝的influxDB 端口8086

 

壓測環境:

騰訊雲

CPU 內存 帶寬 版本號
2核 8G 1Gbit/s Ubuntu 4.8.4-2ubuntu1~14.04.3

 

地址:

 

測試程序:

從github上找的influxdata公司提供的兩款測試工具

influx-stress 用於寫入測試

influxdb-comparisons用於查詢測試

 

測試場景:

寫入測試
工具名稱 influx-stress

 

工具github地址 https://github.com/influxdata/influx-stress
測試原理 該工具是通過go語言的fasthttp庫編寫的。

1.     會在服務器上創建一個數據庫stress

2.     然后創建一個MEASUREMENT(類似關系數據庫的表)名為ctr

該表有time,n.some三個字段

3.     不斷的向stress數據庫的ctr表插入數據,每次插入的數據都包含三個字段。每一條數據稱為一個points。

插入數據的方法是通過influxDB的HTTP API 發送請求(POST /write?db=stress)

 

測試命令 influx-stress insert -r 60s –strict –pps 200000 –host http://10.XX.XX.XX:8086

 

測試程序運行結果
Points Per Second(發起請求) Write Throughput(points/s)

(數據庫實際處理結果)

CPU平均利用率
200000 199713 33%
300000 299280 45%
400000 392873 62%
500000 491135 80%
600000 593542 90%
650000 606036 93%
700000 613791 95%

測試結論:最大的吞吐量為每秒寫入60萬條數據。這之后,每秒發送的points再多,吞吐量也不會增加,同時CPU利用率已達90%。

 

查詢測試
工具名稱 influxdb-comparisons

 

工具github地址 https://github.com/influxdata/influxdb-comparisons
測試原理 該工具是通過go語言的fasthttp庫編寫的。

1.     會在服務器上創建一個數據庫benchmark_db

2.     然后創建9個MEASUREMENT :cpu,disk,diskio,kernel,mem,net,nginx,postgresl

每個measurement 有2160行數據。

3.     通過http GET請求”GET /query?db=benchmark_db“查詢cpu這張表。

查詢語句為:SELECT max(usage_user) from cpu where (hostname = ‘host_0’) and time >= ‘2016-01-01T01:16:32Z’ and time < ‘2016-01-01T02:16:32Z’ group by time(1m)

可以取出61條數據。

 

測試命令 ./bulk_query_gen -query-type “1-host-1-hr” | ./query_benchmarker_influxdb -urls http://10.XX.XX.XX:8086 -limit 1000

 

測試程序運行結果
查詢命令執行次數

(-limit)

命令最短執行時間 每條命令平均執行時間 命令最大執行時間 總耗時
100 1.20ms 1.69ms 4.36ms 0.2sec
200 1.20ms 1.71ms 7.40ms 0.3sec
300 1.25ms 1.73ms 7.54ms 0.5sec
400 1.21ms 1.71ms 7.54ms 0.7sec
500 1.20ms 1.70ms 7.54ms 0.8sec
600 1.17ms 1.67ms 7.54ms 1.0sec
700 1.14ms 1.66ms 8.33ms 1.2sec
800 1.14ms 1.65ms 8.33ms 1.3sec
900 1.14ms 1.63ms 8.33ms 1.5sec
1000 1.14ms 1.64ms 8.33ms 1.6sec

測試結論:因為該工具最大只能測到讀取1000條數據,所以沒有繼續加大壓力測試。查詢操作的消耗時間因為受到被查詢表的數據量和查詢語句的復雜性影響,所以在influxDate官方給出的被查表和查詢語句下,算出來是平均每秒執行600次查詢。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM