我如何才能防止 SSH 之类的东西被交换,并始终将其保留在 RAM 中?我已经设置swappiness
为1
,但 SSH 仍然很慢,所以我怀疑它被交换出去了。
答案1
通常情况下,您无法阻止单个进程进行交换,只有全局参数vm.swappiness
可用于控制交换行为。
使用cgroups
它可以为swappiness
附加到特定进程的进程指定不同的交换行为cgroup
。
因此,您必须cgroup
为您的 SSHD 创建一个单独的并赋予它不同的swappiness
。
我认为您的问题是由其他原因引起的。swap
确实会释放 RAM,但如果您访问已换出内存的进程,则该内存将从磁盘读取并再次放入 RAM。因此,当访问具有交换内存的进程时,只有斜坡上升性能提升。
如果您遇到稳定的换出/换入问题,则可能是内存太少,或者是失控进程耗尽了您的 RAM,从而使您的系统面临内存压力。