<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="自动释放linux内存&amp;/dev/shm调整">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2019-06-15 15:31<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:


自动释放linux内存&amp;/dev/shm调整

手动去释放内存命令：



XML/HTML代码


    free -m

    sync

    echo 1 &gt; /proc/sys/vm/drop_caches

    echo 2 &gt; /proc/sys/vm/drop_caches

    echo 3 &gt; /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 &quot;===========================&quot; &gt;&gt; /var/log/mem.log

    date &gt;&gt; /var/log/mem.log

    echo &quot;Memory usage | [Use：${used}MB][Free：${free}MB]&quot; &gt;&gt; /var/log/mem.log

    if [ $free -le 100 ] ; then

     sync &amp;&amp; echo 1 &gt; /proc/sys/vm/drop_caches

     sync &amp;&amp; echo 2 &gt; /proc/sys/vm/drop_caches

     sync &amp;&amp; echo 3 &gt; /proc/sys/vm/drop_caches

     echo &quot;OK&quot; &gt;&gt; /var/log/mem.log

    else

     echo &quot;Not required&quot; &gt;&gt; /var/log/mem.log

    fi

    exit






按esc输入:wq，保存退出！

2)加入Linux Crontab 定时任务：



XML/HTML代码


    echo &quot;00 00 * * * root /root/freemem.sh&quot; &gt;&gt; /etc/crondtab  




经过测试，发现完全可行



XML/HTML代码


    #! /bin/bash

    # cache释放：

    # To free pagecache: 

    sync

    sync

    #echo 1 &gt; /proc/sys/vm/drop_caches

    # To free dentries and inodes:

    #echo 2 &gt; /proc/sys/vm/drop_caches

    # To free pagecache, dentries and inodes:

    echo 3 &gt; /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




这将显示类似以下的输出，显示了tmpfs的大小、已用空间、可用空间等信息：



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




这条命令会重新挂载/dev/shm，并将其大小设置为2GB。注意，这不会永久地更改/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




在这里，size=4G指定了tmpfs的大小。您可以根据需要更改此值。保存文件后，新的大小将在下次启动时生效。



XML/HTML代码


    echo 'tmpfs   /dev/shm  tmpfs  defaults,size=2G 0 0' &gt;&gt;  /etc/fstab






注意事项：

增大/dev/shm的大小可能会增加系统的内存使用量，因此请确保系统有足够的RAM来支持所需的大小。

在调整/dev/shm大小之前，最好先了解系统上哪些进程正在使用它，以避免意外地中断任何重要的服务或应用程序。

如果/dev/shm的大小设置得过大，可能会导致系统变得不稳定或响应缓慢，因为过多的内存被用于文件系统，而不是用于其他重要的系统任务。

通过遵循上述步骤，您应该能够在Linux系统中动态地调整/dev/shm tmpfs文件系统的大小，以满足您的特定需求。








 
</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
