JVM 优化
为了优化 ThingWorx 性能,有一些建议的 JVM 设置需要执行。对以下所列 JVM 参数以外的参数进行的调整特定于工作负载,并且取决于使用 ThingWorx 构建的应用程序。有关基于环境的特定优化,请与 PTC 支持联系。
强制设置
设置
说明
-server
明确指示在服务器模式下运行 JVM。使用 64 位 JDK 时默认此操作,但最好对其进行声明。
-d64
明确指示在 64 位模式下运行 JVM。当前 JVM 自动检测到此操作,但最好对其进行声明。
XX:+UseG1GC
指示 JVM 使用 Garbage First Garbage Collector。
-Dfile.encoding=UTF-8
指示 JVM 将 UTF-8 作为默认字符集使用,以便正确显示非西方字母。
-Djava.library.path
指定本机库的路径。
-Xms3072m (针对具有 4GB 内存的系统)
指示 JVM 将最小为 3072MB 的内存分配至 Tomcat 进程。应将此设置为系统可用内存的 75%。
* 
内存量需根据实际环境进行调整。
-Xmx3072m (针对具有 4GB 内存的系统)
指示 JVM 限制 Tomcat 进程的最大内存。应将此设置为系统可用内存的 75%。
* 
内存量需根据实际环境进行调整。5GB 内存对于 100,000 个事物来说是一个良好的起点。
* 
最小和最大内存量相等的原因是为了减少 JVM 在运行时重新评估所需内存和调整分配大小。针对托管和/或面向公众环境、开发和测试环境,建议使用 -Xms512m 就已经足够了。此外,验证是否留有足够的内存以允许运行操作系统。
-Dlog4j2.formatMsgNoLookups=true
启用 JMX 监控的可选设置
如果您怀疑存在内存问题,请参考以下工具,了解有关监控系统的详细信息。所列出的设置用于将这些工具连接到 ThingWorx 使用的 Tomcat 实例,以监控 JVM 特性。
设置
说明
-Dcom.sun.management.jmxremote
通知 JVM 您计划通过 JMX 对其进行远程监控
-Dcom.sun.management.jmxremote.port=22222
JVM 应打开的用于监控的端口。
-Dcom.sun.management.jmxremote.ssl=false
未使用 SSL。
-Dcom.sun.management.jmxremote.authenticate=false
无需进行身份验证。
-Djava.rmi.server.hostname=<host or IP>
基础 RMI 客户端连接将使用的主机名或 IP。
这对您有帮助吗?