如果我希望进程 PID 666 停止使用我的 CPU,我可以使用kill -SIGSTOP 666
.
并且我可以在kill -SIGCONT 666
.
但这个过程仍在使用我的记忆。
有没有办法将存储在 RAM 中的数据发送到磁盘(也许是交换),然后当然可以恢复它?
答案1
如果内核需要在 RAM 中为活动进程腾出空间,而相关进程处于停止状态,那么您所要求的(即将进程的内存使用量转移到交换区)将会自动发生。
答案2
您可以创建一个组组,向其中添加进程并使用/proc/sys/vm/swappiness
每个 cgroup 的 swappiness () 来控制该特定组的交换使用情况。你也可以强行防止特定进程的内存被 mlock 交换(参见man mlock
和man mlockall
)。