首批通过分布式安全可靠测评,为关键业务系统打造
收集内存问题信息
更新时间:2026-04-15 12:36:08
本文适用于独立部署 obdiag 的场景,可以一键执行将内存问题排查所需要的排查信息统一捞回,解决分布式节点信息捞取难的痛点。
前提条件
需要确保已经在 obdiag 配置文件 config.yml 中配置好需要收集节点的登录信息。相关的详细配置介绍,参见obdiag 配置
使用说明
obdiag gather scene run --scene=observer.memory [options]
选项说明如下:
| 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|---|
| --scene | 是 | string | 默认为空 | 场景名,可以通过obdiag gather scene list 查看当前版本支持哪些场景 |
| --from | 否 | string | 默认为空 | 日志收集的开始时间,格式为: yyyy-mm-dd hh:mm:ss。
说明若使用的 obdiag 为 V2.0.0 之前版本,配置该选项时无需加引号,否则会报错。V2.0.0 及之后版本不再限制配置该选项时是否加引号。 |
| --to | 否 | string | 默认为空 | 日志收集的结束时间,格式为: yyyy-mm-dd hh:mm:ss。
说明若使用的 obdiag 为 V2.0.0 之前版本,配置该选项时无需加引号,否则会报错。V2.0.0 及之后版本不再限制配置该选项时是否加引号。 |
| --since | 否 | string | 默认为空 | 日志收集最近的某段时间,格式为: <n> <m|h|d>,其中,n 表示待输入的时间数字,m 表示分钟,h 表示小时,d 表示天,例如 30m 表示收集最近 30 分钟的日志。 |
| --store_dir | 否 | string | 默认为命令执行的当前路径 | 存储结果的本地路径。 |
| -c | 否 | string | ~/.obdiag/config.yml |
配置文件路径 |
使用示例
# 内存问题信息收集,默认不需要添加任何参数的话收集最近30分钟的信息
obdiag gather scene run --scene=observer.memory
# 通过 --sicne 参数指定内存问题所需要采集的信息时间范围
obdiag gather scene run --scene=observer.memory --since 30m
# 通过 --from/--to 参数指定内存问题所在的时间区间
obdiag gather scene run --scene=observer.memory --from "2022-06-30 16:25:00" --to "2022-06-30 18:30:00"
结果解读
命令执行后在指定目录下会生成一个文件夹,文件夹形如: obdiag_gather_pack_20240808105846
#tree
.
├── ob_log_remote_xx.xx.xx.xx_20240808201458_20240808204558.zip # 节点日志
├── result_summary.txt
├── sql_result.txt # 内存问题排查的时候所需 SQL 信息
├── shell_result.txt # 问题排查的时候所需命令行执行信息
实践案例
案例:用户发生内存问题,需要排查,直接执行如下命令将诊断所需的信息打包好,发给社区论坛或者前线支持人员
obdiag gather scene run --scene=observer.memory