diff --git a/doc/source/test_plans/db/plan.rst b/doc/source/test_plans/db/plan.rst index 1639af0..78c7bd8 100644 --- a/doc/source/test_plans/db/plan.rst +++ b/doc/source/test_plans/db/plan.rst @@ -1,3 +1,5 @@ +.. _db_performance: + ====================== SQL Database Test Plan ====================== diff --git a/doc/source/test_results/db/mysql/index.rst b/doc/source/test_results/db/mysql/index.rst new file mode 100644 index 0000000..298053a --- /dev/null +++ b/doc/source/test_results/db/mysql/index.rst @@ -0,0 +1,44 @@ +.. raw:: pdf + + PageBreak oneColumn + +=============================== +SQL Database performance report +=============================== + +Environment description +^^^^^^^^^^^^^^^^^^^^^^^ + +This report is generated for :ref:`db_performance` test plan with +`Sysbench`_ tool. The data is collected in +:ref:`intel_mirantis_performance_lab`. + + +Software +~~~~~~~~ + ++-----------------+--------------------------------------------+ +| Parameter | Value | ++-----------------+--------------------------------------------+ +| OS | Ubuntu 14.04.3 | ++-----------------+--------------------------------------------+ +| DB | MySQL 5.6.28 | ++-----------------+--------------------------------------------+ +| HA | Galera | ++-----------------+--------------------------------------------+ + + +Reports +^^^^^^^ + +.. toctree:: + :maxdepth: 2 + + mysql-galera-direct/index + mysql-galera-haproxy/index + + + +.. references: + +.. _Sysbench: https://github.com/akopytov/sysbench diff --git a/doc/source/test_results/db/mysql/mysql-galera-direct/cpu_consumption.svg b/doc/source/test_results/db/mysql/mysql-galera-direct/cpu_consumption.svg new file mode 100644 index 0000000..575bde2 --- /dev/null +++ b/doc/source/test_results/db/mysql/mysql-galera-direct/cpu_consumption.svg @@ -0,0 +1,4 @@ + +Pygal0.00.010000.010000.020000.020000.030000.030000.040000.040000.050000.050000.060000.060000.070000.070000.020.020.040.040.060.060.080.080.0100.0100.0120.0120.0140.0140.0160.0160.0180.0180.0200.0200.0threads20: 69112.7513.615384615439.695320652540: 74157.289.25641025649.0192307692360: 67909.35164.89743589747.013384379180: 65218.0666667240.53846153863.3794995026120: 58895.1166667391.820512821101.830347965160: 57187.0333333543.102564103112.217470022200: 51120.9166667694.384615385149.10647479220: 1247.2622950813.6153846154452.39597202440: 1942.4666666789.2564102564448.16832544460: 2302.52459016164.897435897445.97875686380: 2414.18032787240.538461538445.299760849120: 2422.96721311391.820512821445.246326425160: 2420.96774194543.102564103445.258485522200: 2325.9516129694.384615385445.836293472queries per secCPU, % \ No newline at end of file diff --git a/doc/source/test_results/db/mysql/mysql-galera-direct/index.rst b/doc/source/test_results/db/mysql/mysql-galera-direct/index.rst new file mode 100644 index 0000000..887e33b --- /dev/null +++ b/doc/source/test_results/db/mysql/mysql-galera-direct/index.rst @@ -0,0 +1,169 @@ +MySQL + Galera performance report +--------------------------------- + +This scenario is executed with `Sysbench`_ tool. There is one instance of +tool per tester node, each running in N threads. The tool is configured +to point to one of DB nodes in Galera cluster directly. + +.. image:: topology.* + +Throughput +^^^^^^^^^^ + +The following chart shows the number of queries, read queries and transactions +depending on total thread count. + +.. image:: throughput.* + + +.. list-table:: Throughput + :header-rows: 1 + + * + - threads + - queries per sec + - read queries per sec + - transactions per sec + * + - 20 + - 69112.8 + - 46075.2 + - 3291.1 + * + - 40 + - 74157.2 + - 49438.2 + - 3531.3 + * + - 60 + - 67909.4 + - 45273.0 + - 3233.8 + * + - 80 + - 65218.1 + - 43478.9 + - 3105.6 + * + - 120 + - 58895.1 + - 39263.7 + - 2804.4 + * + - 160 + - 57187.0 + - 38125.3 + - 2723.0 + * + - 200 + - 51120.9 + - 34081.6 + - 2434.0 + + + +Throughput and server CPU consumption +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The following chart shows how DB server CPU consumption depends on number +of concurrent threads and throughput. + +.. image:: cpu_consumption.* + + +.. list-table:: CPU consumption + :header-rows: 1 + + * + - threads + - queries per sec + - CPU, % + * + - 20 + - 69112.8 + - 1247.3 + * + - 40 + - 74157.2 + - 1942.5 + * + - 60 + - 67909.4 + - 2302.5 + * + - 80 + - 65218.1 + - 2414.2 + * + - 120 + - 58895.1 + - 2423.0 + * + - 160 + - 57187.0 + - 2421.0 + * + - 200 + - 51120.9 + - 2326.0 + + + +Operation latency +^^^^^^^^^^^^^^^^^ + +The following chart shows how operation latency depends on number of +concurrent threads. + +.. image:: latency.* + + +.. list-table:: Latency + :header-rows: 1 + + * + - threads + - min latency, ms + - avg latency, ms + - max latency, ms + * + - 20 + - 3.2 + - 6.1 + - 19.6 + * + - 40 + - 3.5 + - 11.4 + - 42.9 + * + - 60 + - 4.3 + - 18.7 + - 56.5 + * + - 80 + - 4.1 + - 25.9 + - 155.9 + * + - 120 + - 4.3 + - 42.8 + - 572.9 + * + - 160 + - 5.2 + - 58.8 + - 485.3 + * + - 200 + - 6.6 + - 82.2 + - 745.9 + + + +.. references: + +.. _Sysbench: https://github.com/akopytov/sysbench diff --git a/doc/source/test_results/db/mysql/mysql-galera-direct/latency.svg b/doc/source/test_results/db/mysql/mysql-galera-direct/latency.svg new file mode 100644 index 0000000..e1245e2 --- /dev/null +++ b/doc/source/test_results/db/mysql/mysql-galera-direct/latency.svg @@ -0,0 +1,4 @@ + +Pygal0.00.0100.0100.0200.0200.0300.0300.0400.0400.0500.0500.0600.0600.0700.0700.020.020.040.040.060.060.080.080.0100.0100.0120.0120.0140.0140.0160.0160.0180.0180.0200.0200.0threads20: 3.1913.8461538462458.05205872140: 3.590.7692307692457.86462917360: 4.26167.692307692457.40512447580: 4.1244.615384615457.501862306120: 4.27398.461538462457.399078361160: 5.23552.307692308456.818651374200: 6.62706.153846154455.97824146520: 19.5513.8461538462448.16061548240: 42.9190.7692307692434.03689212760: 56.53167.692307692425.80208424680: 155.94244.615384615365.697660502120: 572.89398.461538462113.604918521160: 485.31552.307692308166.556788871200: 745.87706.1538461549.0192307692320: 6.077513.8461538462456.30624317440: 11.37590.7692307692453.10331404460: 18.7225167.692307692448.66093145280: 25.9325244.615384615444.301682934120: 42.8425398.461538462434.0777034160: 58.795552.307692308424.432639324200: 82.2706.153846154410.281708454min latency, msmax latency, msavg latency, ms \ No newline at end of file diff --git a/doc/source/test_results/db/mysql/mysql-galera-direct/throughput.svg b/doc/source/test_results/db/mysql/mysql-galera-direct/throughput.svg new file mode 100644 index 0000000..aa75162 --- /dev/null +++ b/doc/source/test_results/db/mysql/mysql-galera-direct/throughput.svg @@ -0,0 +1,4 @@ + +Pygal0.00.010000.010000.020000.020000.030000.030000.040000.040000.050000.050000.060000.060000.070000.070000.020.020.040.040.060.060.080.080.0100.0100.0120.0120.0140.0140.0160.0160.0180.0180.0200.0200.0threads20: 69112.7513.615384615439.695320652540: 74157.289.25641025649.0192307692360: 67909.35164.89743589747.013384379180: 65218.0666667240.53846153863.3794995026120: 58895.1166667391.820512821101.830347965160: 57187.0333333543.102564103112.217470022200: 51120.9166667694.384615385149.10647479220: 3291.0833333313.6153846154439.96717644140: 3531.2666666789.2564102564438.50658400460: 3233.75164.897435897440.31582941480: 3105.56666667240.538461538441.095332324120: 2804.43333333391.820512821442.92657125160: 2722.98333333543.102564103443.421881446200: 2433.96666667694.384615385445.17943702620: 46075.166666713.6153846154179.79047017940: 49438.289.2564102564159.33933817960: 45272.9666667164.897435897184.66877391980: 43478.8666667240.538461538195.578976788120: 39263.7391.820512821221.212064942160: 38125.2666667543.102564103228.135056201200: 34081.6694.384615385252.725226017queries per sectransactions per secread queries per sec \ No newline at end of file diff --git a/doc/source/test_results/db/mysql/mysql-galera-direct/topology.svg b/doc/source/test_results/db/mysql/mysql-galera-direct/topology.svg new file mode 100644 index 0000000..1962051 --- /dev/null +++ b/doc/source/test_results/db/mysql/mysql-galera-direct/topology.svg @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + Node-1 + + Node-2 + + Node-3 + + sysbench + + + + + + + + diff --git a/doc/source/test_results/db/mysql/mysql-galera-haproxy/cpu_consumption.svg b/doc/source/test_results/db/mysql/mysql-galera-haproxy/cpu_consumption.svg new file mode 100644 index 0000000..f1a31c0 --- /dev/null +++ b/doc/source/test_results/db/mysql/mysql-galera-haproxy/cpu_consumption.svg @@ -0,0 +1,4 @@ + +Pygal0.00.010000.010000.020000.020000.030000.030000.040000.040000.050000.050000.020.020.040.040.060.060.080.080.0100.0100.0120.0120.0140.0140.0160.0160.0180.0180.0200.0200.0threads20: 49331.4513.615384615479.428574492640: 56479.889.256410256424.284842020660: 56265.0666667164.89743589725.941335824980: 58458.7240.5384615389.01923076923120: 55108.4333333391.82051282134.8638255046160: 17298.6333333543.102564103326.535819184200: 11732.1833333694.384615385369.47647396720: 917.44262295113.6153846154452.90344221740: 1115.2459016489.2564102564451.37755007760: 1073.03278689164.897435897451.70319007880: 1153.93442623240.538461538451.079099434120: 1178.32978142391.820512821450.890909021160: 2050.13114754543.102564103444.16566735200: 2058.93310418694.384615385444.097767381queries per secCPU, % \ No newline at end of file diff --git a/doc/source/test_results/db/mysql/mysql-galera-haproxy/index.rst b/doc/source/test_results/db/mysql/mysql-galera-haproxy/index.rst new file mode 100644 index 0000000..3b3d0fb --- /dev/null +++ b/doc/source/test_results/db/mysql/mysql-galera-haproxy/index.rst @@ -0,0 +1,170 @@ +MySQL + Galera + HAproxy performance report +------------------------------------------- + +This scenario is executed with `Sysbench`_ tool. There is one instance of +tool per tester node, each running in N threads. Galera cluster is located +behind HAproxy. Tester tools all point to HAProxy endpoint. + +.. image:: topology.* + + +Throughput +^^^^^^^^^^ + +The following chart shows the number of queries, read queries and transactions +depending on total thread count. + +.. image:: throughput.* + + +.. list-table:: Throughput + :header-rows: 1 + + * + - threads + - queries per sec + - read queries per sec + - transactions per sec + * + - 20 + - 49331.4 + - 32887.6 + - 2349.1 + * + - 40 + - 56479.8 + - 37653.2 + - 2689.5 + * + - 60 + - 56265.1 + - 37510.2 + - 2679.2 + * + - 80 + - 58458.7 + - 38972.5 + - 2783.7 + * + - 120 + - 55108.4 + - 36739.3 + - 2624.1 + * + - 160 + - 17298.6 + - 11532.5 + - 823.7 + * + - 200 + - 11732.2 + - 7821.8 + - 558.5 + + + +Throughput and server CPU consumption +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The following chart shows how DB server CPU consumption depends on number +of concurrent threads and throughput. + +.. image:: cpu_consumption.* + + +.. list-table:: CPU consumption + :header-rows: 1 + + * + - threads + - queries per sec + - CPU, % + * + - 20 + - 49331.4 + - 917.4 + * + - 40 + - 56479.8 + - 1115.2 + * + - 60 + - 56265.1 + - 1073.0 + * + - 80 + - 58458.7 + - 1153.9 + * + - 120 + - 55108.4 + - 1178.3 + * + - 160 + - 17298.6 + - 2050.1 + * + - 200 + - 11732.2 + - 2058.9 + + + +Operation latency +^^^^^^^^^^^^^^^^^ + +The following chart shows how operation latency depends on number of +concurrent threads. + +.. image:: latency.* + + +.. list-table:: Latency + :header-rows: 1 + + * + - threads + - min latency, ms + - avg latency, ms + - max latency, ms + * + - 20 + - 4.8 + - 8.5 + - 23.3 + * + - 40 + - 6.1 + - 14.9 + - 27.2 + * + - 60 + - 5.4 + - 22.4 + - 64.8 + * + - 80 + - 7.3 + - 28.7 + - 78.6 + * + - 120 + - 9.4 + - 45.7 + - 113.8 + * + - 160 + - 13.4 + - 194.5 + - 1069.3 + * + - 200 + - 14.9 + - 358.9 + - 4071.6 + + + +.. references: + +.. _Sysbench: https://github.com/akopytov/sysbench diff --git a/doc/source/test_results/db/mysql/mysql-galera-haproxy/latency.svg b/doc/source/test_results/db/mysql/mysql-galera-haproxy/latency.svg new file mode 100644 index 0000000..d39eb16 --- /dev/null +++ b/doc/source/test_results/db/mysql/mysql-galera-haproxy/latency.svg @@ -0,0 +1,4 @@ + +Pygal0.00.01000.01000.02000.02000.03000.03000.04000.04000.020.020.040.040.060.060.080.080.0100.0100.0120.0120.0140.0140.0160.0160.0180.0180.0200.0200.0threads20: 4.8513.7307692308459.44359380540: 6.0990.0128205128459.30625410960: 5.44166.294871795459.37824669280: 7.29242.576923077459.173344726120: 9.4395.141025641458.939645726160: 13.38547.705128205458.498829604200: 14.91700.269230769458.3293701420: 23.3313.7307692308457.39678929840: 27.1890.0128205128456.97037169360: 64.84166.294871795452.79923220580: 78.63242.576923077451.271881872120: 113.81395.141025641447.375421777160: 1069.31547.705128205341.546325107200: 4071.6700.2692307699.0192307692320: 8.5113.7307692308459.03822018640: 14.8790.0128205128458.33380045360: 22.3925166.294871795457.50062475480: 28.735242.576923077456.798143283120: 45.735395.141025641454.915260349160: 194.515547.705128205438.436711943200: 358.8625700.269230769420.233941179min latency, msmax latency, msavg latency, ms \ No newline at end of file diff --git a/doc/source/test_results/db/mysql/mysql-galera-haproxy/throughput.svg b/doc/source/test_results/db/mysql/mysql-galera-haproxy/throughput.svg new file mode 100644 index 0000000..31ed283 --- /dev/null +++ b/doc/source/test_results/db/mysql/mysql-galera-haproxy/throughput.svg @@ -0,0 +1,4 @@ + +Pygal0.00.010000.010000.020000.020000.030000.030000.040000.040000.050000.050000.020.020.040.040.060.060.080.080.0100.0100.0120.0120.0140.0140.0160.0160.0180.0180.0200.0200.0threads20: 49331.4513.615384615479.428574492640: 56479.889.256410256424.284842020660: 56265.0666667164.89743589725.941335824980: 58458.7240.5384615389.01923076923120: 55108.4333333391.82051282134.8638255046160: 17298.6333333543.102564103326.535819184200: 11732.1833333694.384615385369.47647396720: 2349.1166666713.6153846154441.85923614840: 2689.589.2564102564439.23345432860: 2679.23333333164.897435897439.31265334980: 2783.73333333240.538461538438.506520459120: 2624.1391.820512821439.737962376160: 823.716666667543.102564103453.626462083200: 558.55694.384615385455.6720082220: 32887.633333313.6153846154206.27930607240: 37653.233333389.2564102564169.51656061860: 37510.2164.897435897170.61994697580: 38972.5240.538461538159.33948645120: 36739.2666667391.820512821176.567073443160: 11532.5543.102564103371.016869207200: 7821.8694.384615385399.641915279queries per sectransactions per secread queries per sec \ No newline at end of file diff --git a/doc/source/test_results/db/mysql/mysql-galera-haproxy/topology.svg b/doc/source/test_results/db/mysql/mysql-galera-haproxy/topology.svg new file mode 100644 index 0000000..5431fdf --- /dev/null +++ b/doc/source/test_results/db/mysql/mysql-galera-haproxy/topology.svg @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + Node-1 + + Node-2 + + Node-3 + + sysbench + + + + + + + HAproxy + + + + + diff --git a/doc/source/test_results/index.rst b/doc/source/test_results/index.rst index caef5fa..27a8dfa 100644 --- a/doc/source/test_results/index.rst +++ b/doc/source/test_results/index.rst @@ -11,3 +11,4 @@ Test Results mq_ha/index container_repositories/index + db/mysql/index