Ubuntu 18.04 没有使用全部 RAM,但使用了 2/4GB 的交换空间,

Ubuntu 18.04 没有使用全部 RAM,但使用了 2/4GB 的交换空间,

因此,我一直在努力优化运行 LEMP 的 Ubuntu Server 18.04,使所有内容保持最新,包括最新的内核更新,并且我注意到 SSH 响应能力存在一些轻微的延迟。

我的想法是针对 RAM 和 SWAP 的使用 https://i.stack.imgur.com/hagZM.jpg

上面的链接中有 free -m、htop 和 vmstat 的屏幕截图。我不太清楚这里发生了什么,不是使用了全部 RAM,而是使用了超过 2GB 的 SWAP?...

我发现有两种可能性:

  1. 我的 RAM 实际上已经用完了,而 ubuntu 使用了这 2GB 交换空间中的很大一部分,并保留了少量的可用内存用于执行重要任务。
  2. 我实际上并没有使用很多 RAM,而 ubuntu 只是使用 SWAP 来提高性能。

然而,我有疑问,如果有人能给我正确的理解我会更好。

我还将 swappiness 设置为 5,将 vfs_cache_pressure 设置为 50,以尽可能少地使用 SWAP,这已经是相当长一段时间了。

这种情况会不会是导致我的 SSH 速度慢的原因?例如:

在本地电脑的终端上输入密码 - 我可以尽可能快地打字,这样就可以了。

通过 SSH 在远程服务器上输入密码 - 我无法尽可能快地输入密码,因为它会告诉我密码无效。

我在输入密码时使用了 shift,但当 SSH 速度较慢时,它不应该导致我输入无效密码。

答案1

看起来您的情况是大部分内存都已使用,只是没有用于程序。通常,Linux 会倾向于交换程序的某些部分,以便为缓冲区和页面缓存留出一些内存。

虽然这看起来似乎违反直觉,但实际上它使性能大大提高。与内存通信通常要慢几个数量级,因此在内存中保留一些磁盘缓存可以显着提高性能。这是正常现象,您不需要以任何方式调整交换或缓存压力,并且您应该撤消对这些设置所做的任何更改。

您在通过 SSH 输入时看到延迟的原因可能是网络问题。当您以交互方式使用 SSH 时,您需要低延迟:也就是说,最重要的是尽快发送数据包,即使这意味着您可以发送的数据量要少得多。在某个时候,您的数据包往返所需的时间比应有的时间要长。

造成这种情况的原因有很多,但很大程度上取决于您的服务器位于何处。如果服务器距离较远,延迟会更高。此外,如果某处网络拥塞,您也会看到一些延迟。

通常用于解决此类问题的工具是mtr。您可以运行mtr -t YOUR_SERVER并查看是否存在任何延迟问题。

如果没有延迟问题,那么问题可能是服务器内存不足,但在这种情况下,您的解决方案是添加内存,而不是修改内核参数。从您的图片中可以明显看出,您的内存远远超出了服务器的内存容量,您需要添加更多内存或减少内存使用量。

相关内容