Creo que puedes mejorar esto con journalctl, quizás con:
# journalctl --vacuum-size=50M
(lo cual podrías hacer inmediatamente antes de intentar una actualización).
Es interesante que el uso de PostgreSQL no haya disminuido.
free te mostrará el uso de la memoria de intercambio: está al 17% de un cierto tamaño, probablemente 2 GB.
Está claro que tu máquina es un poco incómodamente pequeña: necesitas más RAM o más memoria de intercambio, y no puedes tener mucha más memoria de intercambio de manera práctica sin obtener más espacio en disco.