linux 内存优化

来源:互联网 发布:网红淘宝 扒皮 编辑:程序博客网 时间:2024/05/17 03:24

linux 内存优化:

1>. /proc是一个虚拟文件系统,我们可以通过对它的读写操作作为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整。也就是说我们可以通过调整/proc/sys/vm/drop_caches来释放内存。

2>. 关于drop_caches的官方说明如下:
Writing to this file causes the kernel to drop clean caches,dentries and inodes from memory, causing that memory to becomefree.
To free pagecache(页缓存), use echo 1 > /proc/sys/vm/drop_caches;
to free dentries(目录树) and inodes, use echo 2 > /proc/sys/vm/drop_caches;
to free pagecache, dentries and inodes, use echo 3 >/proc/sys/vm/drop_caches.
Because this is a non-destructive operation and dirty objects are not freeable, the user should run sync first.

3>. Linux内核会将它最近访问过的文件页面缓存在内存中一段时间,这个文件缓存被称为pagecache。

手动释放linux内存cache和脚本定时释放:freemem.sh

#!/bin/bashused=`free -m | awk 'NR==2' | awk '{print $3}'`free=`free -m | awk 'NR==2' | awk '{print $4}'`echo "===========================" >> /var/log/mem.logdate >> /var/log/mem.logecho "Memory usage | [Use:${used}MB][Free:${free}MB]" >> /var/log/mem.logif [ $free -le 100 ] ; then                sync && echo 1 > /proc/sys/vm/drop_caches                sync && echo 2 > /proc/sys/vm/drop_caches                sync && echo 3 > /proc/sys/vm/drop_caches                echo "OK" >> /var/log/mem.logelse                echo "Not required" >> /var/log/mem.log

将脚本添加到crond任务,定时执行。
释放前最好sync一下,防止丢数据

echo “/30 * * * root /root/satools/freemem.sh” >> /etc/crontab

0 0
原创粉丝点击