X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=docs%2Fconfigurationguide%2Flow-latency.feature.configuration.description.rst;h=6cad4c9ceb18bbce9ca2bcf6b6d6a3c7c5285e07;hb=9d3e1250c6c70a017262959bae68235ef8100684;hp=bf2dbdb441ff0b653c5995fde4f148af2bec9def;hpb=52f993b8e89487ec9ee15a7fb4979e0f09a45b27;p=kvmfornfv.git diff --git a/docs/configurationguide/low-latency.feature.configuration.description.rst b/docs/configurationguide/low-latency.feature.configuration.description.rst index bf2dbdb44..6cad4c9ce 100644 --- a/docs/configurationguide/low-latency.feature.configuration.description.rst +++ b/docs/configurationguide/low-latency.feature.configuration.description.rst @@ -1,9 +1,12 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -Introduction -============ +============================================= +Low Latency Feature Configuration Description +============================================= +Introduction +------------ In KVM4NFV project, we focus on the KVM hypervisor to enhance it for NFV, by looking at the following areas initially @@ -14,7 +17,7 @@ looking at the following areas initially * Fast live migration Configuration of Cyclictest -=========================== +--------------------------- Cyclictest measures Latency of response to a stimulus. Achieving low latency with the KVM4NFV project requires setting up a special test environment. @@ -26,15 +29,56 @@ parameters and the run-time environment. https://wiki.opnfv.org/display/kvm/Nfv-kvm-tuning Pre-configuration activities ----------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Intel POD10 is currently used as OPNFV-KVM4NFV test environment. The rpm +packages from the latest build are downloaded onto Intel-Pod10 jump server +from artifact repository. Yardstick running in a ubuntu docker container +on Intel Pod10-jump server will configure the host(intel pod10 node1/node2 +based on job type), the guest and triggers the cyclictest on the guest using +below sample yaml file. + + +.. code:: bash + + For IDLE-IDLE test, + + host_setup_seqs: + - "host-setup0.sh" + - "reboot" + - "host-setup1.sh" + - "host-run-qemu.sh" + + guest_setup_seqs: + - "guest-setup0.sh" + - "reboot" + - "guest-setup1.sh" -Intel POD1 is currently used as OPNFV-KVM4NFV test environment. The latest -build packages are downloaded onto Intel Pod1-jump server from artifact -repository. Yardstick running in a ubuntu docker container on Intel Pod1-jump -server will trigger the cyclictest. +.. figure:: images/idle-idle-test.png + :name: idle-idle-test + :width: 100% + :align: center -Running cyclictest through Yardstick will Configure the host(Pod1-node1), the -guest, executes cyclictest on the guest. +.. code:: bash + + For [CPU/Memory/IO]Stress-IDLE tests, + + host_setup_seqs: + - "host-setup0.sh" + - "reboot" + - "host-setup1.sh" + - "stress_daily.sh" [cpustress/memory/io] + - "host-run-qemu.sh" + + guest_setup_seqs: + - "guest-setup0.sh" + - "reboot" + - "guest-setup1.sh" + +.. figure:: images/stress-idle-test.png + :name: stress-idle-test + :width: 100% + :align: center The following scripts are used for configuring host and guest to create a special test environment and achieve low latency. @@ -44,7 +88,7 @@ followed by guest-setup0.sh and guest-setup1.sh scripts on the guest VM. **host-setup0.sh**: Running this script will install the latest kernel rpm on host and will make necessary changes as following to create special test -environment +environment. * Isolates CPUs from the general scheduler * Stops timer ticks on isolated CPUs whenever possible @@ -55,15 +99,28 @@ environment * Disables clocksource verification at runtime **host-setup1.sh**: Running this script will make the following test -environment changes +environment changes. * Disabling watchdogs to reduce overhead * Disabling RT throttling * Reroute interrupts bound to isolated CPUs to CPU 0 * Change the iptable so that we can ssh to the guest remotely +**stress_daily.sh**: Scripts gets triggered only for stress-idle tests. Running this script +make the following environment changes. + + * Triggers stress_script.sh, which runs the stress command with necessary options + * CPU,Memory or IO stress can be applied based on the test type + * Applying stress only on the Host is handled in D-Release + * For Idle-Idle test the stress script is not triggered + * Stress is applied only on the free cores to prevent load on qemu process + + **Note:** + - On Numa Node 1: 22,23 cores are allocated for QEMU process + - 24-43 are used for applying stress + **host-run-qemu.sh**: Running this script will launch a guest vm on the host. - Note: download guest disk image from artifactory + Note: download guest disk image from artifactory. **guest-setup0.sh**: Running this scrcipt on the guest vm will install the latest build kernel rpm, cyclictest and make the following configuration on @@ -75,22 +132,22 @@ guest vm. * Disables clocksource verification at runtime **guest-setup1.sh**: Running this script on guest vm will do the following -configurations +configurations. * Disable watchdogs to reduce overhead * Routes device interrupts to non-RT CPU * Disables RT throttling Hardware configuration ----------------------- +~~~~~~~~~~~~~~~~~~~~~~ -Currently Intel POD1 is used as test environment for kvmfornfv to execute -cyclictest. As part of this test environment Intel pod1-jump is configured as +Currently Intel POD10 is used as test environment for kvmfornfv to execute +cyclictest. As part of this test environment Intel pod10-jump is configured as jenkins slave and all the latest build artifacts are downloaded on to it. -Intel pod1-node1 is the host on which a guest vm will be launched as a part of +Intel pod10-node1 is the host on which a guest vm will be launched as a part of running cylictest through yardstick. * For more information regarding hardware configuration, please visit - https://wiki.opnfv.org/display/pharos/Intel+Pod1 - https://build.opnfv.org/ci/computer/intel-pod1/ + https://wiki.opnfv.org/display/pharos/Intel+Pod10 + https://build.opnfv.org/ci/computer/intel-pod10/ http://artifacts.opnfv.org/octopus/brahmaputra/docs/octopus_docs/opnfv-jenkins-slave-connection.html