Benutzer Diskussion:Yoyo/Boincserver Tuning

Aus Rechenkraft
Zur Navigation springen Zur Suche springen

I'm operating the project on a very small server, which is mostly stable also in Formula BOINC sprints, Pentathlon and other races.

Here are the things you can and should do to tune the server performance:

Tune mysql

There are scripts like mysqlprimer, which checks mysql statistics and propose changes to cache settings and other mysql configurations. Let also mysql use much RAM.

Reduce user requests to your http server (<min_sendwork_interval>)

By default this is set to 7 second. In race times user run script, which request new work very often. So in worst case hundread of user and thousand of hosts request work every 10 seconds. Server stability first! In race times I increase this to 1 minute or even more if the server can't handle the http requests. So sometimes I increase it to 15 minutes.

Increase runtime of workunits

If workunits run longer hosts do not request work so often. Don't know if you can increase runtime. But you could place e.g. 5 of the current workunits into one and have 5 times the runtime. Keep in mind, that every workunit creates 6 update requests in the DB (1. workunit creation, 2. result creation, 3. tracking sending of result, 4. tracking results return, 5. validation, 6. assimilation). So runtime of at least 2 hours, or better 5 hours would be good.

reduce database size

I found, that mysql can handle much more requests if the DB is small. Therefore reduce amount of result and workunit records by:

  • delete workunits/results fast after they are assimilated
  • create not much workunits in advance. Just create only e.g. 5000 and if there are less than e.g. 1000 create new ones.

Other things

To avoid dry running of your workunit queue <max_wus_in_progress> <max_jobs_in_progress>

Limit the amount of tasks in progress to e.g. 2 per core or 100 in total.

Avoid bunkering

User like to buffer many computed results and flushing them near the end of the race. This might destroy your server. <max_wus_in_progress> might help there also.