Sería interesante saber más de tu sitio, estadísticas, aplicación que utilizas, etc.
De entrada puedo ver que en tu configuración no tienes declarado el valor para 'wait_timeout' que es algo muy importante al momento de optimizar.
Te recomiendo declararlo con un valor de 15 segundos
Con esto, el servidor MySQL cerrará las conexiones inactivas liberando memoria.
También tienes que limitar el número de conexiones para no permitir que MySQL se coma toda la RAM y te tumbe todo el servidor. Puedes comenzar con 50:
Y observar, si comienzas a tener errores de MySQL será porque son insuficientes y tendrás que aumentar el límite, sin embargo, esto aumentará el consumo de RAM por lo que tendrás que evaluar el escalar a un VPS con mayor RAM. Pero esto (además del # de conexiones) tiene más variables ajustables que entran en juego que es largo de explicar.
Si por el contrario, si tu servidor se sigue congelando en su totalidad, disminuye las conexiones.
Definitivamente se puede hacer más, pero esto es un buen comienzo.
Saludos