DBAtlas · データベース運用アトラス

ERR Can't save in background: fork failed: Background save failed: fork failed(バックグラウンド保存失敗: fork 失敗)

Redis

意味

Redis がバックグラウンドの RDB スナップショットまたは AOF 書換えのための子プロセスを作成 (fork) できなかった。永続化が実行できないため、データをディスクに書き込めない。

原因

OS が fork に十分なメモリを割り当てられない。通常は overcommit_memory が無効で、Redis が使用中のメモリのほぼコピー分を確保しようとするとシステムが拒否する。物理/仮想メモリの不足やプロセス数の上限も原因となる。

対処方法

Linux でメモリのオーバーコミットを有効にする: sysctl vm.overcommit_memory=1 (恒久化するには /etc/sysctl.conf に追加する)。サーバーにメモリを追加するか、Redis のメモリ使用量を下げる (maxmemory)。十分なスワップ領域を用意する。プロセス/ファイルディスクリプタの上限を確認する (ulimit)。永続化が重要な場合、これらの設定なしで本番運用しない。

DBAtlas で開く →

同じデータベースの他の項目