使用 IBM 性能分析工具解决生产环境中的性能问题
2010-04-12 00:00:00 来源:WEB开发网核心提示:序言企业级应用系统软件通常有着对并发数和响应时间的要求,这就要求大量的用户能在高响应时间内完成业务操作,使用 IBM 性能分析工具解决生产环境中的性能问题,这两个性能指标往往决定着一个应用系统软件能否成功上线,而这也决定了一个项目最终能否验收成功,探索解决这类问题的方式方法,并总结一些最佳实践,能否得到客户认同,能否继
序言
企业级应用系统软件通常有着对并发数和响应时间的要求,这就要求大量的用户能在高响应时间内完成业务操作。这两个性能指标往往决定着一个应用系统软件能否成功上线,而这也决定了一个项目最终能否验收成功,能否得到客户认同,能否继续在一个行业发展壮大下去。由此可见性能对于一个应用系统的重要性,当然这似乎也成了软件行业的不可言说的痛 —— 绝大多数的应用系统在上线之前,项目组成员都要经历一个脱胎换骨的过程。
生产环境的建立包含众多方面,如存储规划、操作系统参数调整、数据库调优、应用系统调优等等。这几方面互相影响,只有经过不断的调整优化,才能达到资源的最大利用率,满足客户对系统吞吐量和响应时间的要求。在无数次的实践经验中,很多软件专家能够达成一致的是:应用系统本身的优化是至关重要的,否则即使有再大的内存,也会被消耗殆尽,尤其是产生 OOM(Out Of Memory)的错误的时候,它会贪婪地吃掉你的内存空间,直到系统宕机。
内存泄露 — 难啃的骨头
产生 OOM 的原因有很多种,大体上可以简单地分为两种情况,一种就是物理内存确实有限,发生这种情况时,我们很容易找到原因,但是它一般不会发生在实际的生产环境中。因为生产环境往往有足以满足应用系统要求的配置,这在项目最初就是根据系统要求进行购置的。
另外一种引起 OOM 的原因就是应用系统本身对资源的的不恰当使用、配置,引起内存使用持续增加,最终导致 JVM Heap Memory 被耗尽,如没有正确释放 JDBC 的 Connection Pool 中的对象,使用 Cache 时没有限制 Cache 的大小等等。本文并不针对各种情况做讨论,而是以一个项目案例为背景,探索解决这类问题的方式方法,并总结一些最佳实践,供广大开发工程师借鉴参考。
更多精彩
赞助商链接