您可以根據業務的讀寫需求選擇使用阿里云Elasticsearch內核增強版Indexing Service系列,通過其云上寫入托管能力,體驗按需購買、按量付費的低成本、高性能的時序日志場景下的Elasticsearch服務。本文主要介紹Indexing Service的適用場景、架構、優勢以及性能測試結果。
基于讀寫分離架構的內核增強版Indexing Service,不僅實現了Elasticsearch集群的云端寫入Indexing Service托管,還從硬件選型、集群架構、內核性能進行了全方位優化。在提升集群寫入性能的同時,您可以從讀寫角度分別評估業務需求,根據實際寫入按量付費,而無須按照集群峰值寫入吞吐預留資源,大大降低了云上使用Elasticsearch的資源成本和運維成本。
適用場景
適用于寫入TPS較高、寫入流量波動較大和搜索QPS較低的時序數據分析場景,例如日志檢索分析、Metric監控分析、IoT智能硬件數據收集及監控分析等。
Indexing Service內核增強版實例與用戶集群進行數據同步時,依賴于apack/cube/metadata/sync任務(可通過GET _cat/tasks?v
命令獲取該任務信息),不建議手動清理該任務。如果被清理,請盡快使用POST /_cube/meta/sync
命令恢復,否則會影響業務寫入。
架構
此架構具備如下優勢:
高性能:專業級寫入優化,Indexing Service索引構建服務通過索引物理復制、計算存儲分離、faster-bulk等阿里云自研特性優化寫入性能,您無需做任何配置變更即可享受專業級寫入性能。
低延遲:跨集群實時物理復制,通過segment級別的實時物理復制,在寫入流量飽和的情況下,用戶集群相對于Indexing Service集群的平均數據延遲達到百毫秒級。
高穩定:異地容災,Indexing Service具備異地多集群備份能力。當某一個集群出現異常時,可切換用戶集群的索引托管至另一個正常集群,進一步提升寫入高可用性。
費用說明
Indexing Service索引構建服務會收取寫入托管(寫入流量和托管存儲空間)的費用。
無論ES實例的付費模式是包年包月還是按量付費,寫入托管費用按實際寫入流量和實際托管存儲空間進行按量計費。詳情請參見阿里云ES計費。
雖然開啟Indexing Service索引構建服務會收取寫入托管費用,但該服務會降低集群中用于承載寫入計算的節點資源的費用。
優勢
低成本:寫入計算資源成本平均降低了60% 。
彈性擴展:寫入資源由云端Indexing Service后臺調配和管理,以應對寫入流量波動。在無需數據遷移的情況下,實現日志場景下Elasticsearch集群的寫入彈性擴展能力,輕松應對高峰流量。
免運維:用戶無須關注Elasticsearch集群的寫入資源和寫入壓力,由Indexing Service實現云上寫入托管,極大降低集群運維成本。
使用限制
云端托管功能可以為您創建的Elasticsearch集群提供寫入Serverless服務,但是在使用時,對數據寫入和索引配置有相關限制。詳情請參見下表。
分類 | 限制項 | 限制說明 | 備注 |
實例維度 | 寫入流量保護 | 寫入流量最大為200 MB/s | 如果超過最大限制,返回狀態碼429,提示Inflow Quota Exceed。如果您有更大的使用需求,請提交工單申請。 |
寫入文檔數保護 | 寫入文檔保護數最大為200000 個/秒 | 如果超過最大限制,返回狀態碼429,提示Write QPS Exceed。如果您有更大的使用需求,請提交工單申請。 | |
Put Mapping限流保護 | Put Mapping最大為50 tps/s | 如果超過最大限制,返回狀態碼429,提示 說明 頻繁的Put Mapping將消耗大量的計算資源,對托管服務穩定性影響極大。建議您寫數據前提前定義索引模板,降低Put Mapping操作。 | |
Shard維度 | 寫入流量 | 不帶主鍵寫入流量最大為10 MB/s 帶主鍵寫入流量最大為5 MB/s | 如果超過最大限制,返回狀態碼429,提示 |
寫入文檔數 | 寫入文檔數最大為5000 個/秒 | 非硬性限制,如果超過最大限制,系統會盡可能服務,但不能保證服務質量。 | |
Shard數 | 單個索引最多可創建的Shard數 | 最多可創建300個Shard。 | 無。 |
配置 | index.refresh_interval | 云端托管集群中默認配置此參數,用戶側配置不生效。 | 無。 |
index.translog.durability | translog在云端托管集群中默認配置為異步寫入模式(index.translog.durability=async),用戶側配置不生效。 | 無。 | |
refresh、merge等寫入參數 | 云端托管集群中默認已配置refresh、merge等寫入參數,用戶側配置不生效。 | 默認配置如下。
| |
索引 | 生命周期配置 | 不支持在索引生命周期中自定義freeze。 | 無。 |
shrink操作 | Indexing Service場景,索引處于托管狀態,不兼容ILM Action中的shrink操作,建議當索引處于未托管狀態時,執行shrink配置。詳細信息,請參見ILM-shrink。 | 無。 | |
取消托管時間 | 索引默認托管3天后自動取消托管。 | 可依據業務數據在生命周期中修改取消托管時間。 | |
Ingest Node |
|
性能測試
測試環境:
測試結果:
規格
實例版本
寫入TPS
寫入可見性延遲
3個數據節點的2核8 GB
通用商業版
24883
5秒
內核增強版Indexing Service
226649
6秒
3個數據節點的4核16 GB
通用商業版
52372
5秒
內核增強版Indexing Service
419574
6秒
3個數據節點的8核32 GB
通用商業版
110277
5秒
內核增強版Indexing Service
804010
6秒
測試結論:
內核增強版Indexing Service與通用商業版性能對比結果:
基于3個數據節點的2核8 GB規格,性能提升了910%。
基于3個數據節點的4核16 GB規格,性能提升了801%。
基于3個數據節點的8核32 GB規格,性能提升了729%。