执行数据
根据您的执行设置和数量,您的 n8n 数据库可能会增长并耗尽存储空间。
为了避免这种情况,n8n 建议您不要保存不必要的数据,并启用旧执行数据的清理。
为此,请配置相应的环境变量 。
减少保存的数据
工作流级别的配置
您也可以使用工作流设置 在单个工作流基础上配置这些设置。
您可以选择 n8n 保存哪些执行数据。例如,您可以只保存导致 Error
的执行。
1
2
3
4
5
6
7
8
9
10
11
12 # npm
# 保存以错误结束的执行
export EXECUTIONS_DATA_SAVE_ON_ERROR = all
# 不保存成功的执行
export EXECUTIONS_DATA_SAVE_ON_SUCCESS = none
# 不保存每次执行的节点进度
export EXECUTIONS_DATA_SAVE_ON_PROGRESS = false
# 不保存手动启动的执行
export EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS = false
# Docker
docker run -it --rm \
--name n8n \
-p 5678 :5678 \
-e EXECUTIONS_DATA_SAVE_ON_ERROR = all \
-e EXECUTIONS_DATA_SAVE_ON_SUCCESS = none \
-e EXECUTIONS_DATA_SAVE_ON_PROGRESS = true \
-e EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS = false \
docker.n8n.io/n8nio/n8n
# Docker Compose
n8n :
environment :
- EXECUTIONS_DATA_SAVE_ON_ERROR=all
- EXECUTIONS_DATA_SAVE_ON_SUCCESS=none
- EXECUTIONS_DATA_SAVE_ON_PROGRESS=true
- EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS=false
启用执行清理
执行清理会定期删除已完成的执行及其执行数据和二进制数据。n8n默认启用清理。出于性能原因,清理首先标记要删除的目标,然后稍后永久删除它们。
当满足以下任一 条件时,n8n会清理执行:
年龄 :执行在EXECUTIONS_DATA_MAX_AGE
小时前完成(默认:336小时->14天)。
数量 :执行总数超过EXECUTIONS_DATA_PRUNE_MAX_COUNT
(默认:10,000)。当发生这种情况时,n8n会从最旧到最新删除执行。
请记住:
状态为new
、running
或waiting
的执行不符合清理条件。
带注释的执行永久免于清理。
清理遵循EXECUTIONS_DATA_HARD_DELETE_BUFFER
小时的安全缓冲期(默认:1小时),以确保在用户构建或调试工作流时最近的数据仍然可用。
# Enable executions pruning
export EXECUTIONS_DATA_PRUNE = true
# How old (hours) a finished execution must be to qualify for soft-deletion
export EXECUTIONS_DATA_MAX_AGE = 168
# Max number of finished executions to keep. May not strictly prune back down to the exact max count. Set to `0` for unlimited.
export EXECUTIONS_DATA_PRUNE_MAX_COUNT = 50000
# Docker
docker run -it --rm \
--name n8n \
-p 5678 :5678 \
-e EXECUTIONS_DATA_PRUNE = true \
-e EXECUTIONS_DATA_MAX_AGE = 168 \
docker.n8n.io/n8nio/n8n
# Docker Compose
n8n :
environment :
- EXECUTIONS_DATA_PRUNE=true
- EXECUTIONS_DATA_MAX_AGE=168
- EXECUTIONS_DATA_PRUNE_MAX_COUNT=50000
SQLite
如果您使用默认的 SQLite 数据库运行 n8n,任何清理数据的磁盘空间不会自动释放,而是重新用于未来的执行数据。要释放此空间,请配置 DB_SQLITE_VACUUM_ON_STARTUP
环境变量 或手动运行 VACUUM 操作。
二进制数据清理
二进制数据清理在活动的二进制数据模式上运行。例如,如果您的实例在 S3 中存储数据,然后您切换到文件系统模式,n8n 只会清理文件系统中的二进制数据。这在将来可能会改变。