criu
criu copied to clipboard
Can we dump without freezing the process?
Is there any way to do dump without freezing the process? Because my service is Redis, I have to provide services externally all the time. Or is there a way to reduce the effects of freezing?
Ask each superior to give help!
criu pre-dump was implemented exactly for this. It allows to dump memory while a process is continue running.
criu pre-dump was implemented exactly for this. It allows to dump memory while a process is continue running.
Maybe I didn't give a clear description. I want redis to still handle service requests during dump. Even pre-dump have a freeze operation on Dumpee.
And I found a mistake when pre-dump:
pie: 55433: __fetched msg: 66 0 0 pie: 55433: __sent ack msg: 66 66 0 pie: 55433: Daemon waits for command (00.193417) Fetched ack: 66 66 0 (00.193419) Error (criu/mem.c:45): BUG at criu/mem.c:45 pie: 55433: Trimmed message received (12/0) pie: 55433: 55433: new_sp=0x7f8bfe2b1688 ip 0x7f8d023eebe1
criu --version
Version: 3.17
I want redis to still handle service requests during dump
@mrc1119 you can scale in-memory databases like Redis to run with master and replica instances in a cluster. https://redis.io/docs/manual/scaling/
And I found a mistake when pre-dump: Error (criu/mem.c:45): BUG at criu/mem.c:45
You should not use --track-mem option if your kernel does not have CONFIG_MEM_SOFT_DIRTY. Though the fact that CRIU triggers BUG is wrong, thanks for finding this, see fix: https://github.com/checkpoint-restore/criu/pull/1921
Can we dump without freezing the process?
If you dump process state completely without freezing process you end up with inconsistent dump. So the short answer is NO.
A friendly reminder that this issue had no activity for 30 days.