【问题标题】:IBM WebSphere CPU Reduction causing Performance Issues - Application & OS CrashIBM WebSphere CPU 减少导致性能问题 - 应用程序和操作系统崩溃
【发布时间】:2018-06-11 04:19:47
【问题描述】:

我正在协助开发团队解决一个问题。

  • 在 IBM WebSphere 上托管了一个 Web 应用程序。
  • 出于业务原因降低成本的目的,决定将应用服务器处理器的使用数量从 2 个减少到 1 个。
  • 在访问门户的用户数量没有任何变化的情况下,CPU 峰值事件从每年大约 6 起增加到每周至少 1 起。
  • 一项调查证实,CPU 峰值和应用程序和/或操作系统崩溃的原因是在峰值点访问它的用户数量增加。

这显然是因为 CPU 资源不足。

我们需要用一个实用的解决方案来解决这个问题。将 CPU 增加到 2 的请求已被拒绝,而是被要求提供技术修复。

采取的步骤:

  1. 添加了额外的 RAM
  2. 堆内存增加
  3. 根据 PMR 建议更改了 JVM 设置
  4. 垃圾收集频率降低
  5. 性能微调已完成
  6. 优化的源代码

即使经过上述步骤,当用户数量增加到某个阈值以上时,CPU 仍然会出现峰值,应用服务器/操作系统会崩溃。

通过暂时增加到 2 个 CPU 进行短暂测试,然后 CPU 峰值和应用程序崩溃立即大幅降低到商定的可接受水平。

如何解决这个问题?

是否可以采取任何技术措施来解决这个问题,例如 CPU 使用计数从 2 减少到 1,但应用程序仍然可以正常运行而不会出现峰值或崩溃?

我知道这个问题非常主观,需要研究应用程序源代码逻辑。假设代码已经在可能的范围内进行了微调,需要您对如何进行的建议/建议。

我会尽力提供尽可能多的额外信息。

谢谢。

问候

【问题讨论】:

  • 首先,您需要找到应用程序中的哪个组件导致 CPU 出现峰值,一旦找到它,您就必须按照您提到的那样分析代码,看看是否可以进一步优化以帮助防止 CPU 峰值。您应该首先使用 WAS 性能查看器来帮助定位导致峰值的组件。
  • @Carlos:感谢您的建议。我们已经使用过 Tivoli Performance Viewer。将重新审视它。

标签: java crash cpu-usage websphere-portal


【解决方案1】:

你也可以跟着high cpu mustgather在high cpu期间拿一些javacores做对比分析,看看是什么线程阻塞和占用资源

【讨论】:

    猜你喜欢
    • 2014-12-16
    • 1970-01-01
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 2013-09-17
    相关资源
    最近更新 更多