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智库]

优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/u/5904778/blog/5580895

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。