MEMORY TUNING: KEY PERFORMANCE INDICATORS

在这里插入图片描述

When you are tuning the application’s memory & Garbage Collection settings, you should take well-informed decisions based on the key performance indicators. But there are overwhelming amount of metrics reported; which one to choose and which one to leave? This article intends to explain the right KPIs and right tools to source them.

What are the right KPIs?

  1. Throughput
  2. Latency
  3. Footprint

Throughput

Throughput is the amount of productive work done by your application in a given time period. This brings the question what is productive work? what is non-productive work?

Productive Work: This is basically the amount of time your application spends in processing your customer’s transactions.

Non-Productive Work: This is basically the amount of time your application spend in house-keeping work, primarily Garbage collection.

Let’s say your application runs for 60 minutes. In this 60 minutes let’s say 2 minutes is spent on GC activities.

It means application has spent 3.33% on GC activities (i.e. 2 / 60 * 100)

It means application throughput is 96.67% (i.e. 100 – 3.33).

Now the question is: What is the acceptable throughput %? It depends on the application and business demands. Typically one should target for more than 95% throughput.

Latency

This is the amount of time taken by one single Garbage collection event to run. This indicator should be studied from 3 fronts.

  1. Average GC time: What is the average amount of time spent on GC?
  2. Maximum GC time: What is the maximum amount of time spent on a single GC event? Your application may have service level agreements such as “no transaction can run beyond 10 seconds”. In such cases, your maximum GC pause time can’t be running for 10 seconds. Because during GC pauses, entire JVM freezes – no customer transactions will be processed. So it’s important to understand the maximum GC pause time.
  3. GC Time Distribution: You should also understand how many GC events are completing with in what time range (i.e. within 0 – 1 second, 200 GC events are completed, between 1 – 2 second 10 GC events are completed …)

Footprint

Footprint is basically the amount CPU consumed. Based on your GC algorithm, based on your memory settings, CPU consumption will vary. Some GC algorithms will consume more CPU (like Parallel, CMS), whereas other algorithms such as Serial will consume less CPU.

According to memory tuning Gurus, you can pick only 2 of them at a time.

  • If you want good throughput and latency, then footprint will degrade.
  • If you want good throughput and footprint, then latency will degrade.
  • If you want good latency and footprint, then throughput will degrade.

Right Tools

Throughput and Latency can be obtained from analyzing Garbage collection Logs. Upload your application’s Garbage Collection log file in http://gceasy.io/ tool. This tool can parse Garbage Collection logs and generates Throughput and Latency indicators for you. Below is the screen shot from the http://gceasy.io/ tool showing the throughput and latency:
在这里插入图片描述

             Fig: KPI section from GCEasy.io report

Footprint (i.e. CPU consumption) can be obtained from the monitoring tools – Nagios, NewRelic, AppDynamics,…

其它

想一下:三元悖论、CAP、GC: KEY PERFORMANCE INDICATORS 是不是否很像?

  • 三元悖论
    三元悖论(Mundellian Trilemma),也称三难选择(The Impossible Trinity),它是由美国经济学家保罗·克鲁格曼(一说蒙代尔)就开放经济下的政策选择问题所提出的,其含义是:在开放经济条件下,本国货币政策的独立性(Monetary policy),固定汇率(Exchange rate),资本的自由进出(Capital mobility)不能同时实现,最多只能同时满足两个目标,而放弃另外一个目标来实现调控的目的。
    在这里插入图片描述
  • CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得
  • GC: KEY PERFORMANCE INDICATORS

原文地址:MEMORY TUNING: KEY PERFORMANCE INDICATORS

个人微信公众号:
这里写图片描述

作者:jiankunking 出处:http://blog.csdn.net/jiankunking

猜你喜欢

转载自blog.csdn.net/xunzaosiyecao/article/details/84313560
今日推荐