如果在 PaaS 上部署 Online Judge

vps网友提供 05-01 讨论归档 18

比如在 Google App Engine 上部署 Online Judge

和普通的 OJ 相比,实现是否会变得更为简单?

安全性是否也会相应提升?

本文由 vps网友提供,转载请注明出处

本文链接: https://www.vpsvsvps.com/discuss/a/1676471750449172480.html

标签:
wph95
05-03

@holyghost 我 github 留了邮箱,需要帮助可以邮件联系:)

holyghost
05-03

@wph95 肥肠感谢!么么哒。

wph95
05-03

@holyghost
如果是 CodeVS 用台 8 核服务器评测,大概日 20 万评测量没什么问题。足够一场 2000 人的比赛了。
用 docker 少一半吧。
// 我一般都是去 do 上创一片 1 核机器组个集群。

holyghost
05-02

@wph95 谢谢。
>> Docker 性能在 Online Judge 场景下很不好。
>> 因为性能原因, CodeVS 已经弃用 docker 方案了。

按照之前的经验, docker 通常在一台服务器(例如, 8 核 16G )上能达到并发处理多少提交呢?
另外,是否方便简单透露下现在 CodeVS 使用的方案呢?

再次感谢。

wph95
05-02

@holyghost
1. IO 问题从没有遇到过。
2. Docker 性能在 Online Judge 场景下很不好。
> docker 在限制内存使用、 cpu 使用和运行时长、限制调用方面有什么缺点吗?
基于 cgroups ,并没有缺点
因为性能原因, CodeVS 已经弃用 docker 方案了。

holyghost
05-02

@azh7138m 谢谢。

io 上的劣势我觉得可以用扩容解决,钱暂时不是问题。

azh7138m
05-02

@holyghost IO 感人, hustoj 是有过 docker 版的

holyghost
05-02
virusdefender

@wph95 上面的回复 @貌似没管用,你可以看下 8 楼的问题。

virusdefender

@holyghost

Docker 的 security-opt 、 CPU 时间等选项貌似是限制里面所有的进程的,而实际上我们需要一个父进程来控制子进程(子进程就是用户的代码),来获取运行时间、内存占用等数据。这会不会让父进程也太受限了?

Docker 和使用 seccomp 并没有任何冲突,而且我们现在也是在 Docker 中运行 judger 的,当然最主要是为了方便部署,其次才是使用 Docker 做一层隔离。

在使用 Docker 做判题方面,@wph95 更有经验,可以请教一下他。

holyghost
05-02

@virusdefender
简单看了下 judger ,请教几个问题:

1. 直接使用 seccomp 限制系统调用,和使用 docker 的 secure option 限制本质上是否可以理解为是相同的?
2. 是什么原因当初没有选择 docker 呢?或者换一个问法, docker 在限制内存使用、 cpu 使用和运行时长、限制调用方面有什么缺点吗?

谢谢~

wph95
05-01

1. secomp -> seccomp
2. 讲道理来说 权限越高越好限制, PaaS 不会给你那么高的权限
3. hustoj 的 sae 版本只是一个 界面托管,评测还是要自己找服务器
4. 想简单的搭建 oj ? 土豪请选择 sphere-engine.com , 学校 or 学生团队 可以找 codevs 要免费的评测资源:)

virusdefender

4 楼说的 hustoj 的 sae 版本也仅仅是 Web 部分,判题还是得通过网络通信转发到自己的服务器上。

楼主的帖子应该更侧重判题部分吧。

virusdefender

感谢 @SCaffrey 的推荐

我们的 oj Web 部分暂时无法在 sae gae 类的 PaaS 上部署,限制太多了。

而沙箱保证安全依靠 PaaS 的话,好像也不太行,虽然 PaaS 也有沙箱,但是是隔离你的代码和底层环境的,你部署的代码已经是受限的了, sae 好像连进程都不能起, socket 也不行。更别谈调用编译器写文件了。

可以尝试一下 daoCloud 类的 docker PaaS ,限制还少一些。

我们是用的 secomp 过滤系统调用。代码在 https://github.com/QingdaoU/Judger

icreeper
05-01

记得 hustoj 有个 sae 的版本

SCaffrey
05-01

判题服务器性能不够用吧?

crystom
05-01

前端还可以,判题的没法放在这种平台上吧