esrally效能測試原理
1. 前提
esrally的執行不會影響當前系統elasticsearch的一切正常業務。
2. 效能測試原理
大致步驟概括如下:
第一步:安裝esrally,耗時會半小時到1個小時之間。
主要完成esrally必要元件安裝,更多的是elasticsearch的安裝。
elasticsearch安裝的兩種方式:
方式一:最常用的安裝方法,原始碼安裝。只需要執行esrally,等價於執行:
esrally race --pipeline=from-sources-complete --revision=current --track=geonames --challenge=append -no-conflicts --car=defaults
方式二:指定elasticsearch版本進行安裝, 如下所示:
至此,esrally安裝成功,對應的elaticsearch安裝成功。
第二步:全面的測試。
從日誌可以檢視結果,日誌最終儲存檔案為:
/home/elasticsearch/.rally/benchmarks/races/2016-08-10-06-50-06/local/logs-geonames-append-no-conflicts-defaults.zip
可以檢視到如下資訊,我們能看到PUT/POST/GET/DELETE/HEAD等操作。
每條測試都記錄了狀態status,請求時間request。
2016-08-10 06:52:30,221 elasticsearch INFO GET http://localhost:39200/_cluster/health?wait_for_status=green&timeout=3s&wait_for_relocating_shards=0 [status:20 0 request:0.011s]
......
2016-08-10 06:52:34,674 elasticsearch INFO POST
http://localhost:39200/_bulk [status:200 request:4.264s]
……
2016-08-10 07:16:18,219 elasticsearch INFO DELETE
“`
第三步:統計、給出最終結果。 esrally會執行較長時間,完成如下幾類測試操作:
Racing on track [geonames] and challenge [append-no-conflicts] with car [defaults] Benchmarking indexing at 12590.4 docs/s [100% done]
Benchmarking stats (warmup iteration 100/100) [100% done] Benchmarking stats (iteration 100/100) [100% done] Benchmarking search (warmup iteration 100/100) [100% done] Benchmarking search (iteration 100/100) [100% done]
最終給出測試結果: “
_______ __ _____ / ____(_)___ ____ _/ / / ___/_________ ________ / /_ / / __ \/ __
/ / __ \/ / \/ / _ \ / / / / / / / // / / / / // // / / / / // /// //_,// /_/__/____// __/
Metric | Value |
---|---|
Min Indexing Throughput [docs/s] | 12410 |
Median Indexing Throughput [docs/s] | 12675.2 |
Max Indexing Throughput [docs/s] | 13567 |
Indexing time [min] | 158.259 |
Merge time [min] | 29.5808 |
Refresh time [min] | 8.4305 |
Flush time [min] | 2.11967 |
Merge throttle time [min] | 1.16355 |
…….
——————————————————————————————————
更多ES相關實戰乾貨經驗分享,請掃描下方【銘毅天下】微信公眾號二維碼關注。
(每週至少更新一篇!)
和你一起,死磕Elasticsearch!
——————————————————————————————————