Linux 服务器内存不足

Linux 服务器内存不足

我在一家托管公司有一台 VPS。我确实有一些使用 MySQL 的编写糟糕的 perl 脚本。我的 MySQL 服务器崩溃了。托管公司说服务器内存不足。当我的 VPS 没有流量时,我的托管公司运行了“免费”服务,结果如下。

       total used free shared buffers cached
 Mem:  1024   963   60      0       0    746
 -/+ buffers/cache: 217 806
 Swap:    0     0    0

他们说我只有 60 MB 可用空间。是这样吗?我需要升级内存吗?

答案1

是的,确实只有 60mb 是免费的,但这是正常的,因为 Linux 的设计目的是使用尽可能多的可用内存,通过缓存最大限度地提高性能。

当应用程序需要时,用于缓存的任何内存都会被释放。

因此,当前未使用的“空闲”内存与“可用”内存之间存在差异,后者可以用于某些用途,但可以根据需要提供给应用程序。

“可用”内存是最重要的,它是后面的最后一个数字-/+ buffers/cache:。在您的例子中,是 806MB。

使用 MySQL 和不可靠的脚本,内存很快就会被消耗殆尽。

我建议添加一些交换空间,这样如果空间用完了,您的机器不会开始终止进程​​,而是可以扩展到磁盘备份存储以获取“额外”内存。这意味着它会开始缓慢运行而不是崩溃。

创建交换文件:

 # dd if=/dev/zero of=/swap.tmp bs=1M count=1024

这将创建一个 1024MB 的空文件

 # mkswap /swap.tmp

这会将文件变成可以用于交换空间的内容。

 #swapon /swap.tmp

这将启用交换空间 - 看一下free以查看差异。

然后编辑/etc/fstab并通过添加此行(挂载根目录后)确保在启动时启用交换:

 /swap.tmp none swap defaults 0 0 

答案2

不。你应该看的是这一-/+ buffers/cache行。第一行包括内核正在使用但必要时可以安全删除的内容(如缓存文件)。另请参阅https://serverfault.com/a/85481

相关内容