原文地址:
FME Server引擎定期由FME进程监视器重新启动,以控制任何日益增长的内存问题。有两个参数控制FME Server引擎重启的频率,还有第三个参数用于控制FME Server引擎消耗内存资源的积极程度。
控制FME引擎的自动重启
为什么?调整下面提到的设置将控制FME Server引擎重启的频率——这将清除它们可能建立的内存。
# MAX_TRANSACTION_RESULT_SUCCESSES – 成功结果的最大数量
# 在关闭或重启服务前从服务接受的事务。
#
# MAX_TRANSACTION_RESULT_FAILURES – 最大失败结果事务数
# 在关闭或重启服务前接受服务。
MAX_TRANSACTION_RESULT_SUCCESSES=100
MAX_TRANSACTION_RESULT_FAILURES=10
这些设置在 <FMEServer>/Server/fmeServerConfig.txt 中– 注意:FME Server必须重启才能使更改生效。
控制FME Server引擎如何使用内存(2017及以上)
注意:除非你有特殊情况或由Safe Software进行指导,否则不应调整这个参数的值。更改这个值会导致无法预期的结果并降低性能。
FME_ENGINE_MEMORY_REDLINE <factor>
资源管理器会自动决定FME引擎进程应使用的最佳总内存。它还动态的将总内存最优的分配给FME中请求它的算法。
FME_ENGINE_MEMORY_REDLINE提示FME引擎消耗内存的积极程度。它的取值在0到1之间(默认值为0.5)。对于更多的内存使用,应设置大于0.5的值。对于减少内存使用,则设置小于0.5的值。太多内存使用的风险在于耗尽内存或机器崩溃。太保守的内存使用则使得进程可能需要更长的时间才能完成。
警告: FME_ENGINE_MEMORY_REDLINE 值的有效性因版本而异。此外,与旧版本相比,调整FME2018 或更新版本中的该值对资源的影响较小。对FME引擎内存管理改进消除了调整此参数的需要。
:: Value = 0.5 (默认值)
资源管理器将位于一个“合理的位置”,目标是尽可能快的运行而不会有稳定性的风险。
:: Value = 0.0
将立即出现"优化内存使用"。这种做法将导致更长的处理时间,因为将数据写入磁盘比使用内存资源成本更高。
:: Value = 1.0
单个进程没有内存限制。只有当整个系统内存很低时才会出现存储。
注意:可以选择上面列出的值之间的值以进一步调整内存使用量。
请注意:当参数值在0.5以下时,/tmp 或FME_TEMP目录中存在足够临时(物理)空间非常重要。
注意:在 FME 2017.1.0 或更早的版本中,由于性能问题,Linux偏向于永不存储。在FME 2017.1.1中,Linux与Windows协调一致。
哪里找到和设置FME_ENGINE_MEMORY_REDLINE?
注意:FME Server必须重启以使更改生效。
FME Server 2014 SP2 及以上版本
FME_ENGINE_MEMORY_REDLINE 参数在<FMEServer>/Server/fmeEngineConfig.txt文件中被引用。
FME Server 2014 SP1 及以下版本:
FME_ENGINE_MEMORY_REDLINE参数在<FMEServer>/Server/fmeEngineConfig_Engine#.txt 文件中被引用。
你需要对每个fmeEngineConfig_Engine#.txt文件更改此参数。
FME Desktop:
设置FME Desktop中的 FME_ENGINE_MEMORY_REDLINE ,参考文章Performance Tuning FME.