Queueworker is eating up all mysql connections
@!
Hubzilla Support Forum Since upgrading to Hubzilla 8.0 I have to use queuworker - in the past I tried queworker but encountered several problems.
Currently the problems are back:
1.) Warnings about Disk IO
2.) Warnings about "Number of internal temporary tables created per second is high (over 30 for 5m"
3.) Slow Queries
4.) MySQL getting OOM killed. I've mitigated this by setting mysql's tmp to /var/tmp instead of /tmp, which is tmpfs.
But now there's a much more severe problem: the queue works gobbles all mysql connections to the point that all further connections to the mysql are blocked, i.e. making the site unusable since php cannot connect to mysql.
All queries issued by the queuworkers look like:
| 83171 | hubzilla_netzgemeinde | localhost | hub_netzgemeinde_eu | Query | 913 | Updating | update workerq set workerq_reservationid = null where workerq_reservationid is not null and workerq_processtimeout < UTC_TIMESTAMP() | 0.000 |
| 83190 | hubzilla_netzgemeinde | localhost | hub_netzgemeinde_eu | Query | 913 | Updating | update workerq set workerq_reservationid = null where workerq_reservationid is not null and workerq_processtimeout < UTC_TIMESTAMP() | 0.000 |
| 83209 | hubzilla_netzgemeinde | localhost | hub_netzgemeinde_eu | Query | 904 | Updating | update workerq set workerq_reservationid = null where workerq_reservationid is not null and workerq_processtimeout < UTC_TIMESTAMP() | 0.000 |
| 83279 | hubzilla_netzgemeinde | localhost | hub_netzgemeinde_eu | Query | 902 | Updating | update workerq set workerq_reservationid = null where workerq_reservationid is not null and workerq_processtimeout < UTC_TIMESTAMP() | 0.000 |
| 83281 | hubzilla_netzgemeinde | localhost | hub_netzgemeinde_eu | Query | 904 | Updating | update workerq set workerq_reservationid = null where workerq_reservationid is not null and workerq_processtimeout < UTC_TIMESTAMP() | 0.000
When the maximum connection has been reach (501, I've increased it to 1001, but no avail) the only way to do is restart the mysql. Which I have to do currently every day.
My current queueworker setting is 10/300/500, I played around with it but the problems remain.
Is there any way to disable the queueworker and go back to the way it was because it worked perfectly fine? Or is there a fix to prevent the queuworker from filling up all connections to the db?