Zde jsou některé zdroje "skryté" spotřeby paměti v Redis:
-
Marc se již zmínil o vyrovnávací paměti udržované pánem, aby krmil otroka. Pokud slave zaostává za svým masterem (protože například běží na pomalejším boxu), pak bude část paměti spotřebována na masteru.
-
když jsou detekovány dlouho běžící příkazy, Redis je zaznamená do oblasti SLOWLOG, což zabere trochu paměti. Možná budete chtít použít příkaz SLOWLOG LEN ke kontrole počtu záznamů, které zde máte.
-
komunikační vyrovnávací paměti mohou také zabírat paměť. Pokud si pamatuji, se starými verzemi Redis (a 2.4 je docela stará - měli byste opravdu upgradovat) to bylo neomezené, což znamená, že pokud přenesete velký objekt v určitém bodě, komunikační vyrovnávací paměť spojená s tímto klientským připojením se zvětší. a nikdy se nezmenšovat. Pokud existuje mnoho klientů, kteří se příležitostně zabývají velkými předměty, mohlo by to být možné vysvětlení. Pokud používáte příkazy pro načítání velmi velkých dat z Redis (na jeden záběr), může to být také vysvětlení. Například jednoduchý příkaz KEYS * použitý na serveru Redis, který ukládá miliony klíčů, spotřebuje značné množství paměti.
Zmínil jste, že máte objekty velké až 25 MB. Máte 404 klientských připojení, pokud každé z nich potřebuje v určitém okamžiku přistupovat k takovým objektům, spotřebuje to 10 GB paměti.