Mysql подсчитать, сколько запросов в секунду выполняется, есть ли способ? - PullRequest
9 голосов
/ 02 мая 2010

У меня загруженный веб-сервер с установленной LAMP, и мне было интересно, есть ли способ подсчитать, сколько запросов в секунду (mysql) выполняется на сервере?

Спасибо.

Ответы [ 6 ]

9 голосов
/ 26 июня 2013
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';
6 голосов
/ 02 мая 2010

Попробуйте отличную утилиту Джереми Заводни mytop .

Если у вас установлен модуль Perl Time :: HiRes , mytop автоматически использует его для генерации запроса с высоким разрешением в секунду.

3 голосов
/ 02 мая 2010

Из ШОУ ГЛОБАЛЬНЫЙ СТАТУС можно получить полезную информацию; команда, включая количество выполненных запросов (если у вас MySQL 5.0.76 или новее).

См. http://dev.mysql.com/doc/refman/5.0/en/server-status-variables.html

2 голосов
/ 16 мая 2017

Вы можете использовать:

 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.

1 голос
/ 31 июля 2012

Когда вы используете команду "STATUS" (не SHOW STATUS), MySQL будет рассчитывать количество запросов в секунду с момента запуска сервера.

Протестировано с MySQL 5.1.63.

0 голосов
/ 22 мая 2012

У нас может быть небольшой скрипт для этого. Это будет что-то вроде ниже.

    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"
...