运行状况监视器是用于监视装载活动和资源使用情况的工具。 本文介绍可以获取哪些数据,以及如何启用运行状况监视器和查看输出报告。
健康监测数据
BlobFuse 运行状况监视器提供以下专用运行状况监视器:BlobFuse 统计信息、CPU 探查器、内存探查器以及文件缓存监视器。
下表描述了其中每个监视器以及可从它们获取的数据。
| 运行状况监视器 | 可用数据 |
|---|---|
| BlobFuse 统计信息 | |
| CPU 分析器 | |
| 内存探查器 | |
| 文件缓存监视器 |
启用健康监控
可以通过修改 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"
}
}
]
}