tests/migration: Introduce dirty-limit into guestperf

Currently, guestperf does not cover the dirty-limit
migration, support this feature.

Note that dirty-limit requires 'dirty-ring-size' set.

To enable dirty-limit, setting x-vcpu-dirty-limit-period
as 500ms and x-vcpu-dirty-limit as 10MB/s:
$ ./tests/migration/guestperf.py \
    --dirty-ring-size 4096 \
    --dirty-limit --x-vcpu-dirty-limit-period 500 \
    --vcpu-dirty-limit 10 --output output.json \

To run the entire standardized set of dirty-limit-enabled
comparisons, with unix migration:
$ ./tests/migration/guestperf-batch.py \
    --dirty-ring-size 4096 \
    --dst-host localhost --transport unix \
    --filter compr-dirty-limit* --output outputdir

Signed-off-by: Hyman Huang <yong.huang@smartx.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Message-Id: <516e7a55dfc6e33d33510be37eb24223de5dc072.1697815117.git.yong.huang@smartx.com>
Message-ID: <e1283565b00b34b0377bbd27bee4bb8fc7c255a8.1698847223.git.yong.huang@smartx.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
Hyman Huang 2023-11-01 22:04:08 +08:00 committed by Juan Quintela
parent 4cc563d460
commit 22b7cb2c79
5 changed files with 81 additions and 4 deletions

View file

@ -131,6 +131,17 @@ class Shell(BaseShell):
parser.add_argument("--multifd-channels", dest="multifd_channels",
default=2, type=int)
parser.add_argument("--dirty-limit", dest="dirty_limit", default=False,
action="store_true")
parser.add_argument("--x-vcpu-dirty-limit-period",
dest="x_vcpu_dirty_limit_period",
default=500, type=int)
parser.add_argument("--vcpu-dirty-limit",
dest="vcpu_dirty_limit",
default=1, type=int)
def get_scenario(self, args):
return Scenario(name="perfreport",
downtime=args.downtime,
@ -154,7 +165,12 @@ class Shell(BaseShell):
compression_xbzrle_cache=args.compression_xbzrle_cache,
multifd=args.multifd,
multifd_channels=args.multifd_channels)
multifd_channels=args.multifd_channels,
dirty_limit=args.dirty_limit,
x_vcpu_dirty_limit_period=\
args.x_vcpu_dirty_limit_period,
vcpu_dirty_limit=args.vcpu_dirty_limit)
def run(self, argv):
args = self._parser.parse_args(argv)