是否有可能阻止交换单个进程?
这个过程是一个内存数据库,不应该被移动到虚拟内存。
所有其他进程仍然应该可以交换。
我需要像SQL Server的“内存locking页面”选项。
如果一个进程开始交换,它要么编码很差,不能释放内存,或者你的服务器没有足够的RAM来处理当前正在执行的所有任务,你应该扩展内存容量。
如果这实际上不是预算scheme,或者机器已经处于最大RAM容量,那么您可以安排一个任务,每个小时左右杀死并重新启动该过程(或者如果需要更频繁的话)。 请注意,这应该是最后的解决scheme,因为它不是真正的解决scheme,而只是解决方法。
至于你的问题的核心,我不知道阻止程序交换。 当进程耗尽物理内存来防止机器崩溃时,这是基本的操作系统行为。