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.