我正在使用 CentOS 6.5 在 DigitalOcean 上运行一个站点。
正如其他地方所指出的,DigitalOcean 服务器默认配置为没有任何类型的交换,我想知道是否应该添加一个。
我对这些东西的了解刚好足以认为答案是“当然可以”,但我真的没有超越它的基础。
在这方面的任何建议,无论是否特定于 DigitalOcean,都将不胜感激。
Vas*_*kis 12
是否有任何理由在 CentOS 上没有交换文件
是的:
您有某种类型的水平扩展,可以根据内存使用情况增加服务器数量,从而消除使用交换的可能性。
您有一个特定的性能要求,这意味着您不能允许程序使用交换进行处理,因为它比内存慢得多,因此与其使用交换,不如选择密切监视内存使用情况并根据需要增加内存。
我的系统第一次被用户和内存需求严重加载时会死吗?
如果您不知道您的服务器将承受多少负载,并且您没有足够的内存,并且您没有交换空间,您的应用程序将停止。
交换会不会让我避免这种情况,但只会造成令人不快的性能损失?
正确的。
应用程序停止时究竟会发生什么?哪个应用程序停止?
如果我有 3 个进程并且 1 个正在泄漏内存,那么 3 个进程会全部死亡还是泄漏的 1 个都会死亡?
1 会迫使其他 2 死吗?
可以这样想:
如果您编写一个程序并告诉程序用无限数量的整数填充变量,那么该应用程序很快就会遇到内存错误并退出。
一样的。无论哪个应用程序试图为其操作访问更多内存都将失败。因此,如果您还剩 1 个字节并且您的应用程序创建了一个 32 位整数,则您需要 2 个字节,操作失败,因为没有足够的内存,并且根据应用程序处理内存错误的程度,它会自行修复或退出。
一次 3 个应用程序也是如此。如果巧合的是,当系统只剩下 1 个字节的内存时,它们都请求更多的内存,从技术上讲,它们应该都会立即失败。
如果他们看到任何错误,有人可以纠正我。