在Mono上使用Control Flow Guard

问题描述

.NET应用程序可以使用Control Flow Guard保护其内存。但是,当您在Linux中的mono上运行这些应用程序时会发生什么呢?我已经看到第三方应用程序由于CentOS 7上过多的内存使用而被杀死。我的服务器内存不足,并试图找到可通过OOM杀手杀死的进程。使用内存分配的进程更有可能被杀死,因为它们释放了大部分内存。我的服务器记录了以下内容

Aug 31 23:41:58 MyServer kernel: Out of memory: Kill process 14401 (mono) score 30 or sacrifice child
Aug 31 23:41:58 MyServer kernel: Killed process 539 (thirdpartyapp) total-vm:3514468kB,anon-RSS:26508kB,file-RSS:0kB,shmem-RSS:0kB

该应用使用了约3.5GB的虚拟内存,并启用了控制流防护。我相信CFG的使用会导致OOM得分更高,因此该应用被杀死了。有谁知道CFG对OOM杀手或整个Li​​nux是否有负面影响?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)