[]
基于.net core 提供的一些用于运行时垃圾回收的配置选项,我们也在 Wyn 中进行了相应引入。
配置项 | 说明 |
---|---|
HeapLimit |
|
HeapLimitPercent |
|
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 中添加这样的设置: