【Ollama Docker】長時間放置後にGPUからCPUに戻る問題の解決法

この記事では、OllamaのDockerコンテナを長時間放置すると、GPU推論からCPU推論に切り替わってしまい、応答速度が極端に遅くなる問題について解説します。

1. どんな問題(エラー)が発生したか?

  • 発生した環境やツール: Docker + Ollama、RTX 3090、NVIDIA Driver最新版
  • エラーメッセージ: 明示的なエラーメッセージはなし(サイレントにCPUフォールバック)
  • 症状: 12時間〜1日以上アイドル状態が続くと、次のリクエストでGPUが使用されずCPUのみで推論が行われる。コンテナの再起動で復旧する

2. 結論(解決策)

OLLAMA_KEEP_ALIVE環境変数を設定してモデルをメモリに保持するか、定期的にヘルスチェックリクエストを送ることで防止できます。

3. 具体的な手順

方法1: OLLAMA_KEEP_ALIVEの設定(推奨)

Docker Composeの環境変数に以下を追加します:

services:
  ollama:
    image: ollama/ollama:latest
    environment:
      - OLLAMA_KEEP_ALIVE=24h
      - CUDA_VISIBLE_DEVICES=0
      - OLLAMA_DEBUG=1
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              capabilities: [gpu]
              count: all

方法2: cronによる定期ヘルスチェック

# crontabに追加(30分ごとにリクエスト送信)
*/30 * * * * curl -s http://localhost:11434/api/generate -d '{"model":"llama3:8b","prompt":"hi","stream":false}' > /dev/null 2>&1

方法3: Docker再起動ポリシーの設定

docker update --restart=always ollama

4. 補足・注意点

  • この問題はOllama v0.1.x系で頻繁に報告されていましたが、最新版でも環境によっては発生する可能性があります
  • OLLAMA_DEBUG=1を設定しておくと、GPU割り当ての状態がログで確認できます
  • 複数GPUを使用している場合、CUDA_VISIBLE_DEVICESで明示的にデバイスを指定すると安定することがあります

5.
👉 【RunPod】1時間数十円から使える高性能クラウドGPU

参考元

🔧 おすすめの開発環境

本記事の手順を快適に進めるための推奨スペック:

🔧 快適な開発環境のために

本記事の手順をスムーズに進めるために、以下のスペックを推奨します。

この記事は役に立ちましたか?