From 92afaeb4a959ea5a6a072fe3ed7a01088d703e0b Mon Sep 17 00:00:00 2001
From: Jan Srnicek <jsrnicek@cisco.com>
Date: Tue, 31 Jan 2017 10:00:51 +0100
Subject: HONEYCOMB-293 - Memory benchmarking

Contains configuration for benchmarks:
- Honeycomb on rest(just infra, no data)
- Honeycomb with 1000 data nodes
- Honeycomb with 10000 data nodes

Each benchmark outputs two files:
- out_path_name-HeapMemoryUsage.csv
- out_path_name-NonHeapMemoryUsage.csv

Both files are in format :
committed,init,max,used
109576192,109051904,1525153792,12194752

Data sample sizes can be easily adjusted, just by changing
start parameter -DsampleSize

Change-Id: If6f9919307574237689326b4a38d410ec563200a
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Signed-off-by: Jan Srnicek <jsrnicek@cisco.com>
---
 infra/it/memory-benchmark/asciidoc/Readme.adoc | 68 ++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)
 create mode 100644 infra/it/memory-benchmark/asciidoc/Readme.adoc

(limited to 'infra/it/memory-benchmark/asciidoc/Readme.adoc')

diff --git a/infra/it/memory-benchmark/asciidoc/Readme.adoc b/infra/it/memory-benchmark/asciidoc/Readme.adoc
new file mode 100644
index 000000000..80e2ffb6f
--- /dev/null
+++ b/infra/it/memory-benchmark/asciidoc/Readme.adoc
@@ -0,0 +1,68 @@
+= memory-benchmark
+
+Overview of memory-benchmark
+
+= Tutorial
+= Configure
+
+To run honeycomb memory benchmark, use maven profile *memory-benchmark* like so
+
+ mvn clean install -DskipTests -Pmemory-benchmark
+
+This will add following modules to build
+
+* _management_ - Enable JMX for honeycomb
+* _memory-benchmark-scripts_ - Script generation for benchmarks
+* _memory-benchmark-api_ - Test models for benchmark
+* _memory-benchmark_ - Benchmark itself
+
+By default, 3 versions of run scripts are produces in project build folder
+
+* _honeycomb-memory-footprint-benchmark-0_ - Tests honeycomb memory footprint on rest without any config/context data
+* _honeycomb-memory-footprint-benchmark-1000_ - Tests honeycomb memory footprint while 1000 data nodes present in config data
+* _honeycomb-memory-footprint-benchmark-10000_ - Tests honeycomb memory footprint while 10000 data nodes present in config data
+
+Any other data sample size can be tested by modifying script parameter *-DsampleSize*
+
+== Run
+
+To run benchmark
+
+ ./honeycomb-memory-footprint-benchmark-0
+
+This will produce two output files.
+
+* memory-benchmark-on-rest-out-0-HeapMemoryUsage.csv
+* memory-benchmark-on-rest-out-0-NonHeapMemoryUsage.csv
+
+For further explanation look at
+
+ https://docs.oracle.com/javase/7/docs/api/java/lang/management/MemoryMXBean.html
+
+
+Each of these files contains values in following format
+
+ committed,init,max,used
+ 132644864,109051904,1525153792,12577144
+
+These values stands for
+
+
+* init - Represents the initial amount of memory (in bytes) that the Java virtual machine requests from the operating system for memory management during startup.
+The Java virtual machine may request additional memory from the operating system and may also release memory to the system over time.
+The value of init may be undefined(-1).
+* used - Represents the amount of memory currently used (in bytes).
+* committed	- Represents the amount of memory (in bytes) that is guaranteed to be available for use by the Java virtual machine.
+The amount of committed memory may change over time (increase or decrease). The Java virtual machine may release memory to the system and committed could be less than init.
+Committed will always be greater than or equal to used.
+* max - Represents the maximum amount of memory (in bytes) that can be used for memory management. Its value may be undefined(-1).
+ The maximum amount of memory may change over time if defined.
+ The amount of used and committed memory will always be less than or equal to max if max is defined.
+ A memory allocation may fail if it attempts to increase the used memory
+ such that used > committed even if used <= max would still be true (for example, when the system is low on virtual memory).
+
+
+
+
+
+
-- 
cgit 1.2.3-korg

