最大化 AIX 上的 Java 性能,第 2 部分: 速度需求
2008-11-10 08:26:34 来源:WEB开发网调用此命令的最简单方法是使用:# tprof -kse -x "sleep 10"
十秒钟后,将生成一个新文件 __prof.all,其中包含有关什么命令正在使用系统上的 CPU 的信息。搜索 FREQ,该信息应该与下面的示例类似:
Process FREQ Total Kernel User Shared Other
======= === ===== ====== ==== ====== =====
oracle 244 10635 3515 6897 223 0
java 247 3970 617 0 2062 1291
wait 16 1515 1515 0 0 0
...
======= === ===== ====== ==== ====== =====
Total 1060 19577 7947 7252 3087 1291
此示例表明,超过半数的 CPU 时间都与 Oracle 应用程序关联,并且 Java 正在使用大约 3970/19577 或 1/5 的 CPU。wait 通常意味着空闲时间,但是也可以包括 CPU 使用量的 I/O 等待部分。
要确定是否存在大量的锁争用,您还应该检查 KERNEL 部分:Total Ticks For All Processes (KERNEL) = 7787
Subroutine Ticks % Source Address Bytes
============= ===== ==== ======== ======== ======
.unlock_enable_mem 2286 11.7 low.s 930c 1f4
.waitproc_find_run_queue 1372 7.0 ../../../../../src/bos/kernel/proc/dispatc
h.c 2a6ec 2b0
.e_block_thread 893 4.6 ../../../../../src/bos/kernel/proc/sleep2.
对于 Shared Objects 部分,查找 libjvm.a,特别是 gc_* 或与任何 GC 短语(Mark、Sweep、Compact)接近的名称。如果发现大量的此类内容,则 JVM 进程可能需要 GC 优化。
更多精彩
赞助商链接