Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

migrate_options_shared: stabilize auto-converge #6036

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

smitterl
Copy link
Contributor

@smitterl smitterl commented Dec 3, 2024

The auto-converge test scenarios are brittle. In order to cause auto-converge to kick in we need to reduce allowed downtime and bandwidth and increase creation of dirty-pages. However, by setting unrealisticly restrictive values we might cause the migration to never converge. Therefore, once auto-converge has kicked in, reset bandwidth and maxdowntime so that the migration can finish more easily.

Furthermore, remove function run_stress_in_vm as it's not used
anywhere. Instead
avocado-vt/virttest/migration/run_stress_in_vm is used.

@smitterl
Copy link
Contributor Author

smitterl commented Dec 3, 2024

Example of a lot of dirty pages.

# avocado run --vt-type libvirt --vt-omit-data-loss --vt-machine-type s390-virtio virsh.migrate_options_shared.positive_test.auto-converge.default.with_postcopy --vt-connect-uri qemu:///system --vt-extra-params "migrate_maxdowntime = 0.001                                                                                                                        
> low_speed = 5
> stress_args = --cpu 16 --io 16 --vm 4 --vm-bytes 128M"
No python imaging library installed. Screendump and Windows guest BSOD detection are disabled. In order to enable it, please install python-imaging or the equivalent for your distro.
No python imaging library installed. PPM image conversion to JPEG disabled. In order to enable it, please install python-imaging or the equivalent for your distro.
No python imaging library installed. Screendump and Windows guest BSOD detection are disabled. In order to enable it, please install python-imaging or the equivalent for your distro.
No python imaging library installed. PPM image conversion to JPEG disabled. In order to enable it, please install python-imaging or the equivalent for your distro.
JOB ID     : 11b4de2f6f8036de2a4bed63de976f450dcc8fbf
JOB LOG    : /var/log/avocado/job-results/job-2024-12-03T11.16-11b4de2/job.log
 (1/1) type_specific.io-github-autotest-libvirt.virsh.migrate_options_shared.positive_test.auto-converge.default.with_postcopy: STARTED
 (1/1) type_specific.io-github-autotest-libvirt.virsh.migrate_options_shared.positive_test.auto-converge.default.with_postcopy: PASS (843.53 s)
RESULTS    : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
JOB HTML   : /var/log/avocado/job-results/job-2024-12-03T11.16-11b4de2/results.html
JOB TIME   : 845.08 s

@smitterl
Copy link
Contributor Author

smitterl commented Dec 3, 2024

JOB ID     : ae7bb6d23cbbb3d187a20d5743bf7d5f8189cd00
JOB LOG    : /var/log/avocado/job-results/job-2024-12-03T11.37-ae7bb6d/job.log
 (1/4) type_specific.io-github-autotest-libvirt.virsh.migrate_options_shared.positive_test.auto-converge.default.with_postcopy: STARTED
 (1/4) type_specific.io-github-autotest-libvirt.virsh.migrate_options_shared.positive_test.auto-converge.default.with_postcopy: PASS (199.33 s)
 (2/4) type_specific.io-github-autotest-libvirt.virsh.migrate_options_shared.positive_test.auto-converge.default.without_postcopy: STARTED
 (2/4) type_specific.io-github-autotest-libvirt.virsh.migrate_options_shared.positive_test.auto-converge.default.without_postcopy: PASS (213.77 s)
 (3/4) type_specific.io-github-autotest-libvirt.virsh.migrate_options_shared.positive_test.auto-converge.customized.with_postcopy: STARTED
 (3/4) type_specific.io-github-autotest-libvirt.virsh.migrate_options_shared.positive_test.auto-converge.customized.with_postcopy: PASS (199.49 s)
 (4/4) type_specific.io-github-autotest-libvirt.virsh.migrate_options_shared.positive_test.auto-converge.customized.without_postcopy: STARTED
 (4/4) type_specific.io-github-autotest-libvirt.virsh.migrate_options_shared.positive_test.auto-converge.customized.without_postcopy: PASS (184.76 s)
RESULTS    : PASS 4 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
JOB HTML   : /var/log/avocado/job-results/job-2024-12-03T11.37-ae7bb6d/results.html
JOB TIME   : 802.12 s

The auto-converge test scenarios are brittle. In order to cause
auto-converge to kick in we need to reduce allowed downtime and
bandwidth and increase creation of dirty-pages. However, by setting
unrealisticly restrictive values we might cause the migration
to never converge. Therefore, once auto-converge has kicked in,
reset bandwidth and maxdowntime so that the migration can finish
more easily.

Only help the migration speed up if the auto-converge throttle value has
increased once.

Furthermore, remove function `run_stress_in_vm` as it's not used
anywhere. Instead
avocado-vt/virttest/migration/run_stress_in_vm is used.

Signed-off-by: Sebastian Mitterle <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants