自动释放linux内存&/dev/shm调整
手动去释放内存命令:
XML/HTML代码
- free -m
- sync
- echo 1 > /proc/sys/vm/drop_caches
- echo 2 > /proc/sys/vm/drop_caches
- echo 3 > /proc/sys/vm/drop_caches
- free -m
手动写入自动清理并做记录的sh命令脚本:
1)在root目录下创建一个freemem.sh的脚本:
# vi freemem.sh
复制如下脚本进去:
XML/HTML代码
- #!/bin/bash
- used=`free -m | awk 'NR==2' | awk '{print $3}'`
- free=`free -m | awk 'NR==2' | awk '{print $4}'`
- echo "===========================" >> /var/log/mem.log
- date >> /var/log/mem.log
- echo "Memory usage | [Use:${used}MB][Free:${free}MB]" >> /var/log/mem.log
- if [ $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.log
- else
- echo "Not required" >> /var/log/mem.log
- fi
- exit
按esc输入:wq,保存退出!
2)加入Linux Crontab 定时任务:
XML/HTML代码
- echo "00 00 * * * root /root/freemem.sh" >> /etc/crondtab
XML/HTML代码
- #! /bin/bash
- # cache释放:
- # To free pagecache:
- sync
- sync
- #echo 1 > /proc/sys/vm/drop_caches
- # To free dentries and inodes:
- #echo 2 > /proc/sys/vm/drop_caches
- # To free pagecache, dentries and inodes:
- echo 3 > /proc/sys/vm/drop_caches
Linux下动态调整/dev/shm tmpfs文件系统大小
在Linux中,/dev/shm(也称为tmpfs)是一种基于内存的文件系统,通常用于存储临时文件。由于其基于内存,因此读写速度非常快。然而,它的一个潜在缺点是它的大小通常受限于系统的RAM大小。但幸运的是,Linux内核提供了一些参数,允许我们动态地调整tmpfs文件系统的大小。
默认情况下,tmpfs的大小通常设置为物理RAM的一半,但可以通过mount命令的-o选项来动态地调整它。以下是如何修改/dev/shm大小的步骤:
1. 查看当前/dev/shm的大小
首先,我们可以使用df命令来查看/dev/shm的当前大小:
XML/HTML代码
- df -h /dev/shm
XML/HTML代码
- Filesystem Size Used Avail Use% Mounted on
- tmpfs 7.8G 4.0K 7.8G 1% /dev/shm
2. 动态调整/dev/shm的大小
假设我们想要将/dev/shm的大小调整为2GB,可以使用以下命令:
XML/HTML代码
- mount -o remount,size=2G /dev/shm
高级命令:
XML/HTML代码
- #普通快速修改
- mount -o size=2048M -o remount /dev/shm
- #将inode数量调到1000000,那么预计最多可存入一百万个小文件
- mount -o size=2-48M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm
3. 永久修改/dev/shm的大小
要在系统启动时永久地更改/dev/shm的大小,您需要在/etc/fstab文件中添加或修改相应的条目。通常,/dev/shm的条目类似于:
XML/HTML代码
- tmpfs /dev/shm tmpfs defaults,size=4G 0 0
XML/HTML代码
- echo 'tmpfs /dev/shm tmpfs defaults,size=2G 0 0' >> /etc/fstab
注意事项:
增大/dev/shm的大小可能会增加系统的内存使用量,因此请确保系统有足够的RAM来支持所需的大小。
在调整/dev/shm大小之前,最好先了解系统上哪些进程正在使用它,以避免意外地中断任何重要的服务或应用程序。
如果/dev/shm的大小设置得过大,可能会导致系统变得不稳定或响应缓慢,因为过多的内存被用于文件系统,而不是用于其他重要的系统任务。
通过遵循上述步骤,您应该能够在Linux系统中动态地调整/dev/shm tmpfs文件系统的大小,以满足您的特定需求。