Alluxio Local Cache 監控指南 Alluxio Alluxio
作者
張策:Alluxio PMC & 聯通大數據工程師
01 什麼是 Alluxio Local Cache
隨着雲計算在基礎設施領域的市場份額持續上升,主流數據分析引擎紛紛選擇獨立擴展存儲、計算來適配雲基礎設施,並以此為雲提供商降低成本。但是,存儲計算分離也為查詢延遲帶來了新的挑戰,因為當網絡飽和時,通過網絡掃描大量數據將受到 IO 限制。此外,元數據也面臨遠程網絡來檢索的性能問題。
數據編排系統 Alluxio 預見到了存算分離的發展趨勢,並通過分佈式緩存服務為 Presto、Spark 等引擎加速查詢性能。為了在存算分離架構中實現亞秒級的查詢延遲,Alluxio 和 Presto 的核心團隊合作實現了客户端嵌入式緩存庫 Alluxio Local Cache,來進一步減少數據分析引擎和 Alluxio 之間的通信開銷。
相關博客如下:
Alluxio Data Caching : https://prestodb.io/blog/2020/06/16/alluxio-datacaching
Presto RaptorX : https://prestodb.io/blog/2020/06/16/alluxio-datacaching
02 Alluxio Local Cache 配置與啟用
2021 年大部分時間 Local Cache 僅支持 Presto Hive Connector,並已經得到大規模應用。社區於2021年底新增了Local Cache 對 Presto Iceberg Connector 的支持,相關內容將在之後的博客做深入介紹。
如何在 Presto on Hive 場景配置、啟用 Local Cache:
1. Presto 配置文件:etc/catalog/hive.properties
hive.node-selection-strategy=SOFT_AFFINITY
2.修改 Presto 配置文件:etc/catalog/hive.properties,緩存路徑推薦配置為 Ramdisk 或 SSD 來達到最佳效果。
cache.enabled=true
cache.base-directory=file:///mnt/flash/data
cache.type=ALLUXIO
cache.alluxio.max-cache-size=1600GB
3. 啟動 Presto
Tips:除數據緩存(Data cache)外,其他緩存功能為實驗特性。
03 如何監控 Local Cache
為了提升 Local Cache 的可觀測性,我們可以通過 prometheus jmx exporter 將 Worker 的指標暴露出來,使用 prometheus 採集後做進一步分析。
監控配置與啟用
1.新增jmx_prometheus_config.yaml配置文件
global:
scrape_interval: 15s
evaluation_interval: 15s
2.下載jmx_prometheus_javaagent-.jar,簡稱jmx_prometheus_javaagent.jar
3.presto jvm.config 配置中新增
-javaagent://jmx_prometheus_javaagent.jar=://jmx_prometheus_config.yaml
4.重啟 Presto
5.訪問 http://<presto_worker>:port/ 查詢是否配置成功
6.將指標接入 prometheus,在 promethues 配置文件中新增
scrape_configs:
- job_name: "presto_local_cache"
scrape_interval: 15s
static_configs:
- targets: [":"]
labels:
appname: "presto_local_cache"
指標解析
Alluxio Local Cache開放了眾多監控指標,以下指標是描述緩存使用情況的基礎指標,用户需要重點關注:
緩存命中率
- com_facebook_alluxio_Client_CacheHitRate_<HOST>_Value
緩存訪問量:
- com_facebook_alluxio_Client_CacheBytesReadCache_<HOST>_OneMinuteRate
- com_facebook_alluxio_Client_CacheBytesReadCache_<HOST>_FiveMinuteRate
- com_facebook_alluxio_Client_CacheBytesReadCache_<HOST>_FifteenMinuteRate
- com_facebook_alluxio_Client_CacheBytesReadCache_<HOST>_Count
緩存未命中後,外部系統訪問量
- com_facebook_alluxio_Client_CacheBytesReadExternal_<HOST>_OneMinuteRate
- com_facebook_alluxio_Client_CacheBytesReadExternal_<HOST>_FiveMinuteRate
- com_facebook_alluxio_Client_CacheBytesReadExternal_<HOST>_FifteenMinuteRate
- com_facebook_alluxio_Client_CacheBytesReadExternal_<HOST>_Count
緩存空間使用量
- com_facebook_alluxio_Client_CacheSpaceUsed_<HOST>_Number
緩存空間剩餘量
- com_facebook_alluxio_Client_CacheSpaceAvailable_<HOST>_Value
緩存頁數目
PS:在LOCAL模式下每個頁存儲為一個文件,當緩存存儲在機械磁盤上時需要重點關注。不推薦使用機械磁盤作為LOCAL模式緩存存儲,推薦使用SSD或者Ramdisk
- com_facebook_alluxio_Client_CachePages_<HOST>_Count
想要獲取更多有趣有料的【活動信息】【技術文章】【大咖觀點】,請關注[Alluxio智庫]:
- Alluxio跨集羣同步機制的設計與實現
- 如何借力Alluxio推動大數據產品性能提升與成本優化?
- 2023年五大趨勢預測 | 大數據分析、人工智能和雲產業展望
- 如何用Alluxio加速雲上深度學習訓練?
- 【螞蟻】Alluxio在螞蟻集團大規模訓練中的應用
- 從博士論文到被各大廠應用,Alluxio 如何走過 7 年創業路
- Presto on Alluxio By Alluxio SDS 單節點搭建
- Alluxio Local Cache 監控指南 Alluxio Alluxio
- 幫助 Meta 解決 Presto 中的數據孤島問題
- B站基於Iceberg Alluxio助力湖倉一體項目落地實踐
- 【聯通】數據編排技術在聯通的應用
- 【聯通】數據編排技術在聯通的應用
- Alluxio 源碼完整解析 | 你不知道的開源數據編排系統(下篇)
- Alluxio 源碼完整解析 | 你不知道的開源數據編排系統 (上篇)
- Meta(Facebook): 基於Alluxio Shadow Cache優化Presto架構決策
- Apache頂級項目Ranger和Alluxio的最佳實踐(附教程)
- 金山雲團隊分享 | 5000字讀懂Presto如何與Alluxio搭配
- 2min速覽:從設計、實現和優化角度淺談Alluxio元數據同步
- 華能 Alluxio | 數字化浪潮下跨地域數據聯邦訪問與分析
- 什麼是一致性哈希?可以應用在哪些場景?