记一次线上ACM校赛的举办

2022.10.15 差点忘了这篇文章,早就写好了,但一直是草稿没发。

由于最近一直不能线下,所以我校校赛决定线上进行,将过程记录如下。

准备工作

监考不用说了,xcpc的双机位应该都熟悉。

然后就是搭建评测系统Domjudge,这里参考https://github.com/cn-xcpc-tools/cn-xcpc-docs,我们使用机房电脑,设置了8个判题核心。

之后就是将Domjudge放到公网了,我们只需要搭建内网穿透即可,详情参考我的这篇文章

如果服务器在境内,需要准备一个备案的域名。然后由于我的服务器只有3M带宽,并且不能提升,所以我引入了cdn做缓存。

首先把域名解析到cdn,然后cdn里面填源站IP(就是穿透到的公网服务器IP),frp里面配置我们准备的域名。

如果用cloudflare这种带有域名解析的cdn直接解析到源站IP即可,记得打开cloudflare的服务。

这里的cdn以又拍云为例:

首先配置对js,css,json,scss,jpg,jpeg,gif,png,tif,tiff,pdf,bmp,svg,psd,ico,zip,ttf,otf,woff,woff2等常见静态文件的缓存,缓存时间适当设置。不过domjudge题面是使用pdf展示的,所以当赛中修改题面的时候,我们需要刷新对pdf的缓存。不建议对pdf配置不缓存,可能大幅占用服务器带宽。


参数跟随一定要打开,其他根据自己喜好配置即可。

即使服务器带宽够也建议套上一层cloudflare之类的免费cdn(况且又拍云对个人站长有免费额度),慎重考虑直接暴露服务器IP,可能会出现各种想象不到的情况!!!

赛中

比较大的文件(比如题面)最好在赛前5分钟我们自己在后台主动下载一遍,将文件存入cdn缓存,能很大减少服务器压力。

cdn流量情况,可以显示大部分请求都能命中cdn中的缓存,无需向源站请求:

服务器带宽很少出现占满的情况。

据选手反馈,整场比赛未出现明显卡顿,说明以上方法行之有效。

UPD 2022.11
2022年11月赛流量,不到100人参加了本次比赛,和上次的区别是赛前对大部分资源使用了预热,并且配置了限速,所以带宽占用更少。

这里我配置的是到达3M流量后限速200kb/s。如果题面文件比较大可以适当放宽。

知识共享许可协议
Text is available under CC BY-NC-SA 4.0 unless otherwise stated.

除非特殊声明,本站所有内容均以 CC BY-NC-SA 4.0协议授权。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