记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

自动释放linux内存&/dev/shm调整

自动释放linux内存&/dev/shm调整
手动去释放内存命令:
XML/HTML代码
  1. free -m
  2. sync
  3. echo 1 > /proc/sys/vm/drop_caches
  4. echo 2 > /proc/sys/vm/drop_caches
  5. echo 3 > /proc/sys/vm/drop_caches
  6. free -m
手动写入自动清理并做记录的sh命令脚本:
1)在root目录下创建一个freemem.sh的脚本:
# vi freemem.sh
复制如下脚本进去:
XML/HTML代码
  1. #!/bin/bash
  2. used=`free -m | awk 'NR==2' | awk '{print $3}'`
  3. free=`free -m | awk 'NR==2' | awk '{print $4}'`
  4. echo "===========================" >> /var/log/mem.log
  5. date >> /var/log/mem.log
  6. echo "Memory usage | [Use:${used}MB][Free:${free}MB]" >> /var/log/mem.log
  7. if [ $free -le 100 ] ; then
  8.  sync && echo 1 > /proc/sys/vm/drop_caches
  9.  sync && echo 2 > /proc/sys/vm/drop_caches
  10.  sync && echo 3 > /proc/sys/vm/drop_caches
  11.  echo "OK" >> /var/log/mem.log
  12. else
  13.  echo "Not required" >> /var/log/mem.log
  14. fi
  15. exit
按esc输入:wq,保存退出!
2)加入Linux Crontab 定时任务:
XML/HTML代码
  1. echo "00 00 * * * root /root/freemem.sh" >> /etc/crondtab  
经过测试,发现完全可行
XML/HTML代码
  1. #! /bin/bash
  2. # cache释放:
  3. # To free pagecache: 
  4. sync
  5. sync
  6. #echo 1 > /proc/sys/vm/drop_caches
  7. # To free dentries and inodes:
  8. #echo 2 > /proc/sys/vm/drop_caches
  9. # To free pagecache, dentries and inodes:
  10. 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代码
  1. df -h /dev/shm
这将显示类似以下的输出,显示了tmpfs的大小、已用空间、可用空间等信息:
XML/HTML代码
  1. Filesystem      Size  Used Avail Use% Mounted on  
  2. tmpfs           7.8G  4.0K  7.8G   1% /dev/shm  
2. 动态调整/dev/shm的大小
假设我们想要将/dev/shm的大小调整为2GB,可以使用以下命令:
XML/HTML代码
  1. mount -o remount,size=2G /dev/shm
这条命令会重新挂载/dev/shm,并将其大小设置为2GB。注意,这不会永久地更改/dev/shm的大小,只是在当前会话中有效。当系统重新启动时,它将恢复到默认设置。
高级命令:
XML/HTML代码
  1. #普通快速修改  
  2. mount -o size=2048M  -o  remount  /dev/shm  
  3. #将inode数量调到1000000,那么预计最多可存入一百万个小文件  
  4. 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代码
  1. tmpfs  /dev/shm  tmpfs  defaults,size=4G  0  0
在这里,size=4G指定了tmpfs的大小。您可以根据需要更改此值。保存文件后,新的大小将在下次启动时生效。
XML/HTML代码
  1. echo 'tmpfs   /dev/shm  tmpfs  defaults,size=2G 0 0' >>  /etc/fstab
注意事项:
增大/dev/shm的大小可能会增加系统的内存使用量,因此请确保系统有足够的RAM来支持所需的大小。
在调整/dev/shm大小之前,最好先了解系统上哪些进程正在使用它,以避免意外地中断任何重要的服务或应用程序。
如果/dev/shm的大小设置得过大,可能会导致系统变得不稳定或响应缓慢,因为过多的内存被用于文件系统,而不是用于其他重要的系统任务。
通过遵循上述步骤,您应该能够在Linux系统中动态地调整/dev/shm tmpfs文件系统的大小,以满足您的特定需求。
 

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):