Sto cercando di capire quali sono esattamente gli inpecie, le dentature e gli inode . Cosa sono esattamente?
user3344003 ha già fornito una risposta esatta a quella domanda specifica, ma è comunque importante notare che le strutture di memoria sono allocate dinamicamente.
Quando non c'è un uso migliore per "memoria libera", la memoria verrà utilizzata per quelle cache, ma automaticamente eliminata e liberata quando alcune altre applicazioni "più importanti" desiderano allocare memoria.
No, quelle cache non hanno alcun effetto sulle cache gestite da alcuna applicazione (compresi redis e memcached).
Il mio server RAM Amazon EC2 è stato sempre riempito durante i giorni - dal 6% al fino al 95% nel giro di 7 giorni. Devo eseguire un cronjob bisettimanale per rimuovere queste cache. Quindi l'utilizzo della memoria scende nuovamente al 6%.
Probabilmente stai interpretando male la situazione: il tuo sistema potrebbe semplicemente fare un uso efficiente delle sue risorse.
Semplificare un po 'le cose: la memoria "libera" può anche essere vista come "inutilizzata", o anche più drammatica - uno spreco di risorse: hai pagato per questo, ma non utilizzarlo. Questa è una situazione molto poco economica, e il kernel di Linux cerca di fare un uso "più utile" della memoria "libera".
Parte della sua strategia consiste nell'utilizzarlo per salvare vari tipi di I/O su disco utilizzando varie cache di memoria di dimensioni dinamiche. Un rapido accesso alla memoria cache risparmia l'accesso "lento" al disco, quindi è spesso un'idea utile.
Non appena un processo "più importante" vuole allocare memoria, il kernel di Linux libera volontariamente quelle cache e rende la memoria disponibile per il processo di richiesta. Quindi di solito non è necessario "liberare manualmente" quelle cache.
Il kernel Linux può anche decidere di scambiare la memoria di un processo altrimenti inattivo su disco (spazio di swap), liberando RAM da utilizzare per attività "più importanti", probabilmente anche per essere utilizzata come cache.
Quindi, fintanto che il sistema non esegue attivamente lo swap in/out, ci sono pochi motivi per svuotare manualmente le cache.
Un caso comune di "svuotamento manuale" di tali cache è puramente per confronto comparativo: la tua prima corsa benchmark può essere eseguita con cache "vuote" e quindi dare scarsi risultati, mentre una seconda sessione mostrerà risultati "migliori" (dovuti alle cache pre-riscaldate). Scaricando le cache prima dell'esecuzione di un benchmark, si rimuovono le cache "riscaldate" e quindi le serie di benchmark sono più "giuste" per essere confrontate l'una con l'altra.
Questi approcci non dovrebbero in realtà avere nulla a che fare con memcached o redis. Queste due applicazioni manterrebbero i loro meccanismi interni di caching per fornire le loro funzionalità all'utente finale e se le vostre 3 operazioni di sistema abbiano o meno impatto su di esse sono un dettaglio di implementazione di Memcached o redis. – jdi
Sono un po 'in ritardo con questa discussione, ma sarebbe bene sapere come si determina che il 95% della RAM è usato nel tuo VM. Spesso c'è un equivoco che tutta la memoria fisica è usata mentre è esattamente nella cache dei buffer + che stiamo discutendo qui. Vedi [link] (http://www.linuxatemyram.com/) per una buona spiegazione di quelle colonne. – bfloriang
Amazon EC2 monitoraggio dettagliato riporta l'utilizzo della memoria (RAM) e utilizzato per mostrare il 95% di utilizzo .. A volte anche 98-99% –