89.jpg?x-oss-process=image/auto-orient,1/quality,q_90/watermark,image_bG9nby5wbmc_eC1vc3MtcHJvY2Vzcz1pbWFnZS9yZXNpemUsUF8yMA,g_center,t_50,x_10,y_10

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

内存机制

Linux在运行时会将硬盘中的常用数据缓存在内存,通过内存的速率提升系统的效率。

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

运行效果如下:

89-1.jpg?x-oss-process=image/auto-orient,1/quality,q_90/watermark,image_bG9nby5wbmc_eC1vc3MtcHJvY2Vzcz1pbWFnZS9yZXNpemUsUF8yMA,g_center,t_50,x_10,y_10


 评论