Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Prevent backup reads from getting into linux page cache

AFAIK all disk reads on linux get into the page cache.

Is there a way to prevent reads (done by a backup process) to get in to the page cache?

Imagine:

  • A server runs fine, since most operations don't need to touch the disk, since enough memory is available.
  • Now the backup process starts and does a lot of reading. The read bytes get into the memory (page cache) although nobody wants to read the same bytes again in the next hours.
  • The backup data fills up the memory and more important pages from the cache get dropped.
  • Server performance gets worse since more operations need to touch the disk, because the relevant pages were dropped from the cache.

My preferred solution:

  • Tell linux that the reads done by the backup process don't need to be stored in the page cache.
like image 896
guettli Avatar asked Feb 05 '14 12:02

guettli


1 Answers

  • if you re using rsync there is the flag --drop-cache according to this question
  • the nocache utility which

minimize the effect an application has on the Linux file system cache

Use case: backup processes that should not interfere with the present state of the cache.

  • using dd there is direct I/O to bybass cache according to this question
  • the dd also has the option nocache option check the command info coreutils 'dd invocation'for details
like image 53
muhammedabuali Avatar answered Sep 30 '22 17:09

muhammedabuali