是否有可能阻止单个进程的交换?
此进程是内存数据库,不应移至虚拟 RAM。
所有其他流程仍应可交换。
我需要类似 SQL-Server 的“锁定内存中的页面”选项。
答案1
如果某个进程开始交换,那么要么是编码很差,没有在应该释放 RAM 的时候释放,要么是您的服务器没有足够的 RAM 来处理当前正在执行的所有任务,您应该扩展 RAM 容量。
如果从预算角度来看这确实不是一个选择,或者如果机器的 RAM 容量已经达到最大,您可以安排一个任务,每小时左右(或根据需要更频繁地)终止并重新启动该进程。请注意,这实际上应该是最后的手段和临时解决方案,因为它实际上并不是一个解决方案,而只是一种变通方法。
至于你问题的核心,据我所知,没有办法阻止程序交换。当进程用尽物理内存来防止机器崩溃时,这是操作系统的基本行为。