问题描述
.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杀手或整个Linux是否有负面影响?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)