How to Clear Memory Cache in Linux

Channel: Linux
Abstract: the next command will be triggered to clear cache memory. Scheduleng the Clear Memory Cache usiing Crontab You can also schedule a corn job to clear t

Memory cache is a critical component of any Linux system, helping to improve performance by storing frequently accessed data in a fast and easily accessible location. However, the cache can also become bloated over time, leading to degraded performance. Fortunately, it is relatively easy to clear the memory cache in Linux.

Clearing the memory cache is safe but not recommended every time. It can slow down the system performance as reading files from memory is much faster than persistent disk. Since it discards cached objects from memory, it may cost a significant amount of I/O and CPU to recreate the dropped objects.

This tutorial will help you to clear the memory cache on Linux/Unix system via the command line.

How to Clear Memory Cache on Linux

There are three options available to clear the memory cache in Linux. Choose one of the below options to flush the Linux system cache memory as per your requirements.

  • Clear PageCache, dentries and inodes in cache memory. In short it will clear all the memory cache:
    sync; echo 3 | sudo tee /proc/sys/vm/drop_caches 
    
  • Clear dentries and inodes only in cache memory
    sync; echo 2 | sudo tee /proc/sys/vm/drop_caches 
    
  • Clear page cache only in cache memory
    sync; echo 1 | sudo tee /proc/sys/vm/drop_caches 
    

Here the first command sync is used to synchronize all the in-memory cache files to the persistent storage. The next command is separated with a 「;」. Once the first command is completed, the next command will be triggered to clear cache memory.

Scheduleng the Clear Memory Cache usiing Crontab

You can also schedule a corn job to clear the cache on a regular basis. Schedule the following in system crontab to automatically flush cache memory at a regular interval.

Open a terminal and execute ‘crontab -e’ command to edit crontab:

crontab -e 

Append below entry to the file:

0 10 * *  * sync; echo 3 | sudo tee /proc/sys/vm/drop_caches

The above cron will execute on every hour and flushes the memory cache on your system.

On the production servers, it is not recommended to schedule a clear cache command. It can lead to data corruption or data loss. So beware before running the above command in a production environment.

How to find Cached Memory in Linux

Use free command to find out cache memory uses by Linux system. The output of the free command is like below

free -m 
Output 
             total       used       free     shared    buffers     cached
Mem:         16050      15908        142          0        120      12953
-/+ buffers/cache:        834      15216
Swap:            0          0          0

Here the last column is showing cached memory (12953 MB) on Linux system. The -m option is used to show output MB’s.

Ref From: tecadmin

Related articles