Project_LemonLime icon indicating copy to clipboard operation
Project_LemonLime copied to clipboard

关于Linux下“空间离限制太近直接 MLE 了”问题根源及解决方案的讨论

Open CoelacanthusHex opened this issue 4 years ago • 11 comments

之前的相关讨论 https://github.com/iotang/Project_LemonLime/commit/5a9b39e8088dc399d88b0fb013fef1e731d8e19f

CoelacanthusHex avatar May 27 '20 16:05 CoelacanthusHex

不考虑上古版本的话也许可以用 systemd + cgroup 来限制资源(有待验证)

  • [x] 验证可行性
  • [x] 验证准确性
  • [ ] 等待 cgroup v2 默认(否则非特权实例将无法限制资源)

CoelacanthusHex avatar Jun 07 '20 06:06 CoelacanthusHex

个人认为可以外接一个executorserver运行程序 github.com/criyle/go-judge 准确度很高,但是需要root来创建cgroup组(首次运行

undefined-moe avatar Jun 07 '20 07:06 undefined-moe

个人认为可以外接一个executorserver运行程序 github.com/criyle/go-judge

@iotang 比较有参考意义,我觉得主要是这个子项目 https://github.com/criyle/go-sandbox (原来这个想法有人造好轮子了啊

准确度很高,但是需要root来创建cgroup组(首次运行

cgroup v1 的问题,v2应该能有效解决

CoelacanthusHex avatar Jun 07 '20 07:06 CoelacanthusHex

居然拆出来子项目了orz 没注意 不过好像各大oj都是用的这类技术来着

undefined-moe avatar Jun 07 '20 07:06 undefined-moe

@iotang 要不要自造C++轮子(

CoelacanthusHex avatar Jun 07 '20 07:06 CoelacanthusHex

.dll .so .dylib它不香吗(

undefined-moe avatar Jun 07 '20 07:06 undefined-moe

迟早这个“轻量评测系统”会变成重量评测系统的(

iotang avatar Jun 07 '20 07:06 iotang

迟早这个“轻量评测系统”会变成重量评测系统的(

自造的话实现和之前同样的功能似乎代码量差距不大

CoelacanthusHex avatar Jun 07 '20 07:06 CoelacanthusHex

指依赖项数量(当然这些依赖相比 qt 还是非常渺小的

iotang avatar Jun 07 '20 07:06 iotang

@iotang 可以参照syzoj的旧评测机实现。https://github.com/t123yh/simple-sandbox

undefined-moe avatar Jun 07 '20 10:06 undefined-moe

@iotang 可以参照syzoj的旧评测机实现。t123yh/simple-sandbox

唔姆……感觉会遇上cgroup两个版本差异的问题……

个人想要借助systemd基于cgroup进行管理

Edit:systemd 似乎提供了dbus API

CoelacanthusHex avatar Jun 07 '20 10:06 CoelacanthusHex