Java 应用发布后,负载(Load)分析及问题排查

  • 时间:
  • 浏览:2

表创建之后,即可启动tsd服务,只都里能 运行如下命令:

$ sudo yum install -y gd gd-devel libpng libpng-devel

图为在一台服务器上运行 htop 以检测负载,平均负载显示在界面的右上角。

之后便可启动hbase:

New Relic

htop

要点4: 请记住,分析不同指标的相关数据,要保持开阔的思维,有1个 多容易发现它们之间的互相影响。

不可能 看一遍输出:

这俩 也很简单,不可能 build失败,那肯定是缺少Make不可能 Autotools等东西,用包管理器安装即可。

也都里能内部内部结构监测响应时间,之后 都里能 硬代码,累似 通过 Dropwizard 指标发送数据并在 Graphite 上发布。尽管看来将有有哪些数据和这俩 标准关联都会总出 最有用的见解,但更多的见解仍涵盖在接下来的措施 中。

根据具体情况执行(这样就装),安装所需软件

第还还有一个广泛使用的衡量指标之后 服务器的平均负载。平均负载习惯上分成3每种,在最后的1、5和15分钟(从左到右)显示其结果。之后 分数低于机器内核的数量,之后 无压力具体情况,一旦超过内核数,就意味着着机器居于压力具体情况。

创建表OpenTSDB所都里能 的表形状:

GCViewer

首先,确保设置了JAVA_HOME:

这俩 过多说了,非常简单,只都里能 按照  这里所说,下载、解压、修改配置文件、启动即可。

{NAME => ‘id’, COMPRESSION => ‘NONE’, BLOOMFILTER => ‘ROW’},

要点1: 确保所使用的派发措施 都里能实现并不同淬硬层 观测数据,并开始英文英文进入百分位层面。

响应时间用来衡量程序中的事务避免速率,它也都里能从 HTTP 请求层和数据库层来观察。这俩 最慢的查询都里能 最优化避免,而响应时间都里能缩小该查询的范围。吞吐量从有1个 多淬硬层 观察避免过程,并显示程序在给定时间域中避免好多个请求,通常单位为每分钟(cpm)。

HBase Shell; enter ‘help‘ for list of supported commands.

$ echo $HBASE_HOME/opt/hbase-1.0.1.1

$ git clone git://github.com/OpenTSDB/opentsdb.git$ cd opentsdb$ ./build.sh

可行工具:

{NAME => ‘t’, VERSIONS => 1, COMPRESSION => ‘NONE’, BLOOMFILTER => ‘ROW’}0 row(s) in 0.280 secondsHbase::Table – tsdbcreate ‘tsdb-tree’,

4. GC率生和熟止时间

要点2: 要选择负载,仅靠资源利用率是不够的,都里能 格外注意以便充分了解队列中的程序。

安装 OpenTSDB

可行工具:

tsdb-metatsdb-treetsdb-uid4 row(s) in 0.0180 seconds

图为 OneAPM 对事务中的错误率监控,随时间监控应用错误率具体情况。

图为 OneAPM 上监控到的 Java 程序响应时间和吞吐量

应用层考察错误率,比如在所有 HTTP 请求中考察失败的 HTTP 避免总数。之后 还有1个 多老是被忽视的具体点:特定事务的错误,这与程序的运行具体情况有直接的影响。代码中某一特定措施 失败、生成日志错误及居于异常的次数占总调用次数的比重,也要予以显示。

这之后,再设置HBASE_HOME:

2. 平均负载

Version 1.0.1.1, re1dbf4df80d214fca14908df71d038081577ea46, Sun May 17 12:34:26 PDT 2015create ‘tsdb-uid’,

{NAME => ‘name’, COMPRESSION => ‘NONE’, BLOOMFILTER => ‘ROW’}0 row(s) in 1.3180 secondsHbase::Table – tsdb-uidcreate ‘tsdb’,

错误率观测有多种措施 ,而多数开发人员都利用高层次标准——在整个

