come cancellare completamente la cache del filesystem su linux?


9

In un test delle prestazioni, voglio bypassare l'influenza della cache del sistema linux (compresa la cache della pagina / cache dell'inode e così via).

Ho provato il flag O_DIRECT, ma si è scoperto che l'I / O diretto è ancora "apprezzato" dall'effetto di un po 'di cache.

Esiste un modo completo per chiudere l'effetto della cache di sistema?


2
Qual è il punto di un test delle prestazioni così "irreale"? Stai provando a provare qualcosa che nessun sistema operativo moderno non permetterebbe mai di accadere.

Sfortunatamente, non è affatto irreale, è ancora come funziona oggi il kernel aio. Vorrei tanto che Mr.T si rendesse conto che I / O asincrono e cache non sono termini reciprocamente esclusivi. È qualcosa che i ragazzi di Microsoft hanno già realizzato 15 anni fa (anche se le prestazioni prima di Vista possono essere deludenti, specialmente sotto concorrenza). Anche un ragazzo indiano ha scritto una patch anni fa, ma è stato rifiutato.

Risposte:


14

(in realtà scende così ..) corri syncprima, poi

pagecache gratis:

echo 1 > /proc/sys/vm/drop_caches

dentisti e inode gratuiti:

echo 2 > /proc/sys/vm/drop_caches

pagecache, dentries e inode gratuiti:

echo 3 > /proc/sys/vm/drop_caches

Quindi puoi iniziare con una cache pulita, ma ovviamente la cache funzionerà comunque.


ho sentito parlare di questo metodo da qualche parte. ma non ci sono file simili sul mio Ubuntu 10.04. quindi non sono riuscito a eseguire i comandi sopra.

@tom_cat: è necessario un kernel più recente della 2.6.16 e Ubuntu 10.04 è arrivato con 2.6.32 se non sbaglio, quindi dovrebbe funzionare. Ho appena controllato la mia installazione 11.04 per quello che vale, che ha questa voce proc (sfortunatamente n. 10.04 qui più)

@Damon: Sì, hai ragione. grazie mille. Ho scoperto di aver effettuato l'accesso a una macchina remota del kernel più vecchio.

0

no, non puoi bypassare la cache. Tuttavia, è possibile forzare una sincronizzazione del file system (il che significa cancellare la cache e scrivere i dati sul disco) con la chiamata di sistema aggiuntiva fsync (3).

Saluti, CK

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.