Changes

844 bytes added ,  18:10, 12 January 2023
m
Add kill command
Line 1: Line 1: −
This page describes how to reduce the freeze time of an application by using the [[memory changes tracking]] ability.
+
This page describes how to reduce the freeze time of an application by using the [[memory changes tracking]] ability to perform [[wikipedia:Live_migration#Pre-copy_memory_migration|pre-copy memory migration]].
    
{{Note|It is assumed that you already read [[Live migration]] article before this one.}}
 
{{Note|It is assumed that you already read [[Live migration]] article before this one.}}
Line 15: Line 15:     
Now you can either proceed to next step and do regular dump, or perform the pre-dump step again. In the latter case pre-dump would generate another set of pre-dump images which will contain memory changed after previous pre-dump. Doing several pre-dump iterations may reduce the amount of data dumped on dump stage and thus lead to shorter freeze time.
 
Now you can either proceed to next step and do regular dump, or perform the pre-dump step again. In the latter case pre-dump would generate another set of pre-dump images which will contain memory changed after previous pre-dump. Doing several pre-dump iterations may reduce the amount of data dumped on dump stage and thus lead to shorter freeze time.
 +
 +
Note, that if you're going to perform more than one pre-dump steps, you should create different directories for images and properly reference them with the <code>--images-dir</code> and the <code>--prev-images-dir</code> for all pre-dump and dump steps.
    
=== Dump ===
 
=== Dump ===
 
Now you can do regular dump of your processes.
 
Now you can do regular dump of your processes.
   −
  [src]# criu dump --tree <pid> --images-dir <path-to-existing-directory-B> --prev-images-dir <path-to-directory-A-relative-to-B> --leave-stopped
+
  [src]# criu dump --tree <pid> --images-dir <path-to-existing-directory-B> \
 +
  --prev-images-dir <path-to-directory-A-relative-to-B> --leave-stopped --track-mem
    
Note that:
 
Note that:
Line 30: Line 33:     
  [src]# scp -r <path-to-images-dir> <dst>:/<path-to-images>
 
  [src]# scp -r <path-to-images-dir> <dst>:/<path-to-images>
 +
 +
or using rsync
 +
 +
[src]# rsync -rl <path-to-images-dir>/ <dst>:<path-to-images>
 +
 +
Note: It is important to enable "copy symlinks as symlinks" (<code>-l</code> for <code>rsync</code>) to ensure that symlinks are preserved between previous directories. When <code>-r</code> is passed to <code>scp</code> it will follow symbolic links encountered in the tree traversal.
    
=== Restore ===
 
=== Restore ===
 
On the destination node restore the apps from images:
 
On the destination node restore the apps from images:
   −
  [dst]# criu restore --tree <pid> --images-dir <path-to-images>
+
  [dst]# criu restore --images-dir <path-to-images>
    
=== Kill ===
 
=== Kill ===
 
If everything went OK you can kill stopped tasks on the source node:
 
If everything went OK you can kill stopped tasks on the source node:
   −
  [src]# FIXME put command here
+
  [src]# kill <pid>
 +
 
 +
== Further reading ==
 +
 
 +
* [[P.Haul]] is the Go extension to CRIU doing [[live migration]]
    
[[Category: HOWTO]]
 
[[Category: HOWTO]]
 +
[[Category: Memory]]
 +
[[Category: Live migration]]
16

edits