在habse shell里,都里能看一遍表不可能 创建成功。

垃圾回收器行为异常,是意味着着应用吞吐量和响应时间老是下降的主要意味着着之一。读者让你了解关于垃圾回收过程的更多知识和相关的标准,可阅读 深入理解Java虚拟机(第2版)。

之后 有有哪些数据对其这俩 并这样过多的意义。第一步,从正在避免的事件中优选出最紧急的一件,找到日志错误或异常;第二步,从实际根源处着手,并予以修复。之后 基于此间题,已有相应的避免措施 。有了 OneAPM ,就这样必要根据日志文件去找错误提示,不可能 关于服务器具体情况的所有信息都会在同一界面显示,包括堆栈踪迹、实源代码、变量值及每个错误调用的应用实例。

$ /opt/hbase-1.0.1.1/bin/start-hbase.sh

starting master, logging to /opt/hbase-1.0.1.1/logs/hbase-vagrant-master-localhost.localdomain.out

AppDynamics

Java应用响应时间和吞吐量

测量响应时间的措施 之一之后 使用像 New Relic 不可能 AppDynamics(之后 曾在之后的博客讨论的)那种 APM(应用性能监控工具),通过有有哪些工具,都里能追踪平均响应时间,并都里能直接在主报告仪表板上与昨日不可能 上周的平均响应时间作比较,有有哪些比较有助查看新的部署怎样才能对程序造成了影响。另这俩 措施 是通过测量网页避免的百分位数,来测量 HTTP 请求完成响应所需的时间。

htop

要点3: 要避免错误率增长的根本意味着着,仅靠日志文件是不够的,为了得到极少量关于亲们所需指标的数据,都里能 利用这俩 错误率监控工具。

可行工具:

Type “exit” to leave the HBase Shell

分析 GC 日志文件是理解 GC 中止时间和频率的关键。不可能 不自行分析,不可能 使用累似 于 jClarity 的工具,这俩 指标是这样措施 直接使用的。这俩 这俩 要确保使用大约的 JVM 参数打开 GC 日志派发,以便分析。

$ echo $JAVA_HOME/usr

安装HBase

若在 linux 系统上跟踪平均负载具体情况,有1个 多极好的措施 之后 通过 Hisham Muhammad 利用 htop 完成。丰富的色彩加进去去生动的视觉化效果,瞬间使得命令行有了 NASA 仪表板的即视感。

平均负载除了都里能简单测量 CPU 利用率,更着重于考量每个内核目前在队列涵盖好多个程序。某内核利用率达80%,之后 却即将开始英文英文任务,而另一内核在队列中还有6个程序要避免,这这俩 具体情况是截然不同的。CPU 这俩 概念并这样涵盖其区别,之后 平均负载却都里能从大局中考虑此间题。

OneAPM

$ build/tsdb tsd

{NAME => ‘name’, COMPRESSION => ‘NONE’, BLOOMFILTER => ‘ROW’}0 row(s) in 0.4480 secondsHbase::Table – tsdb-meta

$ tar zxvf gnuplot-5.0.1.tar.gz$ cd gnuplot-5.0.1$ ./configure$ make$ sudo make install

> listTABLE

2016-01-09 05:51:10,875 INFO [main] TSDMain: Ready to serve on /0.0.0.0:4242

之后安装GnuPlot:

3. 错误率(及如避免)

tsdb

jClarity Censum

不可能 你还想使用自带的界面,则都里能 安装GnuPlot 4.2及之后版本,以及gd和gd-devel等。这里亲们选择了GnuPlot 5.0.1的版本。

错误率

$ env COMPRESSION=NONE ./src/create_table.sh2016-01-08 06:17:58,045 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable

Ruxit

{NAME => ‘t’, VERSIONS => 1, COMPRESSION => ‘NONE’, BLOOMFILTER => ‘ROW’}0 row(s) in 0.2180 secondsHbase::Table – tsdb-treecreate ‘tsdb-meta’,