#mysql #performance #lamp #metrics
#mysql #Производительность #lamp #показатели
Вопрос:
у меня загруженный веб-сервер с установленным LAMP, и мне было интересно, есть ли какой-нибудь способ подсчитать, сколько запросов в секунду (mysql) выполняется на сервере?
Спасибо.
Ответ №1:
SELECT s1.variable_value / s2.variable_value
FROM information_schema.global_status s1, information_schema.global_status s2
WHERE s1.variable_name='queries'
AND s2.variable_name ='uptime';
Комментарии:
1. Для всех, кто использует mysql 5.7 , глобальная таблица состояния переместилась в performance_schema
Ответ №2:
Попробуйте отличную утилиту Джереми Заводни от mytop.
Если у вас установлен модуль Perl Time::HiRes, mytop автоматически будет использовать его для генерации информации о запросе с высоким разрешением в секунду.
Комментарии:
1. у меня это не установлено. я нашел какой-то другой способ mysqladmin status
Ответ №3:
Из команды SHOW GLOBAL STATUS; можно извлечь полезную информацию, включая количество выполненных запросов (если ваш MySQL 5.0.76 или более поздней версии).
Смотрите http://dev.mysql.com/doc/refman/5.0/en/server-status-variables.html
Комментарии:
1. какие все вопросы включены как часть этих запросов …?
2. Я проверяю, как mysql вычисляет значения this questions или запрашивает значения. Я вычисляю сумму COM_SELECT, COM_UPDATE, COM_SET_OPTION, COM_UPDATE, COM_DELETE и еще нескольких, но не получаю точного соответствия между этими двумя.
3. Разница между
Questions
иQueries
может включать сохраненные подпрограммы.
Ответ №4:
Вы можете использовать:
mysqladmin -u root -p status
который вернет вывод, подобный:
Uptime: 17134 Threads: 2 Questions: 1245 Slow queries: 0 Opens: 49 Flush tables: 1 Open tables: 42 Queries per second avg: 0.072
Здесь количество запросов в секунду равно: 0.072, что questions/uptime
равно.
Ответ №5:
Когда вы используете команду «STATUS» (не ПОКАЗЫВАТЬ СТАТУС), MySQL вычислит количество запросов в секунду с момента запуска сервера для вас.
Протестировано с MySQL 5.1.63.
Ответ №6:
Для этого у нас может быть небольшой скрипт. Это будет что-то вроде приведенного ниже.
declare -i a
declare -i b
declare -i c
a=`mysql -uroot -pxxxxx -e "show status like 'Queries'" |
tail -1 | awk '{print $2}'`
echo "$a"
sleep 1
b=`mysql -uroot -pxxxxx -e "show status like 'Queries'" |
tail -1 | awk '{print $2}'`
echo "$b"
c=$b-$a
echo "Number of Queries per second is: $c"
Комментарии:
1. Все это должно быть возможно сделать в MySQL, не так ли? К сожалению, я не знаю, как это сделать.