Cóż, ja akurat optymalizacją się zajmuję, ale także, na ten moment, wiele więcej nie jestem w stanie powiedzieć.
Z tego co widać na screenie, wisi Ci sporo wątków, czyli sporo połączeń. Pytanie, jak wygląda "normalne" zużycie pamięci? To może działać w obie strony - jedno ciężkie (albo nieoptymalne) zapytanie przytyka serwer, co przekłada się na wzrost liczby zapytań czekających na wykonanie, co przekłada się na wzrost zapotrzebowania na pamięć, co przekłada się na zwolnienie serwera, co przekłada się... I tak dalej.
Może też być w drugą stronę - w "normalnej" pracy pamięci jest na styk i jeśli chwilowo do serwera połączy się większa ilość klientów, to tej pamięci zaczyna brakować, co powoduje zwolnienie działania serwera, co powoduje... I tak dalej.
Zacznij od tego, żeby sprawdzić co konkretnie jest przyczyną problemu. Z konfiguracji wynika że slowlogi powinieneś mieć włączone. Jeśli nie masz, to włącz. Ustaw także zmienną long_query_time=1 - będą się logować zapytania o czasie wykonywania dłuższym niż 1 sekunda. Zobacz w slowlogu co się złapało. Sprawdź EXPLAINem plan tych zapytań. Jeśli brakuje indeksów, dodaj. Jeśli zapytania są nieoptymalne, przepisz je. Monitoruj zużycie pamięci w czasie, zrzucaj sobie co pewien czas (np. co 5 minut) także listę procesów. Jeśli w slowlogu wszystko będzie ok, to tak zbierane informacje pomogą sprawdzić, czy wzrost obciążenia bazy bierze się z większej odwiedzalności, czy też nie jest to połączone.