我正在与一家刚刚起步的 Web 托管商交谈。他们有共享托管和托管 VPS。对于共享托管,我了解到他们有一个脚本来检查进程是否超出内存限制,如果超出,则终止该进程。同样,对于他们的托管 VPS(CentOS-7):
... 托管 VPS 计划是一种托管服务,与我们的共享主机计划完全相同。唯一的区别在于您使用的是 VPS。我们不会监控或限制您在 VPS 上的内存使用情况,因此如果您愿意,您可以随意使用 VPS 上的所有可用系统内存。也就是说,内核确实具有内存不足保护,因此如果您开始占用内核所需的内存,您会看到内核会终止各种进程。
等一下。虚拟内存这个东西怎么样?主机为什么要这么做?
即使对于共享主机,难道没有办法设置ulimit -m
并启动分页而不是终止工作吗?
编辑:我根据自己的研究添加了一个答案。我仍然很感激您的意见。
答案1
系统中的某些部分不能放入虚拟内存(Linux 中称之为交换)。此外,有时根据磁盘 IO 性能和大小,在服务器上限制交换是明智之举。我见过许多系统在有交换的地方(基于硬盘的交换)锁定。