Installation
The usual
testlib.h
doesn’t work for domjudge. There is a domjudge version oftestlib.h
on the Github, but it won’t work well with TPS.It is unnecessarily complicated to run domserver using Docker. Install mariadb and domserver directly on the machine.
Run
sudo mysql_secure_installation
after installing database.After running
./configure --prefix=/opt/domjudge
, make sure user of nginx (usuallywww-data
) has read access to/opt/domjudge
.Configure control groups for judgehosts (docs).
Configuration
Anytime you change
isolcpus
kernel parameter inside/etc/default/grub
, don’t forget tosudo update-grub
before rebooting.Inside
Configuration Settings
, there is a option fordata source
. Set this toexternal
and API will be a lot easier to work with.Use NGINXConfig. You need to find correct places to insert the settings (
domserver/etc/nginx-conf{,-inner}
). Do not change location blocks that are provided with domjudge configuration (nginx-conf-inner
).Change time-zone and the number of PHP workers (
domserver/etc/domjudge-fpm.conf
). 40 workers need 1 CPU core and can handle about 40 teams.There shouldn’t be a huge difference (more than 1 second) between wall time and CPU time for a submission. If there is, you may be running two judgehosts on the same CPU core.
Read Scaling and load testing.