Thứ Năm, 4 tháng 10, 2018

How to Flush Memory Cache and Buffer Cache on Linux

Many times systems faced low memory issues of Linux systems running a while. The reason is that Linux uses so much memory for disk cache is because the RAM is wasted if it isn’t used. Cache is used to keep data to use frequently by the operating system. Reading data from cache if 1000’s time faster than reading data from hard drive.
It’s good for the os to get data from the cache in memory. But if any data not found in the cache, it reads from hard disk. So it’s no problem to flush cache memory. This article has details about how to Flush Memory Cache on Linux Server.

Clear Linux Memory Buffer Cache

There are three options available to flush the cache of Linux memory. Use one of below as per your requirements.
  • Free pagecache, dentries and inodes in cache memory
    sync; echo 3 > /proc/sys/vm/drop_caches
    
  • Free dentries and inodes use following command
    sync; echo 2 > /proc/sys/vm/drop_caches
    
  • Free pagecache only use following command
    sync; echo 1 > /proc/sys/vm/drop_caches
    

Schedule Cron to Flush Cache Regularly

It’s a good idea to schedule following in crontab to automatically flush cache on the regular interval. Use ‘crontab -e’ command to edit cron on your system.
crontab -l

0 * * *  * sync; echo 3 > /proc/sys/vm/drop_caches
The above cron will execute on every hour and flushes the memory cache on your system.

Find Cache Memory uses in Linux

Use free command to find out cache memory uses by Linux system. Output of free command is like below
free -m
Sample Output
             total       used       free     shared    buffers     cached
Mem:         16050      15908        142          0        120      14953
-/+ buffers/cache:        834      15216
Swap:            0          0          0
Last column is showing cached memory ( 14953 MB) by system. -m option is used for showing memory details in MB’s.

Share This!


Không có nhận xét nào:

Đăng nhận xét