[{"id":"840f0737-df1d-47ae-bb0a-359b01fe0608","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"d5d9cdef-8854-4505-89be-a2bbc3cb4482","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"3dc3dd55-35b0-4d23-bf62-47bc3650e4ee","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"80d84fbc-d0f8-4e4a-947f-e3e4de9b49b2","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"9152b7ca-0186-4fe3-a26f-5a05f322db07","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]}]
基于.net core 提供的一些用于运行时垃圾回收的配置选项,我们也在 Wyn 中进行了相应引入。
配置项 | 说明 |
---|---|
HeapLimit |
|
HeapLimitPercent |
|
HighMemoryPercent | 内存负载由正在使用的物理内存的百分比表示。 默认情况下,当物理内存负载达到 90%时,垃圾回收对于执行完整的压缩垃圾回收变得更加积极,以避免分页。 当内存负载低于 90% 时,GC 优先使用后台回收进行完整的垃圾回收,这种方法的暂停时间较短,但不会使堆的总大小减少太多。 可以通过此选项调整高内存负载阈值。如果要控制堆大小,请考虑调整阈值。例如,对于具有 64 GB 内存的计算机上的主要进程,当有 10% 的可用内存时,GC 开始响应是合理的。 但是对于较小的进程(例如,仅消耗 1GB 内存的进程),GC 可以在可用内存少于 10% 的情况下轻松地运行。 对于这些较小的进程,请考虑将阈值设置得更高。 另一方面,如果你希望较大的进程具有较小的堆大小(即使有足够的物理内存可用),要使 GC 更快做出反应以缩小堆大小,则降低此阈值是一种有效的方法。 |
具体使用时仅需在 Wyn.conf 文件添加配置项即可。
type=info
配置文件位置如下:
标准版,Windows环境中配置文件的默认路径为 C:\Program Files\Wyn\conf ,Linux环境下为 /opt/Wyn/conf/
集群版,Windows环境中配置文件的默认路径为 C:\Program Files\Wyn\Monitor\conf ,Linux环境下为 /opt/Wyn/Monitor/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 中添加这样的设置: