xref: /qemu/tests/migration-stress/guestperf/comparison.py (revision 409437e16df273fc5f78f6cd1cb53023eaeb9b72)
1*409437e1SDaniel P. Berrange#
2*409437e1SDaniel P. Berrange# Migration test scenario comparison mapping
3*409437e1SDaniel P. Berrange#
4*409437e1SDaniel P. Berrange# Copyright (c) 2016 Red Hat, Inc.
5*409437e1SDaniel P. Berrange#
6*409437e1SDaniel P. Berrange# This library is free software; you can redistribute it and/or
7*409437e1SDaniel P. Berrange# modify it under the terms of the GNU Lesser General Public
8*409437e1SDaniel P. Berrange# License as published by the Free Software Foundation; either
9*409437e1SDaniel P. Berrange# version 2 of the License, or (at your option) any later version.
10*409437e1SDaniel P. Berrange#
11*409437e1SDaniel P. Berrange# This library is distributed in the hope that it will be useful,
12*409437e1SDaniel P. Berrange# but WITHOUT ANY WARRANTY; without even the implied warranty of
13*409437e1SDaniel P. Berrange# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14*409437e1SDaniel P. Berrange# Lesser General Public License for more details.
15*409437e1SDaniel P. Berrange#
16*409437e1SDaniel P. Berrange# You should have received a copy of the GNU Lesser General Public
17*409437e1SDaniel P. Berrange# License along with this library; if not, see <http://www.gnu.org/licenses/>.
18*409437e1SDaniel P. Berrange#
19*409437e1SDaniel P. Berrange
20*409437e1SDaniel P. Berrangefrom guestperf.scenario import Scenario
21*409437e1SDaniel P. Berrange
22*409437e1SDaniel P. Berrangeclass Comparison(object):
23*409437e1SDaniel P. Berrange    def __init__(self, name, scenarios):
24*409437e1SDaniel P. Berrange        self._name = name
25*409437e1SDaniel P. Berrange        self._scenarios = scenarios
26*409437e1SDaniel P. Berrange
27*409437e1SDaniel P. BerrangeCOMPARISONS = [
28*409437e1SDaniel P. Berrange    # Looking at effect of pausing guest during migration
29*409437e1SDaniel P. Berrange    # at various stages of iteration over RAM
30*409437e1SDaniel P. Berrange    Comparison("pause-iters", scenarios = [
31*409437e1SDaniel P. Berrange        Scenario("pause-iters-0",
32*409437e1SDaniel P. Berrange                 pause=True, pause_iters=0),
33*409437e1SDaniel P. Berrange        Scenario("pause-iters-1",
34*409437e1SDaniel P. Berrange                 pause=True, pause_iters=1),
35*409437e1SDaniel P. Berrange        Scenario("pause-iters-5",
36*409437e1SDaniel P. Berrange                 pause=True, pause_iters=5),
37*409437e1SDaniel P. Berrange        Scenario("pause-iters-20",
38*409437e1SDaniel P. Berrange                 pause=True, pause_iters=20),
39*409437e1SDaniel P. Berrange    ]),
40*409437e1SDaniel P. Berrange
41*409437e1SDaniel P. Berrange
42*409437e1SDaniel P. Berrange    # Looking at use of post-copy in relation to bandwidth
43*409437e1SDaniel P. Berrange    # available for migration
44*409437e1SDaniel P. Berrange    Comparison("post-copy-bandwidth", scenarios = [
45*409437e1SDaniel P. Berrange        Scenario("post-copy-bw-100mbs",
46*409437e1SDaniel P. Berrange                 post_copy=True, bandwidth=12),
47*409437e1SDaniel P. Berrange        Scenario("post-copy-bw-300mbs",
48*409437e1SDaniel P. Berrange                 post_copy=True, bandwidth=37),
49*409437e1SDaniel P. Berrange        Scenario("post-copy-bw-1gbs",
50*409437e1SDaniel P. Berrange                 post_copy=True, bandwidth=125),
51*409437e1SDaniel P. Berrange        Scenario("post-copy-bw-10gbs",
52*409437e1SDaniel P. Berrange                 post_copy=True, bandwidth=1250),
53*409437e1SDaniel P. Berrange        Scenario("post-copy-bw-100gbs",
54*409437e1SDaniel P. Berrange                 post_copy=True, bandwidth=12500),
55*409437e1SDaniel P. Berrange    ]),
56*409437e1SDaniel P. Berrange
57*409437e1SDaniel P. Berrange
58*409437e1SDaniel P. Berrange    # Looking at effect of starting post-copy at different
59*409437e1SDaniel P. Berrange    # stages of the migration
60*409437e1SDaniel P. Berrange    Comparison("post-copy-iters", scenarios = [
61*409437e1SDaniel P. Berrange        Scenario("post-copy-iters-0",
62*409437e1SDaniel P. Berrange                 post_copy=True, post_copy_iters=0),
63*409437e1SDaniel P. Berrange        Scenario("post-copy-iters-1",
64*409437e1SDaniel P. Berrange                 post_copy=True, post_copy_iters=1),
65*409437e1SDaniel P. Berrange        Scenario("post-copy-iters-5",
66*409437e1SDaniel P. Berrange                 post_copy=True, post_copy_iters=5),
67*409437e1SDaniel P. Berrange        Scenario("post-copy-iters-20",
68*409437e1SDaniel P. Berrange                 post_copy=True, post_copy_iters=20),
69*409437e1SDaniel P. Berrange    ]),
70*409437e1SDaniel P. Berrange
71*409437e1SDaniel P. Berrange
72*409437e1SDaniel P. Berrange    # Looking at effect of auto-converge with different
73*409437e1SDaniel P. Berrange    # throttling percentage step rates
74*409437e1SDaniel P. Berrange    Comparison("auto-converge-iters", scenarios = [
75*409437e1SDaniel P. Berrange        Scenario("auto-converge-step-5",
76*409437e1SDaniel P. Berrange                 auto_converge=True, auto_converge_step=5),
77*409437e1SDaniel P. Berrange        Scenario("auto-converge-step-10",
78*409437e1SDaniel P. Berrange                 auto_converge=True, auto_converge_step=10),
79*409437e1SDaniel P. Berrange        Scenario("auto-converge-step-20",
80*409437e1SDaniel P. Berrange                 auto_converge=True, auto_converge_step=20),
81*409437e1SDaniel P. Berrange    ]),
82*409437e1SDaniel P. Berrange
83*409437e1SDaniel P. Berrange
84*409437e1SDaniel P. Berrange    # Looking at use of auto-converge in relation to bandwidth
85*409437e1SDaniel P. Berrange    # available for migration
86*409437e1SDaniel P. Berrange    Comparison("auto-converge-bandwidth", scenarios = [
87*409437e1SDaniel P. Berrange        Scenario("auto-converge-bw-100mbs",
88*409437e1SDaniel P. Berrange                 auto_converge=True, bandwidth=12),
89*409437e1SDaniel P. Berrange        Scenario("auto-converge-bw-300mbs",
90*409437e1SDaniel P. Berrange                 auto_converge=True, bandwidth=37),
91*409437e1SDaniel P. Berrange        Scenario("auto-converge-bw-1gbs",
92*409437e1SDaniel P. Berrange                 auto_converge=True, bandwidth=125),
93*409437e1SDaniel P. Berrange        Scenario("auto-converge-bw-10gbs",
94*409437e1SDaniel P. Berrange                 auto_converge=True, bandwidth=1250),
95*409437e1SDaniel P. Berrange        Scenario("auto-converge-bw-100gbs",
96*409437e1SDaniel P. Berrange                 auto_converge=True, bandwidth=12500),
97*409437e1SDaniel P. Berrange    ]),
98*409437e1SDaniel P. Berrange
99*409437e1SDaniel P. Berrange
100*409437e1SDaniel P. Berrange    # Looking at effect of multi-thread compression with
101*409437e1SDaniel P. Berrange    # varying numbers of threads
102*409437e1SDaniel P. Berrange    Comparison("compr-mt", scenarios = [
103*409437e1SDaniel P. Berrange        Scenario("compr-mt-threads-1",
104*409437e1SDaniel P. Berrange                 compression_mt=True, compression_mt_threads=1),
105*409437e1SDaniel P. Berrange        Scenario("compr-mt-threads-2",
106*409437e1SDaniel P. Berrange                 compression_mt=True, compression_mt_threads=2),
107*409437e1SDaniel P. Berrange        Scenario("compr-mt-threads-4",
108*409437e1SDaniel P. Berrange                 compression_mt=True, compression_mt_threads=4),
109*409437e1SDaniel P. Berrange    ]),
110*409437e1SDaniel P. Berrange
111*409437e1SDaniel P. Berrange
112*409437e1SDaniel P. Berrange    # Looking at effect of xbzrle compression with varying
113*409437e1SDaniel P. Berrange    # cache sizes
114*409437e1SDaniel P. Berrange    Comparison("compr-xbzrle", scenarios = [
115*409437e1SDaniel P. Berrange        Scenario("compr-xbzrle-cache-5",
116*409437e1SDaniel P. Berrange                 compression_xbzrle=True, compression_xbzrle_cache=5),
117*409437e1SDaniel P. Berrange        Scenario("compr-xbzrle-cache-10",
118*409437e1SDaniel P. Berrange                 compression_xbzrle=True, compression_xbzrle_cache=10),
119*409437e1SDaniel P. Berrange        Scenario("compr-xbzrle-cache-20",
120*409437e1SDaniel P. Berrange                 compression_xbzrle=True, compression_xbzrle_cache=10),
121*409437e1SDaniel P. Berrange        Scenario("compr-xbzrle-cache-50",
122*409437e1SDaniel P. Berrange                 compression_xbzrle=True, compression_xbzrle_cache=50),
123*409437e1SDaniel P. Berrange    ]),
124*409437e1SDaniel P. Berrange]
125