Извне MySQL я знаю, что могу многое сделать, чтобы узнать, каково использование ЦП процессом, т.е. top
.
Но, с внутренней точки зрения, я хотел бы знать, можно ли запустить запрос из MySQL, чтобы узнать, что такое системный ЦП или потребление ЦП текущим потоком.
Я выполняю массовые запросы каждую ночь через планировщик событий, и мой сервер БД зависает на 100% ЦП на несколько минут, блокируя или замедляя работу пользователей по всему миру.
Я пытался найти способ ограничить использование ЦП потоком или пользователем, но пока это не представляется возможным.
Итак, я пытаюсь сделать что-то вроде следующего в своем событии:
IF (SELECT CPU_USAGE() > 0.8) THEN
REPEAT
SLEEP(0.01);
UNTIL (SELECT CPU_USAGE() < 0.25)
END REPEAT;
END IF;
Очевидно, что CPU_USAGE()
не существует, но если есть что-то подобное, что я могу сделать для достижения аналогичного эффекта, я весь внимание. Спасибо.
P.S. Я на Amazon RDS