最近我的朋友告诉我,关闭具有足够内存的
linux网络服务器交换是一个好主意.我的服务器有12 GB,目前在峰值负载下使用4GB(不计算缓存和缓冲区).
他的论点是,在正常情况下,服务器永远不会使用它的所有RAM,因此它遇到OutOfMemory情况的唯一方法是由于一些bug / ddos / etc.因此,如果交换关闭,系统将耗尽内存,最终会导致程序占用内存(很可能是Web服务器进程)以及其他一些进程.如果打开交换,它将同时占用RAM和交换,最终将导致相同的崩溃,但在此之前,它将卸载像sshd这样的关键进程交换并开始执行大量交换操作,从而导致主要的减速.这种方式在ddos系统下可能因为巨大的滞后而进入完全无法使用的状态,我可能无法登录并杀死webserver进程或拒绝所有传入的流量(除了ssh之外).
这是正确的吗?我错过了什么(就像交换分区在某种程度上非常有用的事实,即使我有足够的RAM)?我应该把它关掉吗?