Время процессора MySQL должно быть таким длинным? - PullRequest
0 голосов
/ 01 октября 2019

Недавно мы запустили много сложных сценариев на новом сервере, который требовал большого мониторинга MySQL. Сервер только когда-либо был, скажем, максимум 20 часов за один раз. Но независимо от того, сколько времени занимает использование процессора в Mysql, оно продолжает расти.

Я предполагаю, что это должно произойти, потому что это служба, которая постоянно работает, но просто хотела это подтвердить.

Согласно top mysql работает для 380:09.23.

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 1697 mysql     20   0 2687376 504752  10036 S  82.3  6.3 380:09.23 mysqld

1 Ответ

0 голосов
/ 01 октября 2019

MySQL - многопоточный сервис. Если он обрабатывает несколько запросов одновременно, потребляя более одного ядра ЦП (что показано в виде более 100% в столбце ЦП сверху), то в эту одну секунду физического времени добавляется более одной секунды в столбец ВРЕМЯ +.

Вы можете отслеживать, какие потоки в данный момент выполняются в составном процессе MySQL, введя

SHOW PROCESSLIST;

в консоли mysql (т. Е. Там, где вы обычно запускаете операторы SQL для этого сервера).

Добавление:

У меня экземпляр MySQL 5.6 с низкой пропускной способностью, который не перезапускался с 4 января 2018 года. Он работает на Debian, в чистом виде ARM, обычно неу меня висит много свободных соединений (я вижу два прямо сейчас). С тех пор он занимал около 2225 минут процессорного времени:

$ ps -eo pid,lstart,time,cmd | grep mysql
 3895 Thu Jan  4 23:09:11 2018 1-13:04:45 /usr/sbin/mysqld ...

Я также только что провел два опроса и добавил 15 секунд процессорного времени за 140 минут физического времени:

$ date; ps aux | grep mysql
Tue Oct  1 16:37:16 UTC 2019
mysql     3895  0.2 10.7 439512 223352 ?       Sl    2018 2224:37 /usr/sbin/mysqld

$ date; ps aux | grep mysql
Tue Oct  1 18:57:50 UTC 2019
mysql     3895  0.2 10.7 439512 223352 ?       Sl    2018 2224:55 /usr/sbin/mysqld

Поэтому, по крайней мере, для этого случая ненормально добавлять метрику TIME + без фактической работы.

Я подозреваю, что, возможно, возможно увеличение TIME + без соответствующего% CPU в виртуальных средах, но тогда вам все равно придетсямонитор PROCESSLIST и, возможно, ПОКАЗАТЬ СТАТУС INNODB ДВИГАТЕЛЯ, чтобы поймать, что потребляет циклы процессора в этом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...