linux查看睡眠进程,criu 工具让 Linux 进程休眠

  • Post author:
  • Post category:linux


休眠是操作系统常见的电源选项,可以保持应用程序的状态,并允许断掉电源再开机后恢复休眠前的状态。其原理是休眠时把计算机运行内存的数据全部转储到磁盘,唤醒时再读取磁盘中的内存镜像。

criu 工具可以让单个进程休眠,不依赖于操作系统的内核,完全在用户空间实现,它是 Checkpoint and Restore in Userspace 的缩写。它适用于以下场景:1)有些程序在运行过程中无法保存数据,必须一次性运行出最终结果,比如 lammps 和依赖它的 openfoam 求解器,为了防止计算过程意外终止,可以人为使用 criu 建立 checkpoint,已备不时之需;2)有些超算限制作业的最长运行时间,到达限制后必须终止,如有需要可以重新提交作业,这时可以使用 criu 建立 checkpoint,方便下次提交;3)云服务器的竞价实例,成本低廉,却有可能被随时终止,服务器收到终止指令后很快就会关机,留给用户处理的时间很短,这时也可以配置 criu 脚本,在计算资源被收回时保存计算状态,在计算资源恢复时,自动恢复计算。

criu 的简单用法如下。

criu 的安装过程很简单,在 ubuntu 系统上可以用 apt 安装

sudo apt install criu

criu 的基本用法就是对一个进程 dump/restore

sudo criu dump -t Code language: HTML, XML (xml)

比如,我运行了 interFoam,用 ps 查询 pid

interFoam > log.interFoam 2>&1