Szia,
Ami rögtön szembetűnő, hogy a jelenlegi beállításokkal a MySQL több memórát tudna felhasználni mint ami rendelkezésére áll, ekkor pedig elkezd swappolni ami persze lassu majd a végén le is állhat.
Előszőr is az innodb-buffer-pool-size elhasznál 2G, aztán ott van a key_buffer is , és persze a MySQL minden egyes connectionkor alapból allokál memoriát a kapcsolatnak ez pedig a következőkből épül fel: read_buffer_size, sort_buffer_size, read_rnd_buffer_size and tmp_table_size
Neked a tmp_table_size 350MB , 150 kapcsolatod van engedélyezve tehát 150 * 350MB az 45G, szóval jócskán túllépted a fizikai memoriádat.
A query cache ki van kapcsolva jelenleg , pedig az is segíthet bár az ugyan csak memoriát használ.
Nem lehetetlen, hogy a szervert be lehet állítani hogy optimálisan működjön a jelenlegi adatbázisokkal és lekérdezésekkel.
De ehez ismerni kellene a lekérdezéseket mert ahoz kell szabni a beállításokat.
De amit javasolni tudok és egyiksem fog tetszeni, hogy ha lehetséges válts 5.6-os MySQL-re,gyors sok újítás van benne ami neked is hasznos lehet, válts Innodb-re minden táblán, jobban tolerálja a hibákat, gyors, és egyszerűbb az adatbázis szervert is behangolni egy féle engine kiszolgálására. Utoljára de talan a legfontosabb, rakj a szerverbe annyi memoriát amennyit csak bírsz. A MySQL imádja a memoryát :)
ui: attól hogy MySQL-ben be van állítva az open-files-limit még magában a rendszerben is fel kell emelni.
"ulimit -n" kiiírja a jelenlegi beállításokat.
"losf | wc -l" megmondja jelenleg hány fájl nyitott.