惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Secure Thoughts
Security Latest
Security Latest
Simon Willison's Weblog
Simon Willison's Weblog
O
OpenAI News
GbyAI
GbyAI
L
LINUX DO - 最新话题
A
Arctic Wolf
T
Tor Project blog
G
GRAHAM CLULEY
I
InfoQ
博客园_首页
IT之家
IT之家
The Register - Security
The Register - Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Proofpoint News Feed
The GitHub Blog
The GitHub Blog
Blog — PlanetScale
Blog — PlanetScale
N
Netflix TechBlog - Medium
K
Kaspersky official blog
博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
U
Unit 42
PCI Perspectives
PCI Perspectives
量子位
P
Palo Alto Networks Blog
S
Securelist
T
Troy Hunt's Blog
博客园 - 【当耐特】
Recorded Future
Recorded Future
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Security Affairs
Engineering at Meta
Engineering at Meta
T
The Blog of Author Tim Ferriss
博客园 - 聂微东
罗磊的独立博客
N
News and Events Feed by Topic
人人都是产品经理
人人都是产品经理
B
Blog RSS Feed
NISL@THU
NISL@THU
C
Cisco Blogs
T
Threatpost
有赞技术团队
有赞技术团队
Forbes - Security
Forbes - Security
Hugging Face - Blog
Hugging Face - Blog
Last Week in AI
Last Week in AI
T
The Exploit Database - CXSecurity.com
Cloudbric
Cloudbric
Cyberwarzone
Cyberwarzone
Google DeepMind News
Google DeepMind News
C
Cyber Attacks, Cyber Crime and Cyber Security

OneAPM

OneAPM NI 基于旁路镜像数据的真实用户体验监控 oneapm 收费了,不再提供免费版。 为 UWP 应用提供的 .NET 网络 API oneAPM 的应用程序中的响应时间的正态分布图的实际意义在哪里? 国内首家 PHP 应用性能管理提供商, OneAPM For PHP 正式公测 - V2EX 想要快速熟悉 OneAPM 吗? 快来看看我们的用户入门手册~ - V2EX OneAPM 什么时候支持 LNP? [2014 年 11 月 14 日] OneAPM 第一周周报发布! - V2EX OneAPM 更新说明-11.19 日 有 NR 的 Sharing data 功能吗? - V2EX OneAPM 性能问题模拟器 - V2EX
推荐一款检测内存泄露工具 plumbr
doctortao · 2014-12-25 · via OneAPM

Plumbr是一款监控JVM的工具,能检测的内存泄露,GC时间过长,线程锁的情况。最近公司小伙伴自己业余时间开发的运营系统时不时崩溃,处于玩耍新工具的心态,我们使用了Plumbr来作为我们的JVM性能监控工具。
首先你要在他们的网站注册一个新账号,将它的jar包下载下来。然后根据JVM的不同大概会有一些区别,以TOMCAT来说,就是在bin目录里的catalina.sh中多加入JAVA_OPT。

-javaagent:/path-to/plumbr.jar

然后再重启的时候将这个jar包带起来,从而实现对数据的抓取。


PLUMBR的支持范围:

JDK Version
Oracle HotSpot 6, 7 and 8
Open JDK 6 and 7 28
Server Version
Jetty 6, 7 and 8
JBoss 7+
WebLogic 8+
Tomcat 6+
Glass-fish 4+

基本上包括了主流的jvm系统,还是支持的蛮全的。支持的语言当然只有JAVA,不过在它官网是这么说的:
Although officially Plumbr supports only Java, we encourage all users of other JVM-based languages – such as Groovy, Jython, JRuby, Clojure, Scala etc – to give it a try and let us know about the test results. This will help us further broaden the list of supported environments.

反正他也不知道能不能支持,你可以试试看~~


它抓取的信息包括以下内容:

对于操作系统,JVM设置和启动参数,通过RuntimeMXBean和System.getProperties接口获得的数据。
关于garbage collection events的信息 - gc的频率,收集时间,释放内存等量
有关对象分配的统计信息。信息是基于分配点进行收集的,包括类名和根据类名创建的对象和创建对象的代码行。
事件报告的数据。内存泄漏,事故报告包含对象计数,占用的空间,分配点(包括类名称和代码行)和线程的堆栈跟踪。

总结来说就是,JVM的设置,GC的log,和基于堆栈信息拉出来的对象信息。


成功部署以后,进入的页面非常的简洁:
首先关注的是堆内存的使用情况,是否有泄漏,泄露的话会通过leaksize绘出红色的泄露情况。

http://imgur.com/4ImD5bQ

从图表上可以看出我现在的内存还是没有泄露的。图表右上角有一个threshold,可以设置阀值,一旦发现有泄漏的情况就给你发报警邮件。

http://i.imgur.com/bDZl3Nh.jpg

第二个图表是GC回收时间,从这里可以看到你每次GC的回收时间是多少,还是通过右上角的设置自定义你觉得多长时间是长GC,这里由于我设置的事1MS,所以几乎每次GC都被当做成了长GC.
第三个图表示是对线程锁的监控,从这里可以看出这一小时内你的锁的数量和时间,是否存在超长时间的锁。


对于上述图表出现的问题,plumbr会详细记录每一次问题的情况,以便用户查找。

http://i.imgur.com/4ImD5bQ.jpg

对于每一个问题,它还有详细的描述,包括问题发生的机器,时间,造成问题的原因,问题发生的对象和方法等等,甚至有一些常见的问题,它还能告诉你怎样修复它。这可以说是它最吸引我的地方。
附上一个它对我memory leak诊断的链接:
https://portal.plumbr.eu/shared#/incident/188484?token=wgy4UKRNk13Wvt7-ZWzy1cH__Eg
不只是memory leak,对长GC和锁它好像也要有所诊断,不过因为是付费版提供的功能所以就不太清楚了。