Skip To Content

GeoEvent Server 配置文件

ArcGIS GeoEvent Server 配置文件 (ArcGISGeoEvent.cfg) 用于存储 GeoEvent Server 的启动配置。 在大多数情况下,不应修改此文件中的条目。 在某些情况下,可能需要修改配置文件,如下所述。

配置行编号

请注意,在 ArcGISGeoEvent.cfg 文件中,每个 wrapper.java.additional 属性行具有一个与之关联的数字,对于第一个属性,数字为 1,然后从该数字开始递增:

wrapper.java.additional.1=-Dkaraf.home="%KARAF_HOME%"
wrapper.java.additional.2=-Dkaraf.base="%KARAF_BASE%"

这些索引号非常重要,必须保持排序准确。 添加或注释各个行时,确保检查各个索引以保证准确。

使用 JMX 监控 GeoEvent Server

JMX 是 Java 管理扩展模块,用于实施管理和监控 Java 应用程序的管理接口。 如果您需要监视 GeoEvent Server 的运行状况,此模块非常有用。 可通过将以下代码行添加到配置文件来启用 JMX。

#Uncomment to enable jmx settings
wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1009
wrapper.java.additional.n=-Dcom.sun.management.jmxremote.authenticate=false
wrapper.java.additional.n=-Dcom.sun.management.jmxremote.ssl=false
wrapper.java.additional.n=-Dcom.sun.management.jmxremote.local.only=false
# Uncomment to enable jmx settings
wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1009
wrapper.java.additional.n=-Dcom.sun.management.jmxremote.authenticate=false
wrapper.java.additional.n=-Dcom.sun.management.jmxremote.ssl=false
wrapper.java.additional.n=-Dcom.sun.management.jmxremote.local.only=false

您必须将上面几行中的 n 替换为给定参数的索引号。 请参阅以下示例:

# Minimum and Maximum Java Heap Sizes
wrapper.java.additional.13=-Xms1g
wrapper.java.additional.14=-Xmx4g
# Uncomment to enable jmx settings
wrapper.java.additional.15=-Dcom.sun.management.jmxremote.port=1009
wrapper.java.additional.16=-Dcom.sun.management.jmxremote.authenticate=false
wrapper.java.additional.17=-Dcom.sun.management.jmxremote.ssl=false
wrapper.java.additional.18=-Dcom.sun.management.jmxremote.local.only=false

配置 JMX 身份验证

上面的示例提供了对 JMX 界面的访问,无需任何身份验证。 猜测正确 JMX 端口的任何人都可以访问 JMX 数据。 因此,建议实施适当的身份验证方案,如 Java 管理扩展模块文档的使用密码和访问文件部分所述。

启动时控制输入

您可以将 GeoEvent Server 配置为在 GeoEvent Server 启动时停止所有输入。 将以下属性添加到配置文件,并将其值设置为 true,可确保 GeoEvent Server 启动时,所有输入将处于停止状态。

wrapper.java.additional.n=-DSTOP_INPUTS_ON_STARTUP=true

再次确保使用如上所述的正确索引。

注:

此属性在可能频繁启动和停止 GeoEvent Server 的开发环境中非常有用,因为您想确保 GeoEvent 服务中的元素已准备就绪,可以接收和处理事件数据。 在生产系统中,此设置需要有人在接收任何数据之前启动输入。 考虑到系统重新启动的自动化程度和高可用性,似乎不太可能需要人为干预。

Java 内存(堆)大小

LinuxWindows 操作系统上,ArcGIS GeoEvent ServerJava 虚拟机 (JVM) 实例中运行。 开箱即用的默认配置仅将 4GB 的服务器可用 RAM 分配给此 JVM。 需要从此分配中获取 RAM 的所有 GeoEvent Server 操作包括但不限于:

  • 地理围栏存储
  • 事件缓存,例如字段丰富器处理器
  • 事件检测
  • 需要状态缓存的分析,例如追踪间距检测、入口和出口
  • 在高速下处理大量数据时的常规性能

