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 内存(堆)大小

在 Linux 和 Windows 操作系统上,ArcGIS GeoEvent Server 在 Java 虚拟机 (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。