师者,传道,授业,解惑!

我们会在系统中安装内存监测工具来查看内存占用情况,它是服务器的运行效率的一个重要的参考指标,如果内存占用过大时如何快速的释放内存,今天我们来聊一下!

内存占用

之前的教程中,我们提到过Linux系统内存运行机制,在这里简单复习下。

Linux内存的占用分为真实占用、缓存占用、缓冲占用,其中后两者是为了提升系统运行效率,可以关闭或者情况,以达到释放内存的目的。

释放脚本

1
2
3
4
5
6
7
8
#!/bin/bash
echo "Release Before:"
free -h
sync
sleep 10
echo 3 > /proc/sys/vm/drop_caches
echo "Release After:"
free -h

注意:我们的脚本就是基于这个原理实现的,但因为Linux把文件放在内存中执行,如果直接释放,必然会导致数据的丢失,所以我们在释放前,还需要做一个同步操作。

脚本讲解

sync命令是将buff/cache中的数据写入到硬盘中,以达到同步数据的目的,这样可以防止数据丢失。

sleep命令是执行上一条命令后,等待一定秒数后继续实行下面的命令,使数据可以充分的同步,大家可以调整时间保证数据的完整性,注意时间不要太短!

运行效果

运行效果如下:

评论