github.com/dmaizel/tests@v0.0.0-20210728163746-cae6a2d9cee8/metrics/report/report_dockerfile/metrics_report.Rmd (about) 1 --- 2 # Copyright (c) 2018-2019 Intel Corporation 3 # 4 # SPDX-License-Identifier: Apache-2.0 5 --- 6 \pagebreak 7 8 # Introduction 9 This report compares the metrics between multiple sets of data generated from 10 the [Kata Containers report generation scripts](github.com/kata-containers/tests/metrics/report/README.md). 11 12 This report was generated using the data from the **`r resultdirs`** results directories. 13 14 \pagebreak 15 16 # Container PSS footprint 17 This [test](https://github.com/kata-containers/tests/blob/master/metrics/density/docker_memory_usage.sh) 18 measures the PSS footprint of all the container runtime components whilst running a number 19 of parallel containers. The results are the mean footprint proportion for a single 20 container. 21 22 ```{r memory-footprint, echo=FALSE, fig.cap="Memory PSS footprint"} 23 source('memory-footprint.R') 24 ``` 25 \pagebreak 26 27 # Container scaling system footprint 28 This [test](https://github.com/kata-containers/tests/blob/master/metrics/density/footprint_data.sh) 29 measures the system memory footprint impact whilst running an increasing number 30 of containers. For this test, [KSM](https://en.wikipedia.org/wiki/Kernel_same-page_merging) 31 is enabled. The results show how system memory is consumed for different sized 32 containers, and their average system memory footprint cost and density (how many 33 containers you can fit per Gb) is calculated. 34 35 ```{r footprint-density, echo=FALSE, fig.cap="System Memory density"} 36 test_name_extra="-ksm" 37 source('footprint-density.R') 38 rm(test_name_extra) 39 ``` 40 \pagebreak 41 42 # Memory used inside container 43 This [test](https://github.com/kata-containers/tests/blob/master/metrics/density/memory_usage_inside_container.sh) 44 measures the memory inside a container taken by the container runtime. It shows the difference between the amount of memory requested for the container, and the amount the container can actually 'see'. 45 46 The *% Consumed* is the key row in the table, which compares the *Requested* against *Total* values. 47 48 49 ```{r mem-in-cont, echo=FALSE, fig.cap="System Memory density"} 50 source('mem-in-cont.R') 51 ``` 52 \pagebreak 53 54 55 # Container Docker boot lifecycle times 56 This [test](https://github.com/kata-containers/tests/blob/master/metrics/time/launch_times.sh) 57 uses the `date` command on the host and in the container, as well as data from the container 58 kernel `dmesg`, to ascertain how long different phases of the create/boot/run/delete 59 Docker container lifecycle take for the first launched container. 60 61 To decode the stats table, the prefixes are 'to(`2`)' and '`i`n'. The suffixes are '`k`ernel', '`w`orkload' and '`q`uit'. 'tot' is the total time for a complete container start-to-finished cycle. 62 63 ```{r lifecycle-time, echo=FALSE, fig.cap="Execution lifecycle times"} 64 source('lifecycle-time.R') 65 ``` 66 \pagebreak 67 68 # Storage I/O 69 70 Measure storage I/O bandwidth, latency and IOPS using 71 this [test](https://github.com/kata-containers/tests/blob/master/metrics/storage/fio.sh). 72 73 This test measures using separate random read and write tests. 74 75 ## Reads 76 77 ```{r fio-reads, echo=FALSE, fig.cap="Storage I/O Reads", results='asis'} 78 source('fio-reads.R') 79 ``` 80 81 \pagebreak 82 83 ## Writes 84 85 ```{r fio-writes, echo=FALSE, fig.cap="Storage I/O Writes", results='asis'} 86 source('fio-writes.R') 87 ``` 88 \pagebreak 89 90 # Network CPU costs 91 92 Measure CPU costs whilst performing a fixed bandwidth container 93 to container network test using 94 this [test](https://github.com/kata-containers/tests/blob/master/metrics/network/cpu_statistics_iperf.sh). 95 As local container-to-container networking is a pure local software activity, this test 96 is a reasonable way to show changes in network stack processing costs. 97 98 ```{r network-cpu, echo=FALSE, fig.cap="Storage I/O Writes", results='asis'} 99 source('network-cpu.R') 100 ``` 101 \pagebreak 102 103 # Test setup details 104 105 This table describes the test system details, as derived from the information contained 106 in the test results files. 107 108 109 ```{r dut, echo=FALSE, fig.cap="System configuration details"} 110 source('dut-details.R') 111 ```