Mysql 填满所有 buff/cache 内存

Mysql 填满所有 buff/cache 内存

服务器运行的时间越长,Mysql 进程使用的 buff/cache 就越多,我现在用的是 95%,只有服务器重启才能释放 buff/cache 内存。没有任何 mysql 命令可以即时释放它。

这是正常现象吗?如果我的其他进程需要内存,而 Mysql 使用 buff/cache 占用了所有剩余内存,该怎么办?它会自动取消认领内存吗?还是服务器可能会崩溃……?

顶部

顶部

答案1

您的htop屏幕截图很难看清。遗憾的是,由于颜色很重要,因此捕获文本无济于事。另请参阅:htop 状态栏中的颜色到底代表什么含义? 为了让视力较差的人受益:Mem 行使用了 12 条绿色行、1 条蓝色缓冲区和 70 条黄色/橙色缓存。使用了 7.6GB 中的 950M。无交换。

将所有可用 RAM 用于缓存是正常现象。DRAM 比永久存储快得多,从而提高了性能。内存将根据需要回收,首先从缓存中回收。

亲自观察。运行一些会占用一些内存的操作,例如应用软件更新。观察它是否崩溃。查看回收是否对性能产生明显影响。

答案2

那是操作系统缓存,而不是 MySQL。

一般来说,“缓存”的设计目的是在需要时释放空间。因此,缓存占用大量空间并不等同于“内存耗尽”。

具体来说,MySQL 似乎只使用了 8GB 中的 1GB。请参阅 Wilson 的请求,以了解更多我们可以指出的、表明您没有遇到麻烦的信息。

答案3

正在使用的的是操作系统缓冲区/缓存。

您可以使用以下命令清除它:

echo "echo 3 > /proc/sys/vm/drop_caches" | sudo sh

相关内容