DOMjudge / domjudge

DOMjudge programming contest jury system
https://www.domjudge.org
GNU General Public License v2.0
738 stars 260 forks source link

DOMserver reads a gigabyte of data per minute #421

Closed SolalPirelli closed 6 years ago

SolalPirelli commented 6 years ago

Description of the problem / feature request

In a contest, my DOMserver is reading about a gigabyte of data per minute: https://ibb.co/go5Cm9

Your environment

DOMjudge on Docker version 5.3.2, running on Azure

Steps to reproduce

I'm not sure. There are a few problems whose archives weight hundreds of megabytes, and whose outputs are expected to be in the megabytes as well. Maybe that's an issue? There are about 60 active users.

Expected behaviour

I shouldn't have to restart PHP very often because it gets stuck.

If my setup with very large problems is unusual, that's fine, but I didn't see warnings about it.

Actual behaviour

I have to restart PHP all the time. :(

thijskh commented 6 years ago

Hi @SolalPirelli! The judgehost should be caching all testcases it needs, so each judgehost should download those 100 mb's just once (for each judgehost of course). The judgehost logs are pretty verbose over what it fetches and when it posts something back. Does that help you to understand where the traffic is coming from?

SolalPirelli commented 6 years ago

Thanks for the fast feedback! Looks like the judgehosts are fine indeed, nothing specific in logs. Server is also writing quite a bunch of data though: https://ibb.co/gqh39U

eldering commented 6 years ago

For debugging this issue it might be easier to join our IRC channel #domjudge on FreeNode. Does the large amount of reads/writes still happen when you disable judging (under the problem toggle "allow judge")?

SolalPirelli commented 6 years ago

Writing down the summary of the IRC discussion here for posterity - it seems that having a 900MB problem with testcases that expect a few dozen 10MB outputs is not a great idea on an Azure B1ms.