AI のワークフローを画面で組む道具を、自宅のサーバーで動かした
測った道具: Dify 1.17.1(公式の Docker Compose 一式)。確認日: 2026-10-07(11:35 と 12:31 の 2 回・JST)。
公式サイトの説明では、エージェント・ナレッジの処理・モデル・ツールを 1 つの画面(キャンバス)の上で組み立てられ、クラウドでも自分のサーバーでも動かせる道具です(公式サイト・2026-10-07 確認)。
結果(実測・2 回)
| 項目 | 1 回目 | 2 回目 |
|---|---|---|
| 起動時間(起動の命令 → 画面と API が応答) | 66.3 秒 | 103.6 秒 |
| コンテナの数 | 15 個 | 15 個 |
| メモリ: 応答した時 | 2,177 MiB | 2,132 MiB |
| メモリ: 1 分後 | 2,192 MiB | 2,095 MiB |
| メモリ: 軽い操作の後 | 2,238 MiB(※) | 2,180 MiB |
| メモリ: 3 分後 | 2,201 MiB | 2,126 MiB |
| RSS 相当(3 分後・cgroup の anon の合計) | 1,840 MiB | 1,847 MiB |
| ファイルキャッシュ込みの最大(各コンテナの memory.peak の和) | 3,301 MiB | 3,316 MiB |
| 機械の空きメモリ(測る前 → 測っている間の最小) | 8,483 → 6,132 MB | 5,989 → 4,494 MB |
| 止めてデータごと消すまで | 15.9 秒 | 16.2 秒 |
| イメージ(展開後) | 12 個・2.83 GB | |
メモリは docker stats の表示の合計(MiB は整数に丸め)。「1 分後」「3 分後」は応答した時からです。同じ手順で 2 回測り、起動時間は 66.3 秒と 103.6 秒でした。ほかのサービスも動いている機械なので、起動時間はぶれます。
どこがメモリを使っているか(2 回目・3 分後)
| コンテナ | docker stats | RSS 相当 |
|---|---|---|
| api | 435 MiB | 399 MiB |
| api_websocket | 417 MiB | 384 MiB |
| worker | 412 MiB | 387 MiB |
| worker_beat | 403 MiB | 374 MiB |
| agent_backend | 113 MiB | 108 MiB |
| web | 107 MiB | 83 MiB |
| db_postgres | 63 MiB | 15 MiB |
| weaviate | 50 MiB | 37 MiB |
| sandbox | 41 MiB | 6 MiB |
| agent_ssrf_proxy | 26 MiB | 11 MiB |
| ssrf_proxy | 23 MiB | 21 MiB |
| plugin_daemon | 18 MiB | 13 MiB |
| local_sandbox | 9 MiB | 4 MiB |
| nginx | 6 MiB | 4 MiB |
| redis | 4 MiB | 2 MiB |
上の 4 つ(api・api_websocket・worker・worker_beat)で 1,667 MiB、全体の 78% でした(計算)。
何をしたか
- 公式の GitHub の
docker/にあるdocker-compose.yamlと.env.exampleを使いました。変えたのは、外に開く番号(ポート)を同じ機械の中(127.0.0.1)だけにする設定・プロジェクトの名前・ログの大きさの上限(10MB)だけです。 - 起動の命令から、画面と API が応答するまでを測りました(イメージのダウンロードは含みません)。
- 軽い操作: 管理者の初期設定 → ログイン → チャットのアプリを 1 つ作る → アプリの一覧を 10 回開く → 画面を 3 枚開く。(※)1 回目はログインが通らず(401)、アプリの作成と一覧は 2 回目だけ通りました。1 回目の「軽い操作の後」は、アプリの作成と一覧ができなかった回の値です(画面 3 枚は開いています)。
- 応答した時・1 分後・軽い操作の後・3 分後にメモリを記録し、測り終えたら止めて、作ったデータごと消しました。
つまずいた所(実測): .env のプラグインのデバッグ用の番号(EXPOSE_PLUGIN_DEBUGGING_PORT)に 127.0.0.1: を付けると、api のコンテナが「PLUGIN_REMOTE_INSTALL_PORT must be a bare port number」で起動を繰り返しました。この番号だけは、.env ではなく compose の上書きファイル(docker-compose.override.yaml)の ports で同じ機械の中だけに開きました(画面の番号は .env で 127.0.0.1: を付けて動きました)。
測っていないこと(未計測)
- AI モデルの呼び出しと、ワークフロー・アプリを動かした時のメモリ(API キーを入れていません)
- ナレッジ(文書)を入れた時のメモリとディスク
- 24 時間の安定(ほかのサービスを圧迫しないよう、3 分で止めています)
- 借りたサーバーでの値
公式の値(未実測)
CPU 2 コア以上・RAM 4GiB 以上(GitHub の README・2026-10-07 確認)。
インターネットに出す前に
測った時は、画面と API を同じ機械の中(127.0.0.1)だけに開き、インターネットには出していません。 公開済みの脆弱性と、直った版は、公式のセキュリティ勧告(GitHub)に載っています。置く前と版を上げる前に、使う版に当てはまる勧告が無いかを確かめ、勧告に修正済みと書かれた版を使ってください。
公式のページ
測定は、さたの自宅サーバーの上で AI エージェントが手順どおりに実行し、出力から抜き出して載せています。文章は AI が書いています。