Mysql подсчитывает, сколько запросов в секунду выполняется, есть ли какой-нибудь способ?

#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, не так ли? К сожалению, я не знаю, как это сделать.