Отвън MySQL знам, че мога да направя много неща, за да знам какво е използването на процесора от даден процес, т.е. top
.
Но от вътрешна гледна точка бих искал да знам дали е възможно да изпълня заявка от MySQL, за да знам какъв е системният процесор или консумацията на процесора на текущата нишка.
Пускам огромни заявки всяка нощ през програмата за планиране на събития и моят DB сървър се забива на 100% CPU за няколко минути, блокирайки или забавяйки потребителите по целия свят.
Опитах се да проуча начин за ограничаване на използването на процесора по нишка или потребител, но изглежда, че все още не е възможно.
И така, опитвам се да направя нещо в духа на следното в моето събитие:
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