[]
        
(Showing Draft Content)

如何对Wyn 进行内存限制

基于.net core 提供的一些用于运行时垃圾回收的配置选项,我们也在 Wyn 中进行了相应引入。

支持的配置项目

配置项

说明

HeapLimit

  • 指定 GC 堆和 GC bookkeeping 的最大提交大小(以字节为单位)。

  • 此设置仅适用于 64 位计算机。

HeapLimitPercent

  • 指定允许的 GC 堆使用量占总物理内存的百分比。

  • 此设置仅适用于 64 位计算机。

  • 如果进程正在具有指定内存限制的容器中运行,则百分比的计算结果将为该内存限制的百分比。

  • 如果已配置HeapLimit,则忽略此设置。

HighMemoryPercent

内存负载由正在使用的物理内存的百分比表示。 默认情况下,当物理内存负载达到 90%时,垃圾回收对于执行完整的压缩垃圾回收变得更加积极,以避免分页。 当内存负载低于 90% 时,GC 优先使用后台回收进行完整的垃圾回收,这种方法的暂停时间较短,但不会使堆的总大小减少太多。

可以通过此选项调整高内存负载阈值。如果要控制堆大小,请考虑调整阈值。例如,对于具有 64 GB 内存的计算机上的主要进程,当有 10% 的可用内存时,GC 开始响应是合理的。 但是对于较小的进程(例如,仅消耗 1GB 内存的进程),GC 可以在可用内存少于 10% 的情况下轻松地运行。 对于这些较小的进程,请考虑将阈值设置得更高。 另一方面,如果你希望较大的进程具有较小的堆大小(即使有足够的物理内存可用),要使 GC 更快做出反应以缩小堆大小,则降低此阈值是一种有效的方法。

使用方法和示例

具体使用时仅需在 Wyn.conf 文件添加配置项即可。

wyn.conf 文件在 Windows 环境下默认路径为 C:\Program Files\Wyn\Monitor\conf;在 Linux 环境下默认路径为 /opt/Wyn/Monitor/conf/Wyn.conf。

1. 在特定服务中使用

比如想要使 COT worker 在GC堆的提交大小达到500MB的时候开始 GC 收集,可在CotWorker节点中添加如下设置:

<CotWorker>
  <HeapLimit>500</HeapLimit>
</CotWorker>

另外,如果想让 Wyn Server 的 GC 收集在 GC 堆使用量达到总物理内存的50%时开始工作,可在Server 节点中添加如下设置:

<Server>
  <HeapLimitPercent>50</HeapLimitPercent>
</Server>

2. 在全局设置中使用

例如,如果想让所有服务的 GC 收集在总内存负载达到75%时开始工作,可以在 GlobalSettings 中添加这样的设置: