I'm trying to automate runs of User:OAbot on the English Wikipedia, by reducing the variables I need to control manually. Ideally we'd manage to run it weekly, so that the users can avoid needless manual work and still have their contributions in good shape in short order.
One attempt was to run on all the potential target pages, which basically means parsing 4M articles (T272006). That takes about 8-9 days with 1 CPU, running almost always at maximum CPU usage. But ok, we can do every two weeks.
However, this is less nice: the latest run apparently failed, being killed for OOM:
$ kubectl get pods NAME READY STATUS RESTARTS AGE oabot-5d788d549b-m5gp7 1/1 Running 0 53d oabotrefresh-1610763420-h52wv 0/1 Completed 0 17d oabotrefresh-1611368220-gdrlb 1/1 Running 0 44h oabotrefresh-1611368220-thqn8 0/1 OOMKilled 0 8d
We could chase some performance gains but ultimately this is a rather resource-intensive task and I usually run it with multiple CPUs and up to 8 GB reserved RAM on the grid. (Although it only rarely used as much.) Can we double the quota (both CPU and RAM)?
The current quota:
$ kubectl describe resourcequotas Name: tool-oabot Namespace: tool-oabot Resource Used Hard -------- ---- ---- configmaps 1 10 limits.cpu 2 2 limits.memory 4608Mi 8Gi persistentvolumeclaims 0 3 pods 2 4 replicationcontrollers 0 1 requests.cpu 1500m 2 requests.memory 4352Mi 6Gi secrets 1 10 services 1 1 services.nodeports 0 0
For some context on what we're doing:
https://en.wikipedia.org/wiki/Wikipedia:OABOT
https://blog.okfn.org/2017/10/26/how-wikimedia-helped-authors-make-over-3000-articles-green-open-access-via-dissemin/