Crie um systemd timer no lugar do cron: o .service, o .timer com OnCalendar e Persistent, o log no journalctl e o teste da expressão de data.
Confirme no dmesg se o OOM killer matou o mysqld e veja como criar swapfile de 2 GB com fstab e vm.swappiness numa VPS Ubuntu.
Configure rate limit no wp-login.php com limit_req_zone do nginx e devolva 429 pra força bruta antes do PHP-FPM carregar o WordPress.
Resolva o erro too many connections no MySQL e no MariaDB: veja quem ocupa as conexões e ajuste wait_timeout e max_connections sem estourar a memória.
WP-Cron travado no WordPress 6.9: inspecione a fila com WP-CLI, apague o transient doing_cron e troque o gatilho por um agendamento de sistema.
Corrija o Redis OOM Magento 2 trocando a maxmemory-policy para allkeys-lru e separando cache, full page cache e sessão em bancos distintos.
Use um script PHP para revisar git diff antes do commit e pegar debug esquecido e senha chumbada, num hook pre-commit que avisa sem travar o commit.
Veja o tamanho das tabelas MySQL 8 com uma query no information_schema e leia data_length, index_length e data_free antes de apagar qualquer coisa.
Copie o pub/media no Magento 2 com rsync deixando os diretórios de cache de fora e refaça as miniaturas no destino com catalog:images:resize.
Tire o WordPress do modo de manutenção apagando o .maintenance da raiz e confirme pelo WP-CLI se a atualização realmente terminou.