[CRIU] [PATCH 3/3] test: auto-deduplication on restore
Pavel Tikhomirov
snorcht at gmail.com
Wed Jan 29 06:07:39 PST 2014
Best Regards, Tikhomirov Pavel.
2014-01-29 Tikhomirov Pavel <snorcht at gmail.com>
> Signed-off-by: Tikhomirov Pavel <snorcht at gmail.com>
> ---
> test/mem-snap/run-snap-dedup-on-restore.sh | 87
> ++++++++++++++++++++++++++++++
> 1 file changed, 87 insertions(+)
> create mode 100755 test/mem-snap/run-snap-dedup-on-restore.sh
>
> diff --git a/test/mem-snap/run-snap-dedup-on-restore.sh
> b/test/mem-snap/run-snap-dedup-on-restore.sh
> new file mode 100755
> index 0000000..70c9bb8
> --- /dev/null
> +++ b/test/mem-snap/run-snap-dedup-on-restore.sh
> @@ -0,0 +1,87 @@
> +#!/bin/bash
> +
> +source ../env.sh || exit 1
> +
> +USEPS=0
> +
> +if [ "$1" = "-s" ]; then
> + echo "Will test via page-server"
> + USEPS=1
> + shift
> +fi
> +
> +NRSNAP=${1:-3}
> +SPAUSE=${2:-4}
> +PORT=12345
> +
> +function fail {
> + echo "$@"
> + exit 1
> +}
> +set -x
> +
> +IMGDIR="dump/"
> +
> +rm -rf "$IMGDIR"
> +mkdir "$IMGDIR"
> +
> +echo "Launching test"
> +cd ../zdtm/live/static/
> +make cleanout
> +make mem-touch
> +make mem-touch.pid || fail "Can't start test"
> +PID=$(cat mem-touch.pid)
> +kill -0 $PID || fail "Test didn't start"
> +cd -
> +
> +echo "Making $NRSNAP snapshots"
> +
> +for SNAP in $(seq 1 $NRSNAP); do
> + sleep $SPAUSE
> + mkdir "$IMGDIR/$SNAP/"
> + if [ $SNAP -eq 1 ] ; then
> + # First snapshot -- no parent, keep running
> + args="--track-mem -R"
> + elif [ $SNAP -eq $NRSNAP ]; then
> + # Last snapshot -- has parent, kill afterwards
> + args="--prev-images-dir=../$((SNAP - 1))/ --track-mem
> --auto-dedup"
> + else
> + # Other snapshots -- have parent, keep running
> + args="--prev-images-dir=../$((SNAP - 1))/ --track-mem -R"
>
here i've lost --auto-dedup, need to be:
args="--prev-images-dir=../$((SNAP - 1))/ --track-mem -R
--auto-dedup"
it's needed to make sure that all pages images are of size 0 in the end.
> + fi
> +
> + if [ $USEPS -eq 1 ]; then
> + ${CRIU} page-server -D "${IMGDIR}/$SNAP/" -o ps.log
> --auto-dedup --port ${PORT} -v4 &
> + PS_PID=$!
> + ps_args="--page-server --address 127.0.0.1 --port=${PORT}"
> + else
> + ps_args=""
> + fi
> +
> + ${CRIU} dump -D "${IMGDIR}/$SNAP/" -o dump.log -t ${PID} -v4 $args
> $ps_args || fail "Fail to dump"
> + if [ $USEPS -eq 1 ]; then
> + wait $PS_PID
> + fi
> +done
> +
> +echo "Restoring"
> +${CRIU} restore -D "${IMGDIR}/$NRSNAP/" -o restore.log --auto-dedup -d
> -v4 || fail "Fail to restore server"
> +
> +size_last3=$(du -sh -BK dump/3/pages-*.img | grep -Eo '[0-9]+' | head -1)
> +size_last2=$(du -sh -BK dump/2/pages-*.img | grep -Eo '[0-9]+' | head -1)
> +size_last1=$(du -sh -BK dump/1/pages-*.img | grep -Eo '[0-9]+' | head -1)
> +
> +restore_dedup_ok=0
> +if [[ $size_last1 -ne 0 || $size_last2 -ne 0 || $size_last3 -ne 0 ]]; then
> + restore_dedup_ok=1
> +fi
> +
> +cd ../zdtm/live/static/
> +make mem-touch.out
> +cat mem-touch.out | fgrep PASS || fail "Test failed"
> +
> +if [ $restore_dedup_ok -ne 0 ]; then
> + fail "Dedup test failed"
> +fi
> +
> +echo "Test PASSED"
> --
> 1.8.3.2
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvz.org/pipermail/criu/attachments/20140129/f46c584d/attachment.html>
More information about the CRIU
mailing list