减少内存问题的最佳做法
开发和监控 ThingWorx 应用程序时,请使用以下最佳做法,以避免出现有关内存驱动的性能问题:
监视 ThingWorx 应用程序各功能每日的内存使用情况。这可帮助您了解应用程序在稳态和应力条件下的内存使用情况。
使用 Apache JMeter 或类似实用程序对类生产数据执行伸缩性测试,以便同时对与 ThingWorx 应用程序交互的用户和设备进行建模。
您必须确保为伸缩性测试分配足够的系统资源。大多数生产系统需要 64 GB 的 RAM,其中 40 GB 分配给 Java 堆。
流查询可以从数据库中检索大量记录,然后在 JVM 内存中做进一步筛选。建议添加适当的时间间隔以最大限度地减少流检索到的行数。尤其是当数据开始在每日的生产使用中累积时,这一点非常有用。
如果可能,在进行大量内存处理时,请使用外部系统,例如,数据库服务器、微服务服务器或联合 ThingWorx 服务器。
优化长时间运行的服务。在执行期间,任何运行时间超过 10 分钟的服务都可能会锁定内存、数据库连接和其他服务器资源。计划服务也应在 10 分钟内执行并完成,以确保将内存资源返回到系统中。
考虑实现供生产使用的高可用性群集。这可确保即使其中一个 ThingWorx 节点遇到内存问题,整个应用程序仍可用。