погуглил за вас:
документация MySQL
Почему так может быть? Я могу предположить что вы в цикле открываете кучу соединений и через них выдираете какие-то данные, например
for(id = 1, id < 10000000, id++)
подключиться к базе, для выборки этого ид.
Дабы проверить мое предположение, можно посмотреть на SQL консоли:
SHOW FULL PROCESSLIST
Удобный инструмент для работы с MySQL dbForge Studio
Отдельно отмечу, что SHOW FULL PROCESSLIST показывает результат на сейчас и чтобы использовать ее как онлайн мониторинг, можно воспользоваться выше указанной программой, там есть настройка частоты обновлений запроса, ставишь 1 секунда и ждешь пока твой сайт не начнет флудить сервер, далее смотришь какой код он туда гадит, ищешь его в своем коде, переписываешь.
И да, на счет перезапуска сервера:
unblock with 'mysqladmin flush-hosts