配置
本指南涵盖了如何为您的环境配置 gflow。
概述
gflow 使用基于 TOML 文件和环境变量的简单配置系统。大多数用户可以在没有任何配置的情况下使用 gflow,但对于特定需求可以使用自定义选项。
配置文件
默认配置位置
~/.config/gflow/gflow.toml当您首次运行 gflow 命令时,此文件会自动创建。如果不存在,gflow 使用内置默认值。
配置文件结构
toml
[daemon]
# 守护进程连接设置
host = "localhost"
port = 59000
# 可选:指定要使用的 GPU 索引(注释掉 = 使用全部)
# gpus = [0, 1, 2]
# 可选:日志级别(error、warn、info、debug、trace)
# log_level = "info"自定义配置位置
使用 --config 标志(在所有命令上可用,但在帮助中隐藏):
bash
# 使用自定义配置文件
gflowd --config /path/to/custom.toml up
gflowd --config /path/to/custom.toml status
ginfo --config /path/to/custom.toml info
gflowd --config /path/to/custom.toml down
gbatch --config /path/to/custom.toml ...
gqueue --config /path/to/custom.toml配置选项
守护进程配置
主机和端口
控制守护进程监听的位置:
toml
[daemon]
host = "localhost" # 监听地址
port = 59000 # 监听端口默认值:
- 主机:
localhost(127.0.0.1) - 端口:
59000
用途:
- 默认值适合单机使用
- 如果 59000 已在使用,更改端口
- 使用
0.0.0.0允许远程连接(⚠️ 不建议用于安全性)
GPU 选择
通过配置文件、CLI 标志或运行时命令限制 gflow 可以使用的 GPU。
配置文件(~/.config/gflow/gflow.toml):
toml
[daemon]
# 仅使用 GPU 0 和 2
gpus = [0, 2]CLI 标志(覆盖配置文件):
bash
# 使用 GPU 限制启动守护进程
gflowd up --gpus 0,2
# 使用不同的 GPU 重新启动
gflowd restart --gpus 0-3运行时控制(在守护进程运行时更改 GPU):
bash
# 限制为特定 GPU
gctl set-gpus 0,2
# 使用 GPU 范围
gctl set-gpus 0-3
# 允许所有 GPU
gctl set-gpus all
# 检查当前配置
gctl show-gpus支持的语法:
- 单个 GPU:
0 - 逗号分隔:
0,2,4 - 范围:
0-3(展开为 0,1,2,3) - 混合:
0-1,3,5-6
工作原理:
- 调度器仅将任务分配给允许的 GPU
- 无效的 GPU 索引被记录为警告并忽略
- 运行中的任务在限制更改时保持不变
- 限制在守护进程重新启动后持续
- CLI 标志覆盖配置文件设置
用途:
- 为其他应用程序保留特定 GPU
- 使用 GPU 子集进行测试
- 将 gflow 与其他工作负载隔离
- 在不重新启动的情况下动态调整 GPU 可用性
示例:
查看当前 GPU 配置:
bash
$ gctl show-gpus
=== GPU Configuration ===
GPU Restriction: Only GPUs [0, 2] are allowed
=== Detected GPUs ===
GPU 0: Available
GPU 1: In Use (RESTRICTED)
GPU 2: Available
GPU 3: Available (RESTRICTED)在运行时更改限制:
bash
# 当前使用 GPU 0,2
$ gctl show-gpus
GPU Restriction: Only GPUs [0, 2] are allowed
# 更改为仅使用 GPU 0
$ gctl set-gpus 0
GPU restriction updated: only GPUs [0] will be used
# 任务现在只能使用 GPU 0
# GPU 2 上的运行中任务继续,但新任务不会使用它优先级顺序(从高到低):
- CLI 标志:
gflowd up --gpus 0,2 - 环境变量:
GFLOW_DAEMON__GPUS='[0,2]' - 配置文件:
gpus = [0, 2] - 默认值:所有检测到的 GPU
默认值:所有检测到的 GPU 都可用
日志级别
控制守护进程的详细程度:
toml
[daemon]
log_level = "info" # error | warn | info | debug | trace级别:
error:仅关键错误warn:警告和错误info:一般信息(默认)debug:详细调试信息trace:非常详细(包括所有内部操作)
环境变量
通过环境配置
gflow 支持带 GFLOW_ 前缀的环境变量配置:
bash
# 设置守护进程主机
export GFLOW_DAEMON_HOST="localhost"
# 设置守护进程端口
export GFLOW_DAEMON_PORT="59000"
# 设置日志级别
export GFLOW_LOG_LEVEL="debug"
# 使用这些设置启动守护进程
gflowd up优先级:
- 命令行参数(如果可用)
- 配置文件(
--config或默认) - 环境变量
- 内置默认值
文件位置
标准目录
gflow 使用 XDG 基本目录规范:
bash
# 配置
~/.config/gflow/
└── gflow.toml # 主配置文件
# 数据(状态和日志)
~/.local/share/gflow/
├── state.json # 持久任务状态
└── logs/ # 任务输出日志
├── 1.log
├── 2.log
└── ...
# 运行时(可选,默认不使用)
~/.local/share/gflow/故障排除配置
问题:找不到配置文件
检查位置:
bash
ls -la ~/.config/gflow/gflow.toml解决方案:创建默认配置或使用 --config 指定
问题:端口已在使用
检查端口:
bash
lsof -i :59000解决方案:
在配置中更改端口:
toml[daemon] port = 59001杀死使用该端口的进程:
bashkill <PID>
最佳实践
- 使用默认配置 除非您有特定需求
- 定期备份状态 如果任务历史很重要
- 定期清理日志 以管理磁盘空间