监控 GeoEvent Server 性能时,您可能会注意到它通常会消耗其最大的内存量(默认为 4GB RAM)。 或者,您可能会注意到可以加载的地理围栏数必须小于所需数量。 在这种情况下,您可以增加分配给 GeoEvent Server 的 RAM 数量。

在系统中分配 RAM 时,请考虑计算机上可能正在运行的所有应用程序。 在理想情况下仅安装 GeoEvent Server 应用程序的生产环境中,可以合理地预期会向 GeoEvent Server 分配计算机总内存的很大一部分。 在 GeoEvent Server 可能是已安装的几个应用程序之一的开发环境中,应在各种应用程序之间仔细分配内存。 即使在专用计算机上,也无法将所有内存分配给 GeoEvent Server。 对此,有两个原因。 第一个原因是操作系统性能;操作系统的各个组件都需要内存才能各行其职。 建议您为操作系统提供大约 25% 的内存资源。 第二个原因是最大 JVM 内存设置为 32GB;Windows 将 JVM 的内存限制为不超过 32GB,因此无需将其设置为高于 32GB。

除了设置 JVM 可以消耗的最大内存量之外,还可以设置最小启动内存分配。 启动 Java 时,最初将分配此最小内存量。 随着其消耗的内存增加,将分配更多的内存,直到达到最大内存分配。 增加内存的过程中可能占用较大内存,因此会导致 GeoEvent Server 在此内存分配期间暂停。 因此,计划将最小启动内存设置为尽可能接近或大于最终内存消耗。

如果系统管理员已确认计算机具有足够的可用 RAM 并确定 GeoEvent Server 开发需要将更多的 RAM 分配给运行 GeoEvent Server 的 JVM 实例,则管理员可以按照以下步骤将更多 RAM 分配给托管 JVM 以增加 GeoEvent Server 的可用内存。

  1. 停止 ArcGIS GeoEvent Server 服务。

    Windows 中,确保 ArcGIS GeoEvent Server 服务及其关联的 java.exe 进程均已停止。

  2. 浏览至 ArcGIS GeoEvent.cfg 文件,并以管理员身份在文本编辑器中将其打开。

    Windows 中,该文件位于 GeoEvent Server 安装目录的 etc 文件夹中。 默认目录位置为 C:\Program Files\ArcGIS\Server\GeoEvent\etc

  3. 找到最小和最大 Java 堆大小块。
    注:

    根据您正在使用的 GeoEvent Server 版本,JVM 参数的索引可能与下图不同。 下面列出的默认和示例分配以千兆字节 (GB) 为单位。

    1. -Xmx 属性设置为最大大小以限制 JVM 内存。 请参阅以下示例:
      1. 保持默认值 4GB - wrapper.java.additional.[index]=-Xmx4g
      2. 设置为 16GB - wrapper.java.additional.[index]=-Xmx16g
      3. 设置为 32GB - wrapper.java.additional.[index]=-Xmx32g
    2. -Xms 属性设置为 JVM 内存的最小启动大小。 请参阅以下示例:
      1. 保持默认值 1GB - wrapper.java.additional.[index]=-Xms1g
      2. 设置为 4GB - wrapper.java.additional.[index]=-Xms4g
      3. 设置为 16GB - wrapper.java.additional.[index]=-Xms16g
  4. 保存 ArcGIS GeoEvent.cfg 文件并关闭文本编辑器。
  5. 启动 ArcGIS GeoEvent Server Windows 服务。

使用系统管理工具,验证 GeoEvent Server 的 JVM 实例(java.exe 进程)消耗的内存是否永远小于在 ArcGISGeoEvent.cfg 配置文件中分配的内存,以及现在可用于 GeoEvent Server 操作的内存是否大于默认值 4GB。