我的一个运行 mysql/debian 的数据库服务器内存不足。我添加了一个交换文件,但据我所知,系统没有使用它。
当我执行以下命令时,我可以确认交换已启用free -h
:
total used free shared buffers cached
Mem: 497M 489M 7.5M 0B 432K 285M
-/+ buffers/cache: 203M 293M
Swap: 1.5G 2.7M 1.5G
当我查看内存使用情况时,我可以看到我的系统内存不足,但交换未受影响。
MemTotal: 508944 kB
MemFree: 6300 kB
Cached: 292064 kB
SwapCached: 32 kB
SwapTotal: 1535996 kB
SwapFree: 1533240 kB
我尝试将交换率从 60 增加到 100,但没有任何改变。
我没什么主意了,我是不是遗漏了什么?
答案1
当内存可用时,Linux 内核不会进行太多交换cached
。它将cache
首先驱逐已使用的内存。
另外,您不想交换。那只是最后的手段。您不必担心数据库使用缓存,它们总是会这样做。如果您将内存增加一倍,您仍然会遇到同样的问题。未使用的内存是浪费的内存。您只需要担心内核是否会杀死您的数据库(OOM)。