GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come cancellare il buffer/pagecache (cache del disco) in Linux

Stai affrontando un problema di prestazioni e sospetti che possa essere correlato all'utilizzo della cache? Un utilizzo elevato della cache normalmente non dovrebbe causare problemi di prestazioni, ma in alcuni rari casi potrebbe essere la causa principale.

Cos'è la cache di memoria

Per velocizzare le operazioni e ridurre l'I/O del disco, il kernel di solito esegue la memorizzazione nella cache della stessa quantità di memoria In base alla progettazione, le pagine contenenti dati memorizzati nella cache possono essere riproposte su richiesta per altri usi (ad es. app) Riutilizzo della memoria per l'uso in questo modo non è più lento che rivendicare pagine incontaminate e incontaminate.

Qual ​​è lo scopo di /proc/sys/vm/drop_caches

La scrittura in /proc/sys/vm/drop_caches consente di richiedere al kernel di eliminare immediatamente il maggior numero possibile di dati memorizzati nella cache. Questo di solito si tradurrà in una parte della memoria che diventa più ovviamente disponibile; tuttavia, in circostanze normali, ciò non dovrebbe essere necessario.

Come cancellare la cache di memoria utilizzando /proc/sys/vm/drop_caches

Scrivendo il valore appropriato nel file /proc/sys/vm/drop_caches fa sì che il kernel elimini cache, dentry e inode puliti dalla memoria, liberando quella memoria.

1. Per cancellare PageCache esegui solo:

# sync; echo 1 > /proc/sys/vm/drop_caches

2. Per cancellare le impronte (chiamate anche Directory Cache) e gli inode vengono eseguiti:

# sync; echo 2 > /proc/sys/vm/drop_caches

3. Per cancellare PageCache, dentries e inode eseguono:

# sync; echo 3 > /proc/sys/vm/drop_caches

L'esecuzione della sincronizzazione scrive le pagine sporche sui dischi. Normalmente le pagine sporche sono la memoria in uso, quindi non sono disponibili per la liberazione. Quindi, eseguire la sincronizzazione può aiutare le successive operazioni di rilascio a liberare più memoria.

Cache della pagina è la memoria trattenuta dopo la lettura dei file. Il kernel Linux preferisce mantenere la cache delle pagine inutilizzata presupponendo che i file letti una volta saranno probabilmente letti di nuovo nel prossimo futuro, evitando così l'impatto sulle prestazioni sull'IO del disco.

dentry e inode_cache sono memoria conservata dopo aver letto gli attributi di directory/file, come open() e stat(). dentry è comune a tutti i file system, ma inode_cache è in base al file system. Il kernel Linux preferisce mantenere queste informazioni presumendo che saranno nuovamente necessarie nel prossimo futuro, evitando quindi l'IO del disco.

Nota :Iniziare con il comando di sincronizzazione come mostrato nei 3 comandi precedenti è facoltativo. Il comando sync consente al kernel di scrivere sul disco quante più pagine di cache sporca possibile (per massimizzare il numero di pagine di cache di dati che possono essere eliminate)

Come cancellare la cache di memoria usando sysctl

Puoi anche attivare l'eliminazione della cache utilizzando sysctl -w vm.drop_caches=[numero] comando.

1. Per liberare pagecache, dentries e inode, usa il comando seguente.

sysctl -w vm.drop_caches=3

2. Per liberare solo denti e inode, usa il comando seguente.

sysctl -w vm.drop_caches=2 

3. Per liberare solo la cache di pagina, usa il comando seguente.

sysctl -w vm.drop_caches=1
Nota :L'uso di vm.drop_caches può causare un deadlock se il sistema ha una memoria pesante e un carico di I/O!!!

I dati memorizzati nella cache "puliti" possono essere eliminati. I dati memorizzati nella cache "sporchi" devono essere scritti da qualche parte. L'uso di vm.drop_caches non attiverà mai il kernel per eliminare la cache sporca.


Cent OS
  1. Come cancellare la cache del browser Web dalla riga di comando in Linux

  2. Come eliminare i buffer di memoria e la cache in Linux

  3. Come cancellare la cache di memoria in Linux

  4. Linux:come dare RAM alla cache del filesystem?

  5. Come posso svuotare la cache su Firefox?

Come cancellare o svuotare la cache DNS in Linux

Come gestire i volumi del disco in Linux

Come cancellare la cache della RAM, il buffer e lo spazio di scambio su un sistema Linux

Come cancellare la memoria di scambio in Linux

Come installare KernelCare e svuotare Kernelcare Cache in Linux

Come cancellare la cache di memoria RAM e il buffer e lo spazio di scambio su Linux