最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

Java EE 企业系统性能问题的原因和解决建议

  • 2012-09-14
  • 本文字数:1070 字

    阅读完需:约 4 分钟

Pierre-Hugues Charbonneau (昵称是 P-H)是加拿大 CGI 公司的高级 IT 顾问和系统架构师。近日他发表了题为《导致 Java EE 企业性能问题的十大原因》的文章,列举了对 Java EE 企业系统性能影响最大的因素,并做出了很好的建议。

在文中,P-H 首先指出,在设计和实现 Java EE 相关技术的时候,性能问题是我们所要面临的最大挑战之一。对于 IT 架构师和 Java EE 开发者来说,很重要的是要理解客户端的环境,并确保提出的解决方案不仅能够满足日益增长的业务需要,并且能够确保生产环境在长期之内的可伸缩性和可靠性。

接下来他列举了在过去十年中所遇到的 Java EE 性能问题的原因,并做出了一些高层次的建议。十大原因包括:

  1. 缺少合适的容量计划。
  2. Java EE 中间件环境规格说明不充分。
  3. 过度的 Java 虚拟机垃圾回收。
  4. 与外部系统过多或者很差的集成。
  5. 缺少合适的数据库 SQL 调优和容量计划。
  6. 对应用程序特定的性能问题。
  7. 线程安全代码的问题。
  8. 缺少通信 API 的超时处理。
  9. I/O、JDBC 或者关系型持久 API 资源管理的问题。
  10. 缺少合适的数据缓存。
  11. 过度的数据缓存。
  12. 过度的日志记录。
  13. Java EE 中间件调优问题。
  14. 主动监控不充分。
  15. 通用基础设备上硬件饱和。
  16. 网络延迟问题。

针对这些问题,P-H 做出的建议包括:

  • 项目团队应该花足够的时间,为 Java EE 生产环境创建合适的运营模型。
  • 找到 Java EE 中间件规格的平衡点,像业务和运维团队提供足够的灵活性,以应对运行中断的情况。
  • 避免在 32 位的 JVM 中部署过多 Java EE 应用程序。中间件的设计可以处理多个应用程序,但是 JVM 可能不行。
  • 在需要的时候选择 64 位 JVM 替换 32 位的 JVM,但是要有合适的容量计划和性能测试,以确保硬件能够支持它。
  • 确保你的监控程序对 JVM 的垃圾回收有很好的理解。
  • 要记住,垃圾回收相关的问题可能不会再开发或者功能测试阶段发现。
  • 合适的容量计划包括负载和性能测试,在调优数据库环境的时候非常重要,它能够在 SQL 级别找到问题。
  • 如果你使用 Oracle 数据库,要确保 DBA 团队对 AWR 报告做出了评审。
  • 利用 JVM Thread Dump 和 AWR 报告找到运行缓慢的 SQL,并使用选定的监控工具来做同样的工作。
  • 确保花费足够时间来增强数据库环境的运行能力(磁盘空间、数据文件、REDO 日志、表空间等等),还要做出合适的监控和警告。
  • 评审你当前的 Java EE 环境监控能力,并找到提升的机会。
  • 你的监控解决方案应该尽可能覆盖端到端的环境,包括主动的警告。
  • 监控解决方案应该与容量计划过程保持一致。

各位读者,你在设计、实现和运维 Java EE 企业系统的时候是否也遇到过性能问题,这篇文章会对解决那些问题提供一些帮助。同时也希望你可以分享自己的案例及解决方案。

2012-09-14 02:483970
用户头像

发布了 340 篇内容, 共 126.1 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

兆骑科创创新创业高层次人才引进,以赛引才,线上直播路演

兆骑科创凤阁

你必须知道的Java泛型

自然

Java core 8月月更

无意中发现阿里巴巴Java开发手册「2022最新黄山版」竟然发布了

Java面试那些事儿

Java 编程 程序员 架构 面试

他97年的,我既然卷不过他...

退休的汤姆

Java 外包 面经 Java工程师 秋招

校招失败,在小公司熬了 2 年后我终于进了阿里,竭尽全力(Java 岗)

退休的汤姆

面经 社招 面试技巧 Java工程师 秋招

用户权限-Linux系统基本权限

Albert Edison

Linux centos 运维 用户权限 8月月更

开源一夏 | 单片机系统中实用的按键驱动(STM32、51都适用)

矜辰所致

开源 8月月更 按键驱动

阿里大佬耗时一年整理的Java面试常考题,GitHub点赞33K+

Java面试那些事儿

Java 编程 程序员 面试 架构师

有了这 14 个技巧,让你玩转 Spring MVC

TimeFriends

8月月更

教你从创建数据表到实现最基础增删改查的实现全过程,小白也能轻松学会【带附件】

CRMEB

秋招!2022备战金九银十Java面试八股文合集 高薪的敲门砖

退休的汤姆

Java、 面经 社招 Java工程师 秋招

Github 秋招爆火!这套面试笔记足够你拿下 90% 以上的 Java 面试!

退休的汤姆

Java、 面经 社招 Java工程师 秋招

时序数据无处不在

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

什么是架构思维?

涛哥 数字产品和业务架构

企业架构

这份500页的最全Java性能调优笔记,或将是你的offer收割机

了不起的程序猿

Java JAVA开发 java程序员 性能调优

袭卷面试大厂!秋招最全Java面试八股文,堪称大厂offer收割机!

退休的汤姆

Java、 面经 社招 Java工程师 秋招

开源一夏 | 在 STM32L051 上使用 RT-Thread (五、无线温湿度传感器 之 完结篇)(附源码)

矜辰所致

开源 RT-Thread 8月月更 STM32L051

从 Kubernetes 事件中提取价值

玄月九

Kubernetes k8s Event 价值 事件

双非本科参加了数场面试,并从美团三面中总结出Java面试真题手册

Java面试那些事儿

Java 编程 程序员 架构 面试

架构师知识的可迁移性:目标,元素,连接

田晓亮

架构

95后阿里P7晒出工资单:狠补了这个,真香...

退休的汤姆

Java、 面经 社招 秋招 阿里、

冲刺金九银十!GitHub中文社区秋招趋势最热的面试题被我整理好了

Java面试那些事儿

Java 编程 程序员 架构 面试

RabbitMQ面试29连问,看完还过不了面试,我给你一Jio

小柴说Java

Java 编程 程序员 架构 面试

腾讯 X 广东省计算机学会,推动数据库产学研发展

科技热闻

了解布隆过滤器

自然

Java core 8月月更

今天才晓得跟月薪5W的聊过后,才知道自己一直在打杂...

退休的汤姆

Java 面经 社招 Java工程师 秋招

外包干了四年,感觉人生就这样了..

退休的汤姆

Java 面经 社招 Java工程师 秋招

秋招偷偷盘点一下各大互联网公司的实习薪资

退休的汤姆

面经 大厂面试 社招 Java工程师 秋招

兆骑科创高层次人才引进服务平台,双创服务,投融资对接

兆骑科创凤阁

Spring Security OAuth2客户端凭据授权

程序知音

Java 程序员 springboot 后端技术

秋招腾讯!配套初级程序员到Java高级架构师学习路线+配套学习资源

退休的汤姆

Java、 面经 社招 Java工程师 秋招

Java EE企业系统性能问题的原因和解决建议_Java_侯伯薇_InfoQ精选文章