Vedo sfratti quando la memcache è piena solo al 40%. Come è possibile?Evizione memorizzata quando la cache è piena al 40%
risposta
Controllare le dimensioni della lastra eseguendo le statistiche memcached. Sembra che le tue lastre non siano popolate uniformemente e ciò causa gli sfratti anche quando la cache non è piena.
Questo è esattamente il caso che abbiamo avuto. Una delle lastre nel secchio predefinito era piena e stava causando gli sfratti. Abbiamo creato un nuovo bucket solo per quegli oggetti di dimensioni quasi uguali e non abbiamo più questo problema. Grazie a tutti per le vostre risposte. – apatel
Memcached memorizza i dati in base alle lastre di diversi blocchi di memoria. Se i diversi blocchi di memoria sono già allocati, l'algoritmo meno utilizzato di recente viene eseguito sulla lastra ed espelle i dati, anche se non ci sono dati in altre lastre di memoria.
Pertanto una grande distribuzione di dimensioni dei dati può essere responsabile di questo problema. Avendo più istanze di memcached in esecuzione e utilizzandolo come un sistema distribuito, il problema può essere ridotto.
Ho scritto una lunga spiegazione allo this question che si applicherebbe ugualmente anche a questo.
- 1. ThreadPoolExecutor Block quando la coda è piena?
- 2. La coda JMS è piena
- 3. Come rilevare quando XHR restituisce una risorsa memorizzata nella cache?
- 4. La cache di output della pagina è memorizzata nell'oggetto cache ASP.NET?
- 5. ERRORE 1114 (HY000): La tabella è piena
- 6. Perché la piena pigrizia è un'ottimizzazione predefinita?
- 7. La cache del provider di ruoli viene memorizzata per richiesta?
- 8. Java - HttpUrlConnection restituisce ogni volta la risposta memorizzata nella cache
- 9. Su iOS dove è memorizzata la cache NSURLCache se diskPath: nil?
- 10. Le etichette dei nodi JTree cambiano spesso ma la larghezza è memorizzata nella cache
- 11. Android - Perché la mia app utilizza circa 40 MB di processo in background in cache?
- 12. Dove è memorizzata la configurazione "URL Jenkins"?
- 13. La connessione al servizio denominato com.apple.nsurlstorage-cache è stata invalidata
- 14. non è stato possibile raggiungere la piena precisione in 'qbeta'
- 15. Come faccio a forzare le note a fondo pagina quando la pagina non è piena?
- 16. Cosa succede quando Varnish Cache è pieno?
- 17. Confuso su priorità impostazione variabile memorizzata nella cache di CMake
- 18. Associazione di 40 socket a 40 indirizzi IP diversi
- 19. L'intestazione del pannello non è piena
- 20. Utilizza la cache dell'applicazione solo quando è offline
- 21. Aggiorna/modifica bitmap memorizzata nella cache utilizzando Picasso e OkHttp
- 22. fetch(), come si effettua una richiesta non memorizzata nella cache?
- 23. Utilizzando parola chiave static in Objective-C quando si definisce una variabile memorizzata nella cache
- 24. MySQL utente creato tabella temporanea è piena
- 25. Spingere il piè di pagina in basso quando la pagina non è piena
- 26. Cosa succede se la coda di ExecutorService è piena
- 27. Quando $ .cache è ritenuto troppo grande?
- 28. come cancellare o sostituire un'immagine memorizzata nella cache
- 29. Come vengono sostituiti i dati nella memcached quando è piena e le prestazioni di memcache?
- 30. come verificare se un'immagine è stata memorizzata nella cache in js?
Hmmm su quale sistema si sta utilizzando memcached? Memcached ha un'implementazione di memoria con mappatura diretta? Non vedo perché sarebbe ... ma chissà. – PinkElephantsOnParade
Abbiamo un cluster di 4 nodi in esecuzione su Linux RedHat. Non sei sicuro di cosa intendessi per implementazione della memoria con mappatura diretta. Ma stiamo usando membase che fornisce memcached come pacchetto. – apatel
http://stackoverflow.com/questions/6868256/memcached-eviction-prior-to-key-expiry/10456364#10456364 –