服务器内存缓存清理

1、内存查看

free -h   #以GB为单位展示当前系统内存数据
free -m   #以MB为单位展示当前系统内存数据

2、直接清除缓存

echo 1 > /proc/sys/vm/drop_caches   
echo 2 > /proc/sys/vm/drop_caches   
echo 3 > /proc/sys/vm/drop_caches   
#说明
#echo 1 > /proc/sys/vm/drop_caches:表示清除pagecache,当前产链服务器缓存主要在这里。
#echo 2 > /proc/sys/vm/drop_caches:表示清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache。
#echo 3 > /proc/sys/vm/drop_caches:表示清除pagecache和slab分配器中的缓存对象。

3、脚本清除

(1)root账号登陆服务器
(2)新建文件夹 /opt/clean和/opt/clean/logs
(3)新建freemem.sh脚本
(4)给freemem.sh脚本赋权777

3.1、脚本内容

#! /bin/sh  
used=`free -m | awk 'NR==2' | awk '{print $3}'`  
free=`free -m | awk 'NR==2' | awk '{print $4}'`  
echo "===========================" >> /opt/clean/logs/mem.log  
date >> /opt/clean/logs/mem.log  
echo "Memory usage before | [Use:${used}MB][Free:${free}MB]" >> /opt/clean/logs/mem.log  
if [ $free -le 4000 ] ; then  
            sync && echo 1 > /proc/sys/vm/drop_caches  
            used_ok=`free -m | awk 'NR==2' | awk '{print $3}'`  
            free_ok=`free -m | awk 'NR==2' | awk '{print $4}'`  
            echo "Memory usage after | [Use:${used_ok}MB][Free:${free_ok}MB]" >> /opt/clean/logs/mem.log  
            echo "OK" >> /opt/clean/logs/mem.log  
else  
            echo "Not required" >> /opt/clean/logs/mem.log  
fi  
exit 1  

3.2、设置脚本定时执行

(1)使用crontab -e命令编辑crontab,文末添加

0 6 * * * /opt/clean/freemem.sh
# (0 6 * * * )为cron表达式,可根据实际需求自行调整时间

(2)重启crond服务

	/sbin/service crond restart
  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 清除 Linux 服务器缓存的方法有多种,以下是其中两种常用的方法: 1. 通过 sync 命令清除缓存 使用 sync 命令可以将内存中的数据写入磁盘,从而清除缓存。具体操作如下: ``` sync echo 1 > /proc/sys/vm/drop_caches ``` 第一行命令是将内存中的数据写入磁盘,第二行命令是清除缓存。执行完这两行命令后,缓存就被清除了。 2. 通过 sysctl 命令清除缓存 使用 sysctl 命令可以修改内核参数,从而清除缓存。具体操作如下: ``` sysctl -w vm.drop_caches=3 ``` 执行这行命令后,缓存就被清除了。其中,vm.drop_caches 参数的取值有三种: - 1:清除页缓存 - 2:清除 dentries 和 inodes - 3:清除页缓存、dentries 和 inodes 建议使用第三种方式清除缓存,因为它可以清除所有类型的缓存。 ### 回答2: 在使用Linux服务器的过程中,可能会出现系统缓存占用过多内存的情况。这时候,清除缓存就是一个很好的解决方法。下面就来介绍一下在Linux服务器上如何清除缓存。 一、通过sync命令清除缓存 sync命令可以将缓存数据写入磁盘中,从而释放缓存。在终端输入“sync”命令即可执行。 二、通过echo 3 > /proc/sys/vm/drop_caches命令清除缓存 这条命令可以清除页面缓存以及inode和目录的缓存。在终端输入该命令即可执行。建议在清除前备份重要的文件,以防损失。 三、通过free命令查看和清除缓存 在终端输入“free -m”命令可以查看当前系统的内存使用情况,包括物理内存和虚拟内存。其中“Buffers”和“Cached”两个参数表示页面缓存和目录缓存所占的内存大小。可以通过重启服务器或者在终端输入“sync; echo 3 > /proc/sys/vm/drop_caches”命令来清除缓存。如有需要,也可以在终端中输入“echo 1 > /proc/sys/vm/drop_caches”来清除页面缓存,或者“echo 2 > /proc/sys/vm/drop_caches”来清除目录缓存。 四、通过sysctl命令清除缓存 使用sysctl命令可以查看和修改操作系统内核的参数。在终端输入“sysctl -w vm.drop_caches=3”即可清除缓存。这条命令与“echo 3 > /proc/sys/vm/drop_caches”命令等价。 总的来说,在Linux服务器中清除缓存是非常简单的。通过上述命令,我们可以轻松地释放系统内存,提高系统的性能。但是,在清除缓存之前,需要备份好重要的文件,以防数据丢失。 ### 回答3: Linux服务器缓存,指的是系统内存缓存的一些数据,包括文件系统缓存、目录项缓存、inode缓存、交换缓存等等。这些缓存虽然能够提高系统的性能,但是也会占用大量的内存空间,导致系统的运行越来越缓慢。下面是对于Linux服务器清除缓存的方法进行分析: 一、清除文件系统缓存 文件系统缓存是由Linux内核自动管理的,通常情况下,Linux会自动释放这些缓存。但是,在某些情况下,可能需要手动清除文件系统缓存,这可以通过sync命令和echo命令来实现。具体命令如下: sudo sync && sudo echo 3 > /proc/sys/vm/drop_caches 这个命令的含义是先将缓存中的数据写入到磁盘中,然后将缓存清空。其中,数字3表示释放缓存的等级,数字越大,代表释放的缓存越多。 二、清除目录项缓存 目录项缓存缓存目录结构的信息,它可以提高文件系统的访问速度。但是在某些情况下,需要手动清除目录项缓存,比如在修改文件目录结构后。清除目录项缓存的命令如下: sudo sync && sudo echo 2 > /proc/sys/vm/drop_caches 其中,数字2表示只清除目录项缓存。 三、清除inode缓存 inode缓存缓存文件系统的元数据,包括文件的属性、权限信息等。如果缓存中的信息过期或者需要清理,可以使用如下命令手动清空inode缓存: sudo sync && sudo echo 1 > /proc/sys/vm/drop_caches 其中,数字1表示只清除inode缓存。 四、清除交换缓存 交换缓存是指Linux系统中的虚拟内存,它用于缓存未被使用的部分数据,以便保证系统的正常运行。如果需要手动清除交换缓存,可以使用如下命令: sudo swapoff -a && sudo swapon -a 这个命令的含义是将所有交换分区关闭,然后重新启用交换分区,从而清空缓存。 总结 Linux服务器中的缓存对于系统的运行有着很大的影响,因此需要及时清理。但是要注意在清理缓存时,要谨慎选择清理哪些缓存,避免出现系统运行出现问题的情况。另外,可以通过设置Linux系统的内核参数,来减少缓存的占用,从而提高系统的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值