issue #505: docs: add new detail graph for one scenario.
This commit is contained in:
parent
c279454502
commit
e703522010
|
@ -1181,7 +1181,7 @@ This demonstrates Mitogen vs. SSH pipelining to the local machine running
|
||||||
<https://github.com/dw/mitogen/blob/master/tests/ansible/bench/loop-100-items.yml>`_,
|
<https://github.com/dw/mitogen/blob/master/tests/ansible/bench/loop-100-items.yml>`_,
|
||||||
executing a simple command 100 times. Most Ansible controller overhead is
|
executing a simple command 100 times. Most Ansible controller overhead is
|
||||||
isolated, characterizing just module executor and connection layer performance.
|
isolated, characterizing just module executor and connection layer performance.
|
||||||
Mitogen requires **63x less bandwidth, 5.9x less time, and 1.5x less CPU**.
|
Mitogen requires **63x less bandwidth and 5.9x less time**.
|
||||||
|
|
||||||
.. image:: images/ansible/pcaps/loop-100-items-local.svg
|
.. image:: images/ansible/pcaps/loop-100-items-local.svg
|
||||||
|
|
||||||
|
@ -1193,6 +1193,14 @@ sent only once. Compression also benefits SSH pipelining, but the presence of
|
||||||
large precompressed per-task payloads may present a more significant CPU burden
|
large precompressed per-task payloads may present a more significant CPU burden
|
||||||
during many-host runs.
|
during many-host runs.
|
||||||
|
|
||||||
|
.. image:: images/ansible/pcaps/loop-100-items-local-detail.svg
|
||||||
|
|
||||||
|
In a detailed trace, improved interaction with the host machine is visible. In
|
||||||
|
this playbook because no forks were required to start SSH clients from the
|
||||||
|
worker process executing the loop, the worker's memory was never marked
|
||||||
|
read-only, thus avoiding a major hidden performance problem - the page fault
|
||||||
|
rate is more than halved.
|
||||||
|
|
||||||
|
|
||||||
File Transfer: UK to France
|
File Transfer: UK to France
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
@ -1222,12 +1230,11 @@ target.
|
||||||
Mitogen, 98.54, 43.04, "815 KiB", "447 KiB", 3.79
|
Mitogen, 98.54, 43.04, "815 KiB", "447 KiB", 3.79
|
||||||
SSH Pipelining, "1,483.54", 329.37, "99,539 KiB", "6,870 KiB", 57.01
|
SSH Pipelining, "1,483.54", 329.37, "99,539 KiB", "6,870 KiB", 57.01
|
||||||
|
|
||||||
*Roundtrips* represents the approximate number of network roundtrips required
|
*Roundtrips* is the approximate number of network roundtrips required to
|
||||||
to describe the runtime that was consumed. Due to Mitogen's built-in file
|
describe the runtime that was consumed. Due to Mitogen's built-in file transfer
|
||||||
transfer support, continuous reinitialization of an external `scp`/`sftp`
|
support, continuous reinitialization of an external `scp`/`sftp` client is
|
||||||
client is avoided, permitting large ``with_filetree`` copies to become
|
avoided, permitting large ``with_filetree`` copies to become practical without
|
||||||
practical without any special casing within the playbook or the Ansible
|
any special casing within the playbook or the Ansible implementation.
|
||||||
implementation.
|
|
||||||
|
|
||||||
|
|
||||||
DebOps: UK to India
|
DebOps: UK to India
|
||||||
|
@ -1245,7 +1252,7 @@ Mitogen's module loading and in-memory caching. By running over a long-distance
|
||||||
connection, it highlights behaviour of the connection layer in the presence of
|
connection, it highlights behaviour of the connection layer in the presence of
|
||||||
high latency.
|
high latency.
|
||||||
|
|
||||||
Mitogen requires **14.5x less bandwidth, 4x less time, and 2.3x less CPU**.
|
Mitogen requires **14.5x less bandwidth and 4x less time**.
|
||||||
|
|
||||||
.. image:: images/ansible/pcaps/debops-uk-india.svg
|
.. image:: images/ansible/pcaps/debops-uk-india.svg
|
||||||
|
|
||||||
|
@ -1258,6 +1265,6 @@ as previously, with many steps running unavoidably expensive tasks like
|
||||||
building C++ code, and compiling static web site assets.
|
building C++ code, and compiling static web site assets.
|
||||||
|
|
||||||
Despite the small margin for optimization, Mitogen still manages **6.2x less
|
Despite the small margin for optimization, Mitogen still manages **6.2x less
|
||||||
bandwidth, 1.8x less time, and 2x less CPU**.
|
bandwidth and 1.8x less time**.
|
||||||
|
|
||||||
.. image:: images/ansible/pcaps/costapp-uk-india.svg
|
.. image:: images/ansible/pcaps/costapp-uk-india.svg
|
||||||
|
|
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 48 KiB |
|
@ -6,7 +6,19 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
[ ! "$1" ] && exit 1
|
[ ! "$1" ] && exit 1
|
||||||
sudo tcpdump -w $1-out.cap -s 0 host k1.botanicus.net &
|
name="$1"; shift
|
||||||
date +%s.%N > $1-task-clock.csv
|
|
||||||
perf stat -x, -I 25 -e task-clock --append -o $1-task-clock.csv ansible-playbook run_hostname_100_times.yml
|
|
||||||
|
sudo tcpdump -i any -w $name-net.pcap -s 66 port 22 or port 9122 &
|
||||||
|
sleep 0.5
|
||||||
|
|
||||||
|
perf stat -x, -I 100 \
|
||||||
|
-e branches \
|
||||||
|
-e instructions \
|
||||||
|
-e task-clock \
|
||||||
|
-e context-switches \
|
||||||
|
-e page-faults \
|
||||||
|
-e cpu-migrations \
|
||||||
|
-o $name-perf.csv "$@"
|
||||||
|
pkill -f ssh:; sleep 0.1
|
||||||
sudo pkill -f tcpdump
|
sudo pkill -f tcpdump
|
||||||
|
|
Loading…
Reference in New Issue