ERR Can't save in background: fork failed: Background save failed: fork failed
RedisNe demek?
Redis, arka planda RDB snapshot'ı veya AOF yeniden yazımı için alt süreç oluştururken (fork) başarısız oldu. Kalıcılık işlemi yapılamadığından veri diske yazılamıyor.
Neden olur?
İşletim sistemi fork için yeterli bellek ayıramıyor; genellikle overcommit_memory ayarı kapalı ve Redis'in kullandığı belleğin yaklaşık bir kopyasını ayırmaya çalışırken sistem reddediyor. Fiziksel/sanal bellek yetersizliği veya süreç sayısı limitleri de neden olabilir.
Nasıl çözülür?
Linux'ta bellek overcommit'i açın: sysctl vm.overcommit_memory=1 (kalıcı için /etc/sysctl.conf'a ekleyin). Sunucuya bellek ekleyin veya Redis bellek kullanımını (maxmemory) düşürün. Yeterli takas (swap) alanı sağlayın. Süreç/dosya tanıtıcısı limitlerini (ulimit) kontrol edin. Kalıcılık kritikse bu ayarları yapmadan üretime almayın.
Aynı motorda diğer kayıtlar
- ERR unknown subcommandERR unknown subcommand or wrong number of arguments
- ERR Client sent AUTH, but no password is setERR AUTH <password> called without any password configured for the default user (Redis 6+) / ERR Client sent AUTH, but no password is set (Redis <6)
- ERR DEBUG command not allowedDEBUG command not allowed
- NOPROTO unsupported protocol versionUnsupported RESP protocol version
- ERR Unknown option or number of arguments for CONFIG SETUnknown option or number of arguments for CONFIG SET (eski sürümlerde: Unsupported CONFIG parameter)
- ERR MULTI calls can not be nestedMULTI calls can not be nested
- ERR Lua script attempted to access nonexistent global variableLua script attempted to access a nonexistent global variable