qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

comparison.py (5182B)


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