Dify でストレージスペースを削減する方法

Posted on
375 words, 2 minutes to read

Contents

Overview

Dify のアプリケーションにアップロードしたファイルなどのデータは、時間が経つとストレージスペースを圧迫することがあります。 これらのファイルを削除して、ストレージスペースを削減する方法を紹介します。

手動でのデータクリーンアップ

Dify では、管理者が手動で不要なデータを削除するためのコマンドが用意されています。

テナントIDの確認

Terminal window
docker exec -it docker-api-1 bash -c "echo 'from models import Tenant; db.session.query(Tenant.id, Tenant.name).all(); quit()' | flask shell"

古いログの削除

Terminal window
docker exec -it docker-api-1 flask clear-free-plan-tenant-expired-logs \
--days 30 \
--batch 100 \
--tenant_ids <tenant id>

参照されていないファイルのレコードの削除

注意書きが表示されるので、確認の上実行しましょう。

Terminal window
docker exec -it docker-api-1 flask clear-orphaned-file-records

レコードに載っていないファイルの削除

Terminal window
docker exec -it docker-api-1 flask remove-orphaned-files-on-storage

ハウスキープジョブの有効化

デフォルトではハウスキープジョブは無効化されています。 有効化するには、 .env ファイルで有効化する必要があります。

以下は、 dify v1.11.4 での設定例です。

WORKFLOW_LOG_CLEANUP_ENABLED=true
# Celery schedule tasks configuration
ENABLE_CLEAN_EMBEDDING_CACHE_TASK=true
ENABLE_CLEAN_UNUSED_DATASETS_TASK=true
ENABLE_CLEAN_MESSAGES=true

実際のハウスキープの処理内容は以下にソースコードがあります

Conclusion

Dify コミュニティ版では、長期間運用すると、ストレージスペースが肥大化してきますので、定期的に不要なデータを削除していきたいと思います。 デフォルトで、有効化しておいてくれてもいいのにな、と(個人的には)思います。 😎

References

このBlogの内容は個人の意見に基づくものであり、 所属組織団体の公式見解とは異なる場合があります点、ご了承ください。