监视 BlobFuse 装载活动和资源使用情况

运行状况监视器是用于监视装载活动和资源使用情况的工具。 本文介绍可以获取哪些数据,以及如何启用运行状况监视器和查看输出报告。

健康监测数据

BlobFuse 运行状况监视器提供以下专用运行状况监视器:BlobFuse 统计信息CPU 探查器、内存探查器以及文件缓存监视器

下表描述了其中每个监视器以及可从它们获取的数据。

运行状况监视器 可用数据
BlobFuse 统计信息
  • 通过 BlobFuse 上传和下载的总字节数
  • 在挂载目录中的文件或文件夹上创建、删除、重命名、同步和截断等事件
  • 从 Azure 存储上传或下载大型文件的进度
  • 对 Azure 存储进行的调用次数,包括在已挂载目录中执行的创建、删除、重命名和 chmod 等操作。
  • 打开文件的句柄总数
  • 从文件缓存或从 Azure 存储下载打开的文件请求的次数
  • CPU 分析器
  • 与装载关联的 BlobFuse 进程的 CPU 使用率
  • 内存探查器
  • 与装载关联的 BlobFuse 进程的内存使用情况
  • 文件缓存监视器
  • 监视缓存中文件和目录的创建、删除、重命名和 chmod 等不同事件
  • 跟踪与装载期间指定的缓存大小相关的缓存消耗
  • 启用健康监控

    可以通过修改 BlobFuse 配置文件来启用运行状况监视器。 以下示例演示 BlobFuse 配置文件中的示例配置条目。 在此示例中,文件缓存监视器和内存探查器处于禁用状态。

    health_monitor:
      enable-monitoring: true
      stats-poll-interval-sec: 10
      process-monitor-interval-sec: 30
      output-path: outputReportsPath
      monitor-disable-list:
        - file_cache_monitor
        - memory_profiler
    

    下表描述了每个配置字段。

    领域 Description
    enable-monitoring 用于启用运行状况监视器的布尔参数。 默认情况下,运行状况监视器处于禁用状态。
    stats-poll-interval-sec BlobFuse 统计信息轮询间隔(以秒为单位)。 默认值为 10 秒。
    process-monitor-interval-sec CPU 和内存使用情况轮询间隔(以秒为单位)。 默认值为 30 秒。
    output-path 健康监测生成输出文件的路径。 如果未指定,它将当前目录用作默认值。 输出文件名为 monitor_<pid>.json.
    monitor-disable-list 要禁用的监视器列表。 若要禁用监视器,请将其相应的名称添加到列表中。
    blobfuse_stats 禁用 BlobFuse 统计信息轮询
    cpu_profiler 在 BlobFuse 进程中禁用 CPU 监视
    memory_profiler 在 BlobFuse 进程中禁用内存监视
    file_cache_monitor 禁用文件缓存目录监视器

    注释

    运行状况监视器作为单独的进程运行,其中一个运行状况监视器进程与监视一个 BlobFuse 装载的目录相关联。

    输出报告

    运行状况监视器将其输出报告存储在配置选项中指定的路径中 output-path 。 如果未指定此选项,则使用当前目录作为默认值。 它将最后 100 MB 的监视器数据存储在名为 monitor_<pid>_<index>.json10 个不同的文件中,其中 monitor_<pid>.json (第 0 个索引)是最新的,也是 monitor_<pid>_9.json 最早的输出文件。

    以下 JSON 显示了输出文件内容的示例。

    {
        "Timestamp": "t1",
        "CPUUsage": "value in %",
        "MemoryUsage": "value in bytes",
        "BlobfuseStats": [
            {
                "componentName": "azstorage",
                "value": {
                    "Bytes Downloaded": value in bytes,
                    "Bytes Uploaded": value in bytes,
                    "Chmod": count of chmod calls,
                    "StreamDir": count of stream dir calls
                }
            },
            {
                "componentName": "file_cache",
                "value": {
                    "Cache Usage": "value in MB",
                    "Usage Percent": "value in %",
                    "Files Downloaded": count,
                    "Files served from cache": count
                }
            }
        ],
        "FileCache": [
            {
                "cacheEvent": "CREATE",
                "path": "filePath",
                "isDir": false,
                "cacheSize": value in bytes,
                "cacheConsumed": "value in %",
                "cacheFilesCount": count of files in cache,
                "evictedFilesCount": count of files evicted from cache,
                "value": {
                    "FileSize": "value in bytes"
                }
            }
        ]
    }
    

    后续步骤

    另请参阅