我正在使用 apache2+php 和其他 web 服务器应用程序。
我将监视器作为会话连接到 Web 服务器。RAM 内存已满。
但是断开会话时,它不会释放 RAM 内存。
我已经通过监视器free -m
,并且即使现在没有连接的会话它也显示未释放的内存。
有解决办法吗?
答案1
您可以使用以下命令释放未使用的内存:
sudo sync && sudo sysctl -w vm.drop_caches=3
此命令同步缓存数据,然后在运行时写入位于/proc/sys/vm/drop_caches. 该参数被内核读取一次,然后释放未使用的内存。
基本上,内核在缓存中保留了三个部分,这可能会增加内存使用量:
- 页面缓存
- 牙齿
- 索引节点
写入此参数将导致内核从 RAM 中删除干净的页面缓存、目录项和 inode,从而使该内存变为空闲。可以分配三个值:
- vm.drop_caches=1 免费的页面缓存。
- vm.drop_caches=2 空闲的 dentry 和 inode。
- vm.drop_caches=3 释放页面缓存、目录项和索引节点。
重要的: 执行后,这将恢复正常状态,这意味着再次开始缓存页面缓存、dentry 和 inode。根据您的服务器配置和应用程序使用它。