c******n 发帖数: 4965 | 1 I'm suspecting my JVM freeze is caused by yourkit,
any tools similar so I can try them instead?
thanks |
|
c******n 发帖数: 4965 | 2 the first impression I got is GC, but after looking at the print out from
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps
I don't see a GC happening around the time of freeze.
basically it freezes for about 20 seconds, around this time, yourkit does
not take any samples, so it's a straight empty period of 20 seconds for all
threads on the yourkit threads display.
in a few cases it's indeed due to GC. but most other cases not: because I
opened sar , iostat and recorded system cpu, during most of the f... 阅读全帖 |
|
i****k 发帖数: 804 | 3 12g 的heap太大了。不知道你的APP是什么。如果是需要支持很多用户的WEB,正确的方
法是考虑用cluster, horizontally scale up。
目前的JVM,对12G这么大的HEAP都会出现性能病态。你肯定是在用64位JVM。64位JVM本
身目前也普遍比32位JVM慢20 ~ 25%左右。多数厂商建议即使在64位OS上也要用32位
JVM。
如果用32位JVM,在3G左右还是频繁OLD GEN GC,那么你的APP应该是病态的,需要
PROFILE什么类的对象被频繁分配和GC,是否有大STRING对象被频繁分配( String +
String 之类的code),是否有大块数据频繁被IO。针对这些情况,考虑用FLYWEIGHT一
类的设计模式,用StringBuffer,用cache strategy。下载一个免费试用的工具
YourKit,解决这类问题很有效。
The |
|
m******t 发帖数: 2416 | 4 YourKit is good too. Not free though. |
|
c******n 发帖数: 4965 | 5 every java 硅工 should grasp it,
can give u guru position at work |
|
|
m******o 发帖数: 774 | 7 exactly why I don't have it. |
|
c******n 发帖数: 4965 | 8 just get a fake email and get the trial over and over
if u really use it a lot, I think the price of 1000$ is definitely worth
it |
|
m******o 发帖数: 774 | 9 I guess when I become an independent consultant making $500 plus an hour... |
|
m******t 发帖数: 2416 | 10 Small world! I don't have lots of other stuff for exactly that reason too! |
|
|
c******n 发帖数: 4965 | 12 I enabled all to be wall clock,
then drill down to one call, it takes like 5% of all time,
but below that, there is no more breakdown of the time, but I have the code
and know that it's further divided into other calls. why don't they show up?
I am using default filters for the capture rules.
on the other hand, if I enable tracing, then the time captured completely
does not make sense, it's all taken by .java.lang.Thread.run(), with no
breakdown at all... |
|
|
c******n 发帖数: 4965 | 14 sent question to their tech support, no fxxxing reply ....
damn our 500$ went to water... |
|
e*****t 发帖数: 1005 | 15 for simply usage, just use jconsole. |
|
r*****l 发帖数: 2859 | 16 jprofile.
It's not recommended to connect those tools to your prod system since they
will severely impacts the performance or makes it freezing.
I always like to:
1, Build in my own profiling. With aspect, it's not very hard.
2, Use jmap and memory analyzer to analyze memory issue.
3, Generate and analyze thread lock with thread dump. If I remember
correctly, jstat and TDA are the tools to go. |
|
c******n 发帖数: 4965 | 17 there is a post online where someone figured out that it's very easy to hack
the license check: you just decompile and modify the license check code.
and recompile and use the new class.
but it seems that the latest versions of yjp obfuscates the source code so
the above is no longer feasible |
|
|
|