Quick Guides
  • Free Trial options
  • Quick Guides: Akamas in a sandbox
    • [AIAS-01] Guide: Explore an Optimization Study for a Kubernetes microservices application
      • [AIAS-01] Architecture overview
      • [AIAS-01] Explore the Study
      • [AIAS-01] Explore the System
      • [AIAS-01] Explore the Workflow
      • [AIAS-01] Explore the analysis
      • [AIAS-01] Explore the results
    • [AIAS-02] Guide: Create a study to optimize Java performance using the Akamas UI
      • [AIAS-02] Architecture overview
      • [AIAS-02] Create the Study
      • [AIAS-02] Define the optimization goal
      • [AIAS-02] Define the optimization parameters
      • [AIAS-02] Define the performance metrics
      • [AIAS-02] Define the optimization steps
      • [AIAS-02] Explore the results
    • [AIAS-03] Guide: Create a study to optimize K8s microservices costs using the Akamas CLI
      • [AIAS-03] Architecture overview
      • [AIAS-03] Create the system
      • [AIAS-03] Create the Workflow
      • [AIAS-03] Create the Study
      • [AIAS-03] Explore the results
  • Quick Guides: Akamas in a box
    • [AIAB-00] Install Akamas-in-a-box
      • [AIAB-00] Setup your Linux box
      • [AIAB-00] Install Akamas
    • [AIAB-01] Optimize a Java-based application (Renaissance benchmark)
      • [AIAB-01] Architecture overview
      • [AIAB-01] Create the System and its associated components
      • [AIAB-01] Configure the Telemetry
      • [AIAB-01] Create the workflow
      • [AIAB-01] Create and run the study
      • [AIAB-01] Explore the results
    • [AIAB-02] Optimize a Java-based application (Konakart) with JMeter
      • [AIAB-02] Architecture overview
      • [AIAB-02] Create the system and its components
      • [AIAB-02] Automate performance tests
      • [AIAB-02] Create the Telemetry Provider
      • [AIAB-02] Create the workflow
      • [AIAB-02] Create the study
      • [AIAB-02] Explore the results
    • [AIAB-03] Optimize a Java-based application (Konakart) with LRE
      • [AIAB-03] Architecture overview
      • [AIAB-03] Setup LoadRunner Enterprise
      • [AIAB-03] Create the system and its components
      • [AIAB-03] Create the telemetry instances
      • [AIAB-03] Create the workflow
      • [AIAB-03] Create the optimization study
    • [AIAB-04] Optimize a Java-based Kubernetes application (Online Boutique)
      • [AIAB-04] Architecture overview and setup
      • [AIAB-04] Setup Online Boutique
      • [AIAB-04] Setup Akamas
      • [AIAB-04] Create the system and its components
      • [AIAB-04] Create the workflow
      • [AIAB-04] Create the Study
      • [AIAB-04] Explore the results
Powered by GitBook
On this page

Was this helpful?

Export as PDF
  1. Quick Guides: Akamas in a box
  2. [AIAB-03] Optimize a Java-based application (Konakart) with LRE

[AIAB-03] Create the optimization study

In this guide, your goal is to optimize Konakart performance such that:

  • throughput is maximized so that your e-commerce service can successfully support the high traffic peaks expected in the upcoming highly demanding season

  • as you need to take into account the customer experience, you want also to make sure that the response time always remains within the required service-level objective (SLO) of 100ms.

This business-level goal translates into the following configuration for your Akamas study:

  • goal: maximize transactions_throughput metric

  • constraint: transactions_response_time metric to stay under 100ms

You can simply take the following description of your study and copy it in a study-max-throughput-with-SLO.yaml file:

name: Optimize konakart throughput with response time SLO
description: Tune the JVM to increase transaction throughput while keeping good performance
system: konakart

goal:
  objective: maximize
  function:
    formula: konakart.transactions_throughput
  constraints:
    absolute:
    - name: ResponseTimeSLO
      formula: konakart.transactions_response_time <= 100    # 100ms service-level objective (SLO)

windowing:
  type: stability
  stability:
    metric: konakart.transactions_response_time
    width: 2
    maxStdDev: 1000000
    when:
      metric: konakart.transactions_throughput
      is: max

workflow: konakart-optimize

parametersSelection:
- name: jvm.jvm_gcType
- name: jvm.jvm_maxHeapSize
  domain: [32,1024]
- name: jvm.jvm_newSize
  domain: [16,1024]
- name: jvm.jvm_survivorRatio
- name: jvm.jvm_maxTenuringThreshold
- name: jvm.jvm_parallelGCThreads
  domain: [1,4]
- name: jvm.jvm_concurrentGCThreads

parameterConstraints:
- name: "JVM max heap must always be greater than new size"
  formula: jvm.jvm_maxHeapSize > jvm.jvm_newSize
- name: "JVM GC concurrent threads must always be less than or equal to parallel"
  formula: jvm.jvm_parallelGCThreads >= jvm.jvm_concurrentGCThreads

steps:
- name: baseline
  type: baseline
  values:
    jvm.jvm_maxHeapSize: 256

- name: optimize
  type: optimize
  numberOfExperiments: 50

and then run the following command to create your study:

akamas create study study-max-throughput-with-SLO.yaml

Previous[AIAB-03] Create the workflowNext[AIAB-04] Optimize a Java-based Kubernetes application (Online Boutique)

Last updated 2 years ago

Was this helpful